Avatar billede rusticolus Nybegynder
19. januar 2011 - 01:45 Der er 2 kommentarer og
1 løsning

Hvordan opretter jeg en lykke i en makro?

I kollonne B har jeg en lang række af tal som jeg vil kopiere og transponere i grupper hvordan gør jeg det i en lykke?

F.eks. B1, B2, B3 og B4 kopieres og indsættes - tranporneres i celle D1-G1. Herefter B5, B6, B7 og B8 kopieres og indsætte - tranporneres i celle D5-G5 osv. indtil der ikke er flere værdier i kolonne B (evt. 1000 gange)

Her er min makro som jeg forestiller mig køre i en lykke, men hvordan gør jeg dette?

Sub Makro3()

'Marker A1 og start makro

    ActiveCell.Offset(0, 1).Range("A1:A4").Select
    Selection.Copy
    ActiveCell.Offset(0, 2).Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    ActiveCell.Offset(4, -2).Range("A1:A4").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveCell.Offset(0, 2).Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True

End Sub
Avatar billede excelent Ekspert
19. januar 2011 - 16:31 #1
Sub tst()
For t = 1 To 1000 Step 4
Range("B" & t & ":B" & t + 3).Copy
Range("D" & t).PasteSpecial xlPasteAll, , , True
Next
Application.CutCopyMode = False
End Sub
Avatar billede newbieatphp Nybegynder
19. januar 2011 - 20:10 #2
En anden mulighed er, at du laver en while løkke:

While not activecell.offset(0,1).value = ""

  'din kode
  activecell.offset(4,0).select
Wend
Avatar billede rusticolus Nybegynder
19. januar 2011 - 22:56 #3
Tak for jeres svar, men jeg kunne ikke få jeres løsninger til at virke.

Jeg fandt en tredje løsning:

x = 1
    ActiveCell.Offset(0, 1).Range("A1:A4").Select
    Selection.Copy
   
    Do While Cells(x, 2).Value <> ""
   
    ActiveCell.Offset(0, 2).Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    ActiveCell.Offset(0, -3).Range("A1").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveCell.Offset(0, 2).Range("A1").Select
    ActiveSheet.Paste
    ActiveCell.Offset(4, -1).Range("A1:A4").Select
    Application.CutCopyMode = False
    Selection.Copy
 
  x = x + 1
  Loop
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



IT-JOB