1.9k Aufrufe
Gefragt in Tabellenkalkulation von dommel Mitglied (361 Punkte)
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.

4 Antworten

0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
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
0 Punkte
Beantwortet von dommel Mitglied (361 Punkte)
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.
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
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
0 Punkte
Beantwortet von dommel Mitglied (361 Punkte)
Genau diese Logik meinte ich :-).

Danke es läuft perfekt.... bist der Beste ;-)
...