VBA: Daten in nächste freie Zeile kopieren

Guten Tag,
mein Problem: In den Feldern A1:A4 in Tabelle 2 habe ich Daten stehen. Rechts daneben soll ein Button hinkommen. Nach Druck auf diesen Button sollen diese Daten dann in Tabelle 1 in die Felder A3:A6 kopiert werden, falls diese frei sind. Wenn nicht, dann darunter. Der Cursor soll sich danach in Spalte 2, links neben den kopierten Daten befinden.

Da ich mich mit VBA nicht auskenne bräuchte ich hierfür das Script um den Button lebendig zu machen.

Hallo,

probier das mal als Routine hinter der Befehlsschaltfläche. (So ganz perfekt ist es noch nicht.)

Sub Kopieren()
 Dim Startzeile As Integer
 Worksheets(2).Range("A1:A4").Copy
 With Worksheets(1)
 .Activate
 Startzeile = .Columns(1).Cells.SpecialCells(xlCellTypeLastCell).Row
 If Startzeile 

Gruß
smalbop

Hallo,
Danke erstmal.
Hab es eingefügt aber bei mir tut sich gar nix, wenn ich den Button drücke.
Gruß
Sascha

tschuldigung, mir ist gerade aufgefallen, dass meine Aufgabenstellung Fehlerhaft ist.So sollte sie lauten:
mein Problem: In den Feldern A1:smiley:4 in Tabelle 2 habe ich Daten stehen. Rechts daneben soll ein Button hinkommen. Nach Druck auf diesen Button sollen diese Daten dann in Tabelle 1 in die Felder C1:F1 kopiert werden, falls diese frei sind. Wenn nicht, dann darunter. Der Cursor soll sich danach in Spalte 2, links neben den kopierten Daten befinden.

Hallo Peter,

Sub tt()
Dim Zei As Long
Zei = Worksheets("Tabelle1").Range("C" & Rows.Count).End(xlUp).Row + 1
Worksheets("Tabelle2").Range("A1:smiley:4").Copy Destination:=Worksheets("Tabelle1").Range("C" & Zei)
Worksheets("Tabelle1").Range("B" & Zei).Select
End Sub

Gruß
Reinhard

Ja, die Kopf- und Fußzeile darfst du natürlich nicht mit kopieren. Die Routine muss die sein, die von VBA dem Mausklickereignis zugewiesen wird. Weiß gerade nicht, wie die heißt und habe hier kein Excel. Aber anscheinend ist die Problemstellung ja sowieso ganz anders… :stuck_out_tongue:

smalbop

Hallo Reinhard,

bei Deiner Lösung bekomm ich eine Fehlermeldung:
Laufzeitfehler ‚1004‘:
Select-Methode des Range-Objektes konnte nicht ausgeführt werden.
Gruß
Sascha

Vielen Dank - Problem gelöst, funktioniert jetzt.

bei Deiner Lösung bekomm ich eine Fehlermeldung:
Laufzeitfehler ‚1004‘:
Select-Methode des Range-Objektes konnte nicht ausgeführt
werden.

Hallo Sascha,

sorry, mein Fehler.
GGfs. kannst du auch Scroll:=false hinschreiben.

Sub tt()
Dim Zei As Long
Zei = Worksheets(„Tabelle1“).Range(„C“ & Rows.Count).End(xlUp).Row + 1
Worksheets(„Tabelle2“).Range(„A1:smiley:4“).Copy Destination:=Worksheets(„Tabelle1“).Range(„C“ & Zei)
Application.Goto Reference:=Worksheets(„Tabelle1“).Range(„B“ & Zei), Scroll:=True
End Sub

Gruß
Reinhard

Hallo mr.peterbuild,
vielleicht so:

'Modul Tabelle2

Private Sub CommandButton1\_Click()Call Kopieren
End Sub


Sub Kopieren()
 Dim erste\_freie\_Zeile As Integer
 Worksheets("Tabelle2").Range("A1:smiley:4").Copy
 With Worksheets("Tabelle1")
 .Activate
 erste\_freie\_Zeile = .Columns(3).Cells.SpecialCells(xlCellTypeLastCell).Row
 If erste\_freie\_Zeile