VBA Code
Hallo zusammen ich brauche widereinmal eure kompetente Hilfe.
Ich habe folgenden Fall
Private Sub CommandButton1_Click()
Sheets("Tabelle1").Select
Range("EF17").Copy
Sheets("Belgien").Range("L8").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("Belgien").Range("M12").Copy
Sheets("Tabelle1").Range("EG17").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveCell.Offset(1, 0).Activate
End Sub
Aktuell geht erreicht der VBA folgendes:
er kopiert hierbei von einer zeile in eine andere zeile auf einem anderen tabellen blatt.
und spring nach einem durchgang in die erste frei zeile (hier EF18)
-----------------------------------------
Ich habe folgendes Problem bzw will folgendes erreichen:
Er soll automatisch in die nächste Zeile springen die frei ist, nach der abfrage .
Und dann
wird im oberen vba code EF17 zu EF 18
und EG 17 zu EG 18
usw.
dann soll die abfrage wieder starten und die neuen werte werden übertragen.
das soll er solange machen bis in EF 17 kein wert mehr drin steht
die dick gedruckten werte sind fix.
Also zwei werte in dieser formel sollen variabel sein.
Ich hoffe ihr könnt mir da weiterhelfen.
Antwort schreiben
Antwort 1 von Saarbauer vom 01.06.2022, 16:13 Options
Hallo,
so richtig verstanden habe ich nicht was du vorhast, aber vielleicht hilft das weiter
Range("A65536").End(xlUp).Row
ermittelt die letzte belegte Zeile in Spalte A, geht natürlich auch mit jeder anderen Spalte. Die erste leere Zelle ist dann
Range("A65536").End(xlUp).Row +1
Gruß
Helmut
Antwort 2 von DOMMEl vom 01.06.2022, 19:22 Options
Ich drück mich wieder zu kompliziert aus :-)
Ziel ist es, dass er das VBA ausführt (hin und herkopieren) mit den Feldern EF17 und EG 17.
Dann soll das VBA in die nächste Zeile gehen, EF18 und EG 18, dort soll er wieder das vba ausführen.
Dann soll er wieder in die nächste Zeile gehen und das mit EF19 und EG 19 machen
u.s.w.
Die soll solange gehen bis in EF19 keine Zahl mehr drin steht.
Es geht dabei um 4200 Datensätze wo er dieses hin und herkopieren machen soll.
Antwort 3 von Saarbauer vom 01.06.2022, 20:10 OptionsLösung
Hallo,
es ist immernoch sehr schwer verständlich, aber ich versuche es mal
Du kopierst au T(abelle)1 EF17 nach B(elgien) L8.
Dann aus B M12 nach T1 EG17.
Im nächsten Durchgang T1 EF18 nach B L8 und B M12 Nach T1 EG18 und so weiter bis alle Zeilen (rd. 4000) abgearbeitet sind.
Private Sub CommandButton1_Click()
Sheets("Tabelle1").Select
For i = 17 to Range("EF65536").End(xlUp).Row
Sheets("Tabelle1").Select
Range("EF" & i ).Copy
Sheets("Belgien").Range("L8").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("Belgien").Range("M12").Copy
Sheets("Tabelle1").Range("EG" & i).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Next i
End Sub
Die kursiv geschriebenen Zeilen sind von mir geändert. versuch es mal damit, die 17 habe ich als Start gewählt weil das beiddir auch als erste Angabe auftaucht (EF17) müsste vielelicht angepasst werden. Die Zeile
ActiveCell.Offset(1, 0).Activate
entfällt. Ich vermute das Programm läuft eine Weile bei rd. 4000 Zeilen
Gruß
Helmut
Antwort 4 von DOMMEl vom 01.06.2022, 22:20 Options
Genau diese Logik meinte ich :-).
Danke es läuft perfekt.... bist der Beste ;-)