Wie kann ich in Excel VBA eine Zeile in die nächste leere Zeile eines anderen Tabellenblattes einfügen?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Versuche einmal folgendes:

rngAusgangszelle.Copy Destination:=Tabelle5.UsedRange.Offset(1).EntireRow

Bei der Definition der Ausgangszeile würde ich das Tabellenblatt mit angeben: 

Set rngAusgangszelle = Tabelle1.Rows(3)

Teste mal folgenden Code, der sollte machen was du willst.

Man kann das auch machen das er das ganze automatisch in Tabelle 5 überträgt wenn du L3 änderst aber das ist wieder was anderes.

Hier jetzt dein Code, den einfach in Diese Arbeitsmappe ablegen, hier wird jetzt nach Spalte A geprüft:

Sub ArchivierungDerDaten()
Application.ScreenUpdating = False
Dim leereZeile
Dim rngAusgangszelle As Range
Dim rngPruefzelle As Range
Set rngAusgangszelle = Rows(3)
Set rngPruefzelle = Tabelle1.Cells(3, 12)
If rngPruefzelle.Value <> "" Then
rngAusgangszelle.Copy
Sheets("Tabelle5").Select
leereZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
Range("A" & leereZeile & ":A" & leereZeile).Select
ActiveSheet.Paste
Application.CutCopyMode = True
Application.ScreenUpdating = True
Sheets("Tabelle1").Select
MsgBox ("Zeile wurde erfolgreich übertragen")
End If
End Sub

Klappt es? (bei mir ja GETESTET)

Achja, die Meldung kannst du natürliuch auch löschen wenn du die nicht haben willst. Dann einfach:

MsgBox ("Zeile wurde erfolgreich übertragen")

rausnehmen.

Danke dass du dir die Mühe gemacht hast, bei mir hat es leider trotzdem nicht funktioniert!

0

deine konstruktion verstehe ich nicht: du versuchst eine Zeile auf ein rechteckiges (nur am anfang 1-zeiligen) Bereich zu kopieren.

Bei mir hat folgendes funktioniert:

nextrow = Tabelle2.Cells.SpecialCells(xlCellTypeLastCell).Row + 1  
rngAusgangszelle.Copy Destination:=Tabelle2.Rows(nextrow)



Danke für deine Antwort, hat sich allerdings schon erübrigt! Die Verbesserungsvorschläge von Subobtimierer haben funktioniert!

0

Was möchtest Du wissen?