Wie kann ich in Excel VBA eine Zeile in die nächste leere Zeile eines anderen Tabellenblattes einfügen?
Hi, ich habe hier ein Makro und weiß nicht was dabei falsch ist.... Makro: http://www.codecopy.de/?action=show&q=92cabe Das Makro funktioniert auch, aber nur kurz... Wenn ich es einmal ausführe dann klappt alles, auch beim zweiten mal wird die Zeile von Tabelle1 in Tabelle5 eingefügt! Beim dritten Mal Ausführen allerdings, sind im Tabellenblatt 5 nur Zwei Zeilen eingefügt worden! Woran kann das liegen und wie kann ich es beheben? Bzw. wenn es eine bessere Variante gibt es zu machen bitte schreibt mir den Quellcode! Das soll das Programm machen: Wenn in Tabelle1 in der Spalte L (12) in der dritten Zeile ein Wert steht, ob Text oder sonst was ist egal, dann soll die ganze Zeile kopiert und in Tabelle5 in der nächsten leeren Zeile eingefügt werden! Bitte helft mir mit diesem Makro! Danke für die Antworten schon im Voraus!
3 Antworten
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!
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!
Vielen Dank für deine Hilfe! Jetzt funktioniert es!