Avatar billede no-shit Nybegynder
26. november 2002 - 15:18 Der er 9 kommentarer og
1 løsning

Tekst fra Word ind i Excel.

Jeg har en masse labels som er skrevet i hver sin linie altså sådan:

Firma
Adresse 1
Adresse 2
Att.

Disse linier skulle gerne kunne sættes ind i excel i hver sin kolonne. Der er tale om en ret stor datamængde så det vil være absurt at skulle lave det manuelt.

Der er mellemrum osv. flere steder i tekste, så der vil ikke kunne deles ved mellemrum. Der skal altså deles ved hver linie.

Håber der er nogle som kan løse problemet for mig?
Avatar billede bak Forsker
26. november 2002 - 16:36 #1
hvor mange blanke linier er der mellem hver label (når det råt er importeret i excel ?  og er det konsekvent ?

Er det altid 4 liniers labels ?

Kan du svare på dette kan det nok løses..
Avatar billede no-shit Nybegynder
26. november 2002 - 21:34 #2
Der er faktisk altid 5 linier. Der er ingen blanke linier, det hele kommer lige efter hinanden. Jeg har gemt det som en tekst fil i Word og åbnet den i Excel.
Avatar billede bak Forsker
27. november 2002 - 08:39 #3
Prøv at køre denne makro
forudsætninger:
Dine data står i kolonnne A, start ved række 1.
De nye kolonner starter ved B1, du sætter selv overskrifter bagefter

Option Explicit
Option Base 1

Sub TransponerArray()
Dim lCounter As Long
Dim lLastRow As Long
Dim lTest As Long
Dim lCounter2 As Long
Dim vOldArray
Dim vNewArray

Const sInsertHere As String = "B1"
Const lFirstRow As Long = 1
Const lRecSize As Long = 5 'Recordsize

lLastRow = Range("A65536").End(xlUp).Row
vOldArray = Range("a" & lFirstRow & ":a" & lLastRow)
ReDim vNewArray((lLastRow \ lRecSize) + 1, lRecSize)
For lCounter = 1 To lLastRow Step lRecSize
    lTest = lTest + 1
        For lCounter2 = 1 To lRecSize
            vNewArray(lTest, lCounter2) = vOldArray(lCounter + lCounter2 - 1, 1)
        Next
Next
Range(sInsertHere).Resize(lTest, lRecSize - 1) = vNewArray

Set vOldArray = Nothing
Set vNewArray = Nothing
End Sub
Avatar billede no-shit Nybegynder
27. november 2002 - 13:43 #4
Virker fint, men hvad hvis adressen er på 5 linier istedet for 4? Har prøvet at rette der hvor der står recordsize til 6 men så melder den blot fejl.
Avatar billede bak Forsker
27. november 2002 - 15:12 #5
ok, så skulle det være rettet

Sub TransponerArray()
Dim lCounter As Long
Dim lLastRow As Long
Dim lTest As Long
Dim lCounter2 As Long
Dim vOldArray
Dim vNewArray

Const sInsertHere As String = "B1"
Const lFirstRow As Long = 1
Const lRecSize As Long = 6 'Recordsize

lLastRow = Range("A65536").End(xlUp).Row
lLastRow = ((lLastRow \ lRecSize) + 1) * lRecSize
vOldArray = Range("a" & lFirstRow & ":a" & lLastRow)
ReDim vNewArray((lLastRow \ lRecSize) + 1, lRecSize)
For lCounter = 1 To lLastRow Step lRecSize
    lTest = lTest + 1
        For lCounter2 = 1 To lRecSize
            vNewArray(lTest, lCounter2) = vOldArray(lCounter + lCounter2 - 1, 1)
        Next
Next
Range(sInsertHere).Resize(lTest, lRecSize - 1) = vNewArray

Set vOldArray = Nothing
Set vNewArray = Nothing
End Sub
Avatar billede bak Forsker
28. november 2002 - 15:40 #6
No-shit, er det noget shit.... ?
Avatar billede softcareconsult Nybegynder
12. december 2002 - 15:46 #7
Eller i Word vælg hele listen, Tabel, konvertér, tekst til tabel, angiv 5 kolonner, kopier derefter hele tabellen til excel. Bingo
Avatar billede no-shit Nybegynder
12. december 2002 - 16:26 #8
>>>bak: Det virkede helt fint. Mange tak. Vil du have dine point?
Avatar billede bak Forsker
12. december 2002 - 21:15 #9
Ja tak :-)
Avatar billede bak Forsker
12. december 2002 - 21:48 #10
God ide, softcarecunsult. Har lige testet og virker ok....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester