Clever-Excel-Forum

Normale Version: kleine VBA Programmierung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo
ich hab keine Erfahrung mit VBA Programmierung, aber ich würde gerne ein Makro programmieren, welches
- Bereiche eines Tabellenblattes markiert und an eine andere Stelle kopiert
- dann zwei Spalten weiterspringt, wieder einen ähnlichen Bereich markiert und 26 Zeilen weiter unten (an das vorher kopierte anschliessend) kopiert

so weit bin ich bisher gekommen:

Sub Spaltenuntereinander2()
'


    Range("F7:G32").Select
    Selection.Copy
    Range("D33").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
       
        Range("H7:I32").Select
   
    Selection.Copy
    Range("D59").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
       

End Sub


Dies könnte ich nun einige 100 male wiederhollen, will ich aber nicht sondern ich möchte eine Schleife haben bis alles untereinander kopiert wurde

Danke vorab für eure Hilfe
Hallo Ruben,

probier mal das:
Code:
Public Sub Test()

Spalte = 6

Do
    Range(Cells(7, Spalte), Cells(32, Spalte + 1)).Select
    Selection.Copy
    Cells(ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row + 1, 4).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Spalte = Spalte + 2

Loop Until Spalte > ActiveSheet.Cells(7, Columns.Count).End(xlToLeft).Column

End Sub

Gruß,
Lutz
Danke

Ich bekomme die Fehlermeldung beim ersten Schritt: Fehler beim Kompilieren: Variable nicht definiert
Hallo Ruben,

vor der Zeile "Spalte=6"

Dim Spalte as Integer

einfügen.

Gruß,
Lutz
Mein code sieht jetzt so aus:

Public Sub Test()
Dim Spalte As Integer
Spalte = 6

Do
    Range(Cells(7, Spalte), Cells(32, Spalte + 1)).Select
    Selection.Copy
    Cells(ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row + 1, 4).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub


Ich bekomme nun die Meldung:Fehler beim Kompilieren: Do ohne Loop
Hallo Ruben,

Du hast die letzen beiden Zeilen nicht kopiert:
Code:
    Spalte = Spalte + 2

Loop Until Spalte > ActiveSheet.Cells(7, Columns.Count).End(xlToLeft).Column
Gruß,
Lutz
Super !!!
Danke
Jetzt funzt es