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… 
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