Hallo Peter,
da kann ich meinem Vorredner nur beipflichten.
Der alternative Code den du gepostet hast läuft wunderbar.
Sub test()
Dim f As String
Dim x As Integer
f = "Tabelle2"
x = 2
'ActiveSheet.Cells(x, 2).Select
'Selection.Copy
'Sheets(f).Select
'ActiveSheet.Cells(Application.Max(7, Cells(Rows.Count, 2).End(xlUp).Row + 1), 2).Select
'ActiveSheet.Paste
'Sheets("Tabelle1").Select ActiveSheet.Cells(x, 5).Select
'Selection.Copy
'Sheets(f).Select
'ActiveSheet.Cells(Application.Max(7, Cells(Rows.Count, 2).End(xlUp).Row), 7).Select
'ActiveSheet.Paste
'Sheets("Tabelle1").Select
'ActiveSheet.Cells(x, 16).Select
'Selection.Copy
'Sheets(f).Select
'ActiveSheet.Cells(Application.Max(7, Cells(Rows.Count, 2).End(xlUp).Row), 62).Select
'ActiveSheet.Paste
'Meine Idee war:
Sheets(f).Cells(Application.Max(7, Cells(Rows.Count, 2).End(xlUp).Row + 1), 2).Value = Sheets("Tabelle1").Cells(x, 2).Value
Sheets(f).Cells(Application.Max(7, Cells(Rows.Count, 2).End(xlUp).Row), 7).Value = Sheets("Tabelle1").Cells(x, 5).Value
Sheets(f).Cells(Application.Max(7, Cells(Rows.Count, 2).End(xlUp).Row), 62).Value = Sheets("Tabelle1").Cells(x, 16).Value
End Sub
Daher ist (mir) nicht ganz klar, worauf du jetzt noch hinaus willst.
Klar willst du schneller werden...Aber das Selektieren ist ja schon raus.
Ich würde vielleicht noch mal darüber nachdenken, ob auf das ständige "Row-Count" verzichtet werden kann.
Mache das doch am Anfang deines Makros einmal und speichere den Wert in einer Variablen ab.
Diesen Wert inkrementierst du dann mit jedem Schleifendurchlauf um "1"
So wird dein Code dann auch noch schlanker und übersichtlicher
Gruß
Andreas
PS: ansonsten mehr Code posten
|