Avatar billede xjln Juniormester
14. oktober 2008 - 11:29 Der er 7 kommentarer og
1 løsning

Flytte data fra kolonne til række

Hejsa

Jeg har fået en liste med navn, adresse, og postnr placeret i kolonne B, men for at gøre den søgbar ville jeg meget gerne have det hele på en række.
Hvordan ville en VBA se ud hvis den skulle klare dette?
Eller er der en nemmere måde at lave det på?

Listen starten med et navn i B3, så en adresse i B4 og et Postnr. i B5, så igen navn i B6, adresse i B7, og postnr. i B8 osv...
Kunne godt tænke mig B4 flyttet til C3 og B5 til D3, B7 til C6 og B8 til D6 osv...

Kan det lade sig gøre eller???
Avatar billede xjln Juniormester
14. oktober 2008 - 11:31 #1
Glemte at sige at listen er på 15073 linier hvis det har nogen betydning...
Avatar billede mugs Novice
14. oktober 2008 - 12:39 #2
Avatar billede xjln Juniormester
14. oktober 2008 - 14:02 #3
Hej mugs

Det re sådan set "rigtig nok" - men når jeg markerer alle 15073 rækker i kolonne B og prøver at sætte dem ind i et nyt ark får jeg en fejl.
Prøvede så med kun at markere 21 rækker, dette gik også fint med at indsætte men i 21 kolonner - målet var jo 3 kolonner. B navn, C Adresse, D postnr.
Gør jeg noget forkert?

Et andet problem som jeg kan se opstå er at der i den oprindelige liste er en kolonne C med data i samme række som navnet som skal bruges.
Jeg troede "bare lige" at man kunne indsætte 2 kolonner mellerm B og C og flytte værdierne som beskrevet ovenfor.
Avatar billede mugs Novice
14. oktober 2008 - 14:31 #4
Jeg er dig svar skyldig. Jeg er ikke den store Excel-haj. Men du kan lægge et svar her og selv acceptere det. Opret derefter et nyt spørgsmål relateret til dit problem.
Avatar billede jkrons Professor
14. oktober 2008 - 17:30 #5
Du kan ikke transponere flere rækker end der er kolonner, og transponerer du noget af en kolonne, bliver der lige så mange celler i rækken, som der var i kolonnen. Det nemmeste er nok at lave en makro, der flytter det hele til et nyt ark og stiller det rigtigt op.
Avatar billede kabbak Professor
14. oktober 2008 - 18:50 #6
prøv at teste, den skriver i C+D+E kolonnen i samme ark.

Hav siden aktiv, inden du kører makroen

Public Sub Flyt()
    Dim I As Long, RW As Long, X As Long
    RW = Range("B65536").End(xlUp).Row
    X = 3
    For I = 3 To RW Step 3
        Cells(X, "C") = Cells(I, "B")
        Cells(X, "D") = Cells(I + 1, "B")
        Cells(X, "E") = Cells(I + 2, "B")
        X = X + 1
    Next
End Sub
Avatar billede xjln Juniormester
14. oktober 2008 - 21:01 #7
Hej kabbak

Mange tak for svaret, jeg ændrede makroen til nedenstående og så passende den lige ind i mit ark.
Igen mange tak, smid et svar for point.


Public Sub Flyt()
    Dim I As Long, RW As Long, X As Long
    RW = Range("B65536").End(xlUp).Row
    X = 3
    For I = 3 To RW Step 3
        Cells(X, "C") = Cells(I + 1, "B")
        Cells(X, "D") = Cells(I + 2, "B")
        'Cells(X, "E") = Cells(I + 2, "B")
        X = X + 3
    Next
End Sub
Avatar billede kabbak Professor
14. oktober 2008 - 21:51 #8
et svar ;-))
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

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