Excel vba automatische befüllung ersten freien zeile mehreren spalten informationen

1 Antworten zur Frage

~ nächste freie Spalte transferiert werden und mir nicht meinen ersten Kunden in Zeile 3 überschreiben? schonmal Ok ich habe meinen Fehler ~~ überschreibt den ersten Kunden in Zeile 3, anstatt bis zur freien Zeile 28.
Bewertung: 2 von 10 mit 223 Stimmen

Videos zum Thema
Video

Excel VBA, automatische Befüllung der ersten freien Zeile in mehreren Spalten mit Informationen

ich werde langsam wahnsinnig mit den Mengen an echt schlechten Codebeispielen, die man im Netz findet. Ich habe eine sehr konkrete Frage zur Übertragung von Daten zwischen Tabellen. Szenario: Kundendaten werden in der Tabelle Auftragsannahme erfasst. Nach der Erfassung kann der Kunde in die Kundenliste übernommen werden. Spalte A bis I mit Kundennummer, Anrede, Vorname, Nachname, Adresse, PLZ, Ort, Email, Zahlungsbedingungen. Der Code muss also zunächst die nächste freie Zeile in der Kundenliste ermitteln. Dies ist Zeile 28 im laufenden Beispiel. Dann muss er die Werte aus der Auftragsannahme korrekt in die Kundenliste überführen. Kundennummer von H6 in Spalte A, Anrede von D4 in Spalte B und so weiter.
Ich habe nun bereits folgenden Code generiert: Worksheets("Kundenliste"Range("A1"xlDown.Value = _ Worksheets("Auftragsannahme""H6") 'Kundennummer
Dieser Code ermittelt erfolgreich das Feld A28 als erste leere Position und trägt die Kundennummer dort ein. So weit so gut. Wenn ich aber auf diese Art weitermache, also mit:
Worksheets("Kundenliste"Range("B1"xlDown.Value = _ Worksheets("Auftragsannahme""D4") 'Anrede
Dieser Code überschreibt den ersten Kunden in Zeile 3, anstatt bis zur freien Zeile 28 hinunterzuspringen.
Nun ist meine Frage: Wie schreibe ich es, dass auch die Anrede korrekt in die nächste freie Spalte transferiert werden und mir nicht meinen ersten Kunden in Zeile 3 überschreiben?
schonmal
Ok ich habe meinen Fehler selbst gefunden.
Worksheets("Kundenliste"Range("A1"xlDown.Value = _Worksheets("Auftragsannahme""H6") 'KundennummerWorksheets("Kundenliste"Range("A1"xlDown.Value = _Worksheets("Auftragsannahme""D4") 'Anrede
Wie man sehen kann musste das +1 bei Row entfernt werden. das war alles.