Excel Datenablage
Hi,
ich habe ein Excel Ablageproblem...Ziel ist es aus einer Rechnungseingabemaske die Daten zu kopieren und in eine Tabelle(gleiche Datei) abzulegen(einfügen). Dabei ist natürlich wichtig, dass er erstmal die nächste freie Zeile ermittelt.
Soweit so gut. Kopieren tut er, letzte Zeile ermitteln auch...Das mit dem einfügen ist seltsamer Weise mein Problem.
Obwohl er die Daten in einer anderen Tabelle einfügt, bekomme ich die Nachricht, dass es Typenunverträglich ist:
Sub Ablage()
Dim lastRow As Long
Dim firstRow As Long
'Kopiert Rechnungsdaten
Worksheets("Rechnungseingabe").Select
Range("A10:H24").Select
Selection.Copy
'Zählt die bereitsabgelegten Zeilen
Worksheets("PreOrder").Select
firstRow = Range("A2").EntireRow.Select
lastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
'Fügt in die erste freie Zeile ein
ZielZeile = Cells(lastRow, 1).Select
Set ZielZeile = Selection.PasteSpecial(xlPasteValues)
Worksheets("Rechnungseingabe").Select
MsgBox "Daten sind abgelegt!"
End Sub
Ich nehme an, dass es daran liegt, das PasteSpecial eine Range benötigt. Leider weiß ich nicht wie ich diese vernünftig hier deklariere...Kann mir jemand helfen?
ich habe ein Excel Ablageproblem...Ziel ist es aus einer Rechnungseingabemaske die Daten zu kopieren und in eine Tabelle(gleiche Datei) abzulegen(einfügen). Dabei ist natürlich wichtig, dass er erstmal die nächste freie Zeile ermittelt.
Soweit so gut. Kopieren tut er, letzte Zeile ermitteln auch...Das mit dem einfügen ist seltsamer Weise mein Problem.
Obwohl er die Daten in einer anderen Tabelle einfügt, bekomme ich die Nachricht, dass es Typenunverträglich ist:
Sub Ablage()
Dim lastRow As Long
Dim firstRow As Long
'Kopiert Rechnungsdaten
Worksheets("Rechnungseingabe").Select
Range("A10:H24").Select
Selection.Copy
'Zählt die bereitsabgelegten Zeilen
Worksheets("PreOrder").Select
firstRow = Range("A2").EntireRow.Select
lastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
'Fügt in die erste freie Zeile ein
ZielZeile = Cells(lastRow, 1).Select
Set ZielZeile = Selection.PasteSpecial(xlPasteValues)
Worksheets("Rechnungseingabe").Select
MsgBox "Daten sind abgelegt!"
End Sub
Ich nehme an, dass es daran liegt, das PasteSpecial eine Range benötigt. Leider weiß ich nicht wie ich diese vernünftig hier deklariere...Kann mir jemand helfen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 132149
Url: https://administrator.de/contentid/132149
Ausgedruckt am: 23.11.2024 um 05:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo zusammen!
Wobei man das Ganze auch weniger umständlich machen kann:
Und wenn die Zellen im gleichem Format kopiert werden können, dann so:
Gruß Dieter
Wobei man das Ganze auch weniger umständlich machen kann:
Sub Ablage()
Dim Wks As Worksheet, NextLine As Long
Set Wks = Sheets("PreOrder")
Sheets("Rechnungseingabe").Range("A10:H24").Copy
NextLine = Wks.Cells(Wks.Rows.Count, "A").End(xlUp).Row + 1
Wks.Cells(NextLine, "A").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
MsgBox "Daten sind abgelegt!"
End Sub
Sub Ablage()
Dim Wks As Worksheet, NextLine As Long
Set Wks = Sheets("PreOrder")
NextLine = Wks.Cells(Wks.Rows.Count, "A").End(xlUp).Row + 1
Sheets("Rechnungseingabe").Range("A10:H24").Copy Destination:=Wks.Cells(NextLine, "A")
Application.CutCopyMode = False
MsgBox "Daten sind abgelegt!"
End Sub