Avatar billede mile Juniormester
04. december 2001 - 13:33 Der er 27 kommentarer og
1 løsning

Makro der transponerer og sætter ind efter hver 6. række

Jeg har i Excel et datasæt der ser nogenlunde sådan ud.

1
565453213
Andersine Andersen
Ridderkvarteret
Møllerhaven 4
5000 Odense C
1
6466454846
Den Danske Stank
Kreditorafdelingen
Fjokhaven 2
5100 Odense C

osv.osv....

Disse data står i én kolonne i et regneark. Jeg har brug for at få dem transponeret således:

1      321321321  Andersine Andersen  XXXX  XXXX


i rækker med 6 kolonner, hvor hver adresser er i én række. Er der nogen der har eller kan lave en makro der kan dét ?   
Avatar billede finnholm Nybegynder
04. december 2001 - 13:34 #1
Her skal du bruge funktion - indsæt speciel - transponer
Avatar billede finnholm Nybegynder
04. december 2001 - 13:34 #2
Marker f.eks. den første post
Vælg kopier
Indsæt speciel - transponer
Avatar billede mile Juniormester
04. december 2001 - 13:35 #3
Nej for så ville jeg skulle gøre det for hver enkelt adresse, og med 12000 rækker, så gider jeg altså ikke.
Avatar billede finnholm Nybegynder
04. december 2001 - 13:38 #4
Nej okay - det kan jeg godt se!

Nyt forslag!

Hvis alle poster består af 6 linier kan du kopiere kolonnen ud i 6 kolonner.
I kolonne 2 sletter du det øverste felt
I kolonne 3 stetter du de to øverste felter osv.

Herefter kan du sortere kolonne A og alle poster med et nummer er dem du skal bruge. Resten kan slettes!

Håber det kan løse problemet. Ellers skal makro eksperterne på banen...
Avatar billede mile Juniormester
04. december 2001 - 13:40 #5
Jeg tror vi skal have nogle af kodedrengene på banen - vågn så op, eks. vogt.
Avatar billede b_hansen Novice
04. december 2001 - 13:40 #6
Det nemmeste er vel at optage en makro.

gå til første celle, start optageren, marker det område du vil transponere, indsæt den relevante linie, gå ned til næste felt, og afslut optageren

Denne kan du nu indsætte i en løkke i VBA, som kører det antal gange, du skal bruge.

Det er ganske vist lidt klamp og fusk, men det plejer at virke *S*

Avatar billede finnholm Nybegynder
04. december 2001 - 13:42 #7
Mile - hvad siger du til mit nye forslag?

Det er rimelig hurtig at kopiere de kolonner ud!
Avatar billede mile Juniormester
04. december 2001 - 13:43 #8
Jeg er snotdum når det gælder kode. Ved optagelse tager den jo bestemte celler og vil bare genbruge dem, så jeg skal jo nok have en counter, og en løkke.
Avatar billede b_hansen Novice
04. december 2001 - 13:44 #9
du kan jo vælge at optage med relativ reference *S*
Avatar billede mile Juniormester
04. december 2001 - 13:47 #10
Finnholm> det med kopiering bliver da lige så bøvlet, som at gøre det enkeltvis.

B-hansen - hvordan optager jeg med en relativ reference - er på den på fanen beregning ??
Avatar billede finnholm Nybegynder
04. december 2001 - 13:50 #11
Det behøver jo ikke gøres mere besværlig end nødvendig, men OK hvis du ikke vil bruge den løsning er det OK med mig!
Avatar billede b_hansen Novice
04. december 2001 - 13:51 #12
når du optager en makro, er der en menu synlig, som hedder stop indspilning. På denne menubjælke er der to valgmuligheder, nemlig stop indspilning, eller ændre optagelsen fra absolut til relativ reference.
Dette er tilfældet i Excel 2000 og jeg mener osse at huske, at det er det samme i Excel 97
Avatar billede mile Juniormester
04. december 2001 - 13:52 #13
Jeg sidder med en XP og hvis den er der i 2000, så må jeg dælenhylemig også have den. Jeg tjekker lige....
Avatar billede mile Juniormester
04. december 2001 - 13:58 #14
Den var der godt nok, men det ændrer ingenting. Den bruger sgu stadigvæk cellereferencerne.
Avatar billede b_hansen Novice
04. december 2001 - 13:59 #15
øjeblik... jeg prøver lige at rode lidt så
Avatar billede bak Forsker
04. december 2001 - 14:03 #16
Se lige om denne virker efter hensigten
transponeren ud for rækken med 1.
Du kan så herefter filtrere selv.
Sub test4()
For Each C In Range(\"A1:a12000\")
    If C = \"1\" Then
        For x = 1 To 5
        C.Offset(0, x).Value = C.Offset(x, 0).Value
        Next x
    End If
    C.Offset(5, 0).Select
Next C
End Sub
Avatar billede b_hansen Novice
04. december 2001 - 14:05 #17
Bak, forudsætter den ikke, at der står 1 i den første celle hver gang?
Avatar billede askims Nybegynder
04. december 2001 - 14:06 #18
Hej Mile

Prøv denne

Sub Makro1()
\'
\' Makro1 Makro
\' Makro indspillet 04-12-01 af Allan Svendsen
\'
Dim iRow As Integer
Dim iColumn As Integer
Dim iCounter As Integer

iRow = 1
iColumn = 1
iCounter = 1

    Do Until IsEmpty(Cells(iRow, iColumn)) = True
        Range(Cells(iRow, iColumn), Cells(iRow + 5, iColumn)).Select
        Selection.Copy
        Cells(iCounter, iColumn + 1).Select
        Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _
            , Transpose:=True
        iRow = iRow + 6
        iCounter = iCounter + 1
    Loop
End Sub

Den starter i celle A1, og går 6 rækker ned og kopiere, derefter vælger den celle b1, hvor dataene bliver transponeret, ligesom du ville have det, ik?

ASKIMS
Avatar billede bak Forsker
04. december 2001 - 14:07 #19
Joo, men det gør det jo i eksemplet. jeg er klar over svagheden
Avatar billede mile Juniormester
04. december 2001 - 14:09 #20
Bak > den løber godt nok løkken igennem, men transponerer kun det første datasæt. Har det noget at sige at der kan være tomme linier i adressen ?
Avatar billede askims Nybegynder
04. december 2001 - 14:09 #21
b_hansen -> det er ikke programmerings skik, når du går ind laver en fast defineret range, a la Range(\"A1:a12000\")!
Avatar billede askims Nybegynder
04. december 2001 - 14:10 #22
undskyld det var bak jeg mente!
Avatar billede askims Nybegynder
04. december 2001 - 14:11 #23
Mile -> har du prøvet min lille makro?
Avatar billede b_hansen Novice
04. december 2001 - 14:11 #24
ok askims... jeg blev osse lige lidt forvirret *S*
Avatar billede mile Juniormester
04. december 2001 - 14:17 #25
Askims - Jeg er intet mindre en vildt stærkt imponeret. Det var en ren firsttimer, bankede lige det hele igennem. Tusind tak du er et geni. Og tak til i andre, der gjorde forsøget med at hjælpe en kodedum blondine som mig...
Avatar billede askims Nybegynder
04. december 2001 - 14:21 #26
Man har jo lov at være heldig!

Det er ikke kun jan, der kan, men det lader til, at han holder fri, siden han ikke har svaret.

Har du prøvet at farve håret for at se om det hjælper? *GG* ;-)
Avatar billede mile Juniormester
04. december 2001 - 14:43 #27
Det hjælper ikke at farve håret. Man kan stadig ikke kode og får så bare mindre hjælp :-)
Avatar billede janvogt Praktikant
04. december 2001 - 14:44 #28
Beklager jeg ikke kunne deltage i det spændende spørgsmål. Jeg sad i møde!

Desuden er der en del på Eksperten, som kan lige så meget (og mere) VBA-kode end jeg kan :-)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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