Zeile per Command button kopieren und in eine Tabelle einfügen

Hallo zusammen,

ich bin absoluter VBA anfänger und brauche eure Hilfe.

Ich möchte den Überweisungsvorgang einer Bank per Excel simulieren.
Hierfür möchte ich aus einem Tabellenblatt, welches als Überweisungsträger (B6 = Empfänger, B8 = IBAN, x13 = Betrag, B15 =Verwndungszweck, B17 = Verwendungszweck) formatiert wurde, die Daten in ein anderes Tabellenblatt kopieren, welches als Kontoauszug (Spalte B = Empfänger, Spalte C = Verwendungszweck 1, usw.) formatiert wurde (per Command Button). Die Daten aus dem Überweisungsträger sollen nach  Drücken des Command Buttons anschließend wieder gelöscht werden, damit dieser wieder mit neuen Daten befüllt werden kann. Im Kontoauszug sollen die Daten immer unter die letzte befüllte Zeile angehängt werden.

Vielen Dank für Eure Hilfe

Hallo Einsteiger :smile:

Du kennst bestimmt den Makro-Recorder. Den starte bitte ´mal und füge auf Deinem Ziel-Blatt eine Zeile neu ein, und zwar unter der Überschriftenzeile!
Dann führst Du alle Kopieraktionen von Hand aus.
Danach alle Löschungen auf dem Quell-Blatt.
Jetzt kannst Du den Recorder stoppen und im erzeugten Code erst´mal alle Zeilen löschen, die irgendetwas mit „scroll“ beinhalten.
Dann würde ich mir alle Zeilen vornehmen, die so aussehen
.select
selection.copy
.paste…
und ersetzen durch
Zielzelle=Quellzelle
Damit ist Dein Makro prinzipiell fertig. Nur steht Deine neue Zeile jetzt oben statt unten.
Kann man aber per Sortieren nach bspw. Datum schnell korrigieren.
Du kannst auch den Sortiervorgang aufzeichnen und dieses zweite makro
durch „call makro2“ ( oder wie immer es dann heißt ) in das erste einbinden.
Diesen Weg habe ich ´mal so gewählt, weil alle Methoden, die letzte freie Zeile zu finden, ihre Nachteile haben bzw. unzuverlässig funktionieren. Dazu gibt es hier schon mehrere Diskussionen hier im Brett.
Viel Erfolg

Thomas

P. S.: Solltest Du auf eine Komplettlösung hoffen, wäre es sicher von Vorteil, eine Beispielmappe bei einem Filehoster hochzuladen und den Link hier einzustellen.
Mehr lernen wirst Du aber, wenn Du Dich da selber ´reinhängst :wink:

Also hier mal ein kleiner Lösungsansatz

>>>>>

Sub Loesung()

Dim iZahl As Integer
Dim iNeueZeile As Integer

iNeueZeile = Tabelle2.UsedRange.Rows.Count + 1

If iNeueZeile = 2 And Tabelle2.Cells(iNeueZeile - 1, 1) = „“ Then
iNeueZeile = iNeueZeile - 1
End If

With Tabelle2
.Cells(iNeueZeile, 1) = Tabelle1.Range(„A3“)
.Cells(iNeueZeile, 2) = Tabelle1.Range(„A4“)
.Cells(iNeueZeile, 3) = Tabelle1.Range(„A5“)
.Cells(iNeueZeile, 4) = Tabelle1.Range(„A6“)
.Cells(iNeueZeile, 5) = Tabelle1.Range(„A7“)
End With

End Sub