Zeilen nacheinander kopieren und einfügen
Hallo zusammen,
ich möchte in Excel eine Zeile kopieren von A bis M, diese auf einem neuen Tabellenblatt einfügen. Hier wird durch eine Formel die dort hinterlegt ist, ein neuer Wert ausgegeben, der hinter der Ursprungszeile eingefügt wird. Dies klappt auch wunderbar mit meinem Makro.
Allerdings muss ich nun auch alle weiteren Zeilen so bearbeiten. Dazu müsste ich jedoch mein Makro für jede Zeile kopieren und immer die Zeilennummerierung um 1 erhöhen (also von A1:M1 auf A2:M2, usw.). Das ist jedoch bei 2000 Zeilen ganz schön viel.
Gibt es hierfür einen Makro-Befehl, den ich in mein Makro einbauen kann, um nacheinander Zeile 1, Zeile 2 usw. zu bearbeiten?
Vielen Dank für eure Hilfe und beste Grüße
Antwort schreiben
Antwort 1 von coros vom 25.08.2020, 18:36 Options
Hallo Christian,
ohne Deine Datei und Dein Makro zu kennen, sollte soetwas über eine Schleife realisierbar sein. Mal als Beispiel
Dim iRow As Long
For iRow = 1 To 2000
'Hier dann Dein bereits vorhandener VBA-Code
Next
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von ChristianW vom 26.08.2020, 10:11 Options
Hallo Oliver,
vielen Dank für deine schnelle Hilfe, aber das hat leider nicht geklappt.
Hier mein VBA-Code: (Zeile A1 bis M1 soll kopiert, in H5 transponiert eingefügt, der neue Wert aus D19 kopiert und in O1 eingefügt werden. Danach Zeile A2 bis M2 und in O2 eingefügt werden, bis A2000-M2000 in O2000. H5 und D19 bleiben konstant)
Range("A1:M1").Select
Selection.Copy
Sheets("Function Coefficients").Select
Range("H5").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Range("D19").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Macro").Select
Range("O1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Wie muss ich nun hier deinen Code einbauen?
Vielen Dank nochmal und beste Grüße
Christian
Antwort 3 von coros vom 26.08.2020, 11:19 Options
Hallo Christian,
nachfolgendes Makros sollte das machen, was Du Dir vorstellst.
Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.Option Explicit
Sub Kopieren()
Dim iRow As Long
For iRow = 1 To 2000
Range("A" & iRow & ":M" & iRow).Copy
Sheets("Function Coefficients").Range("H5").PasteSpecial Paste:=xlPasteAll, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Range("D19").Copy
Sheets("Macro").Range("O" & iRow).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Next
End Sub
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 4 von ChristianW vom 26.08.2020, 12:36 Options
Hallo Oliver,
vielen lieben Dank für deine schnelle und hilfreiche Antwort. Ich habe mein Makro nun mit deinen Angaben erweitert und es funktioniert einwandfrei!
Besten Dank und viele Grüße
Christian