Supportnet / Forum / Tabellenkalkulation
verschieben von Zeilen in ein anderes Tabellenblatt
Frage
Hallo, Exel-Experten
brauche dringend Hilfe zu folgendem Problem:
Ich habe eine Tabelle1 und in den Spalten A bis L stehen verschiedene Werte (Text,Datum,Währung). Ich möchte nun, daß die gesammte Zeile in das Tabellenblatt2 (nächste leere Zeile) kopiert wird, wenn in Spalte G ein Betrag eingetragen wird. Die auf Tabelle1 eingetragenen Daten werden nach Beendigung eines gewissen Zeitraumes mittels Button (Macro) gelöscht.
Wäre Super, wenn ihr mir helfen könntet.
M.f.G.
ACR
Antwort 1 von JoeKe
Moin ACR,
kopiere folgenden Code in das VBA-Projekt deines Tabellenblattes:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zeile As Variant
Application.ScreenUpdating = False
Set Target = Intersect(Target, Range("G:G"))
If Target Is Nothing Then
Exit Sub
End If
If ActiveCell = "" Then
Exit Sub
Else
Zeile = ActiveCell.Row
Rows(Zeile).Copy
Sheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteFormulas, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Application.ScreenUpdating = True
End If
End Sub
Es sollte das sein was du suchst.
MfG
JöKe
kopiere folgenden Code in das VBA-Projekt deines Tabellenblattes:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zeile As Variant
Application.ScreenUpdating = False
Set Target = Intersect(Target, Range("G:G"))
If Target Is Nothing Then
Exit Sub
End If
If ActiveCell = "" Then
Exit Sub
Else
Zeile = ActiveCell.Row
Rows(Zeile).Copy
Sheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteFormulas, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Application.ScreenUpdating = True
End If
End Sub
Es sollte das sein was du suchst.
MfG
JöKe
Antwort 2 von ACR
Hi Jörg
Habe wie beschrieben den Code ins Project Tabelle1 eingefügt. Leider war das Ergebnis nicht so, wie erwartet. Es wurde auf das Blatt 2 nichts übertragen. Ich würde Dir gerne mal meine Tabelle zur Veranschaulichung per EMail schicken. Vielleicht habe ich mich ja nicht besonders deutlich ausgedrückt und darum funktioniert das Macro nicht.
Habe wie beschrieben den Code ins Project Tabelle1 eingefügt. Leider war das Ergebnis nicht so, wie erwartet. Es wurde auf das Blatt 2 nichts übertragen. Ich würde Dir gerne mal meine Tabelle zur Veranschaulichung per EMail schicken. Vielleicht habe ich mich ja nicht besonders deutlich ausgedrückt und darum funktioniert das Macro nicht.
Antwort 3 von JoeKe
Hi ACR,
schau mal in deinen Pager.
Gru?
JöKe
schau mal in deinen Pager.
Gru?
JöKe
Antwort 4 von JoeKe
Hi ACR,
das der Code nicht läuft liegt an deinem Blattschutz.
Versuch mal folgendes:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zeile As Variant
ActiveSheet.Unprotect
Sheets("Index").Select
ActiveSheet.Unprotect
Sheets("Arztrechnungen").Select
Application.ScreenUpdating = False
Set Target = Intersect(Target, Range("G8:G53"))
If Target Is Nothing Then
Exit Sub
End If
If ActiveCell = "" Then
Exit Sub
Else
Zeile = ActiveCell.Row
Rows(Zeile).Copy
Sheets("Index").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteFormulas, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets("Index").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets("Arztrechnungen").Select
Application.ScreenUpdating = True
End Sub
Es muss allerdings immer etwas in Spalte A eingetragen sein, damit der Code auch fortlaufend kopiert.
MfG
JöKe
das der Code nicht läuft liegt an deinem Blattschutz.
Versuch mal folgendes:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zeile As Variant
ActiveSheet.Unprotect
Sheets("Index").Select
ActiveSheet.Unprotect
Sheets("Arztrechnungen").Select
Application.ScreenUpdating = False
Set Target = Intersect(Target, Range("G8:G53"))
If Target Is Nothing Then
Exit Sub
End If
If ActiveCell = "" Then
Exit Sub
Else
Zeile = ActiveCell.Row
Rows(Zeile).Copy
Sheets("Index").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteFormulas, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets("Index").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets("Arztrechnungen").Select
Application.ScreenUpdating = True
End Sub
Es muss allerdings immer etwas in Spalte A eingetragen sein, damit der Code auch fortlaufend kopiert.
MfG
JöKe
Antwort 5 von ACR
Hi Jörg
Der Code funktioniert super. Nochmals vielen Dank für die promte Hilfe.
Wünsche Frohe Weihnacht und Guten Rutsch ins
neue Jahr....
ACR
Der Code funktioniert super. Nochmals vielen Dank für die promte Hilfe.
Wünsche Frohe Weihnacht und Guten Rutsch ins
neue Jahr....
ACR
Antwort 6 von JoeKe
ACR,
freut mich, dass ich dir helfen konnte. Vielen Dank für die Rückinfo.
Auch dir Frohe Weihnachten und einen Guten Rutsch
JöKe
freut mich, dass ich dir helfen konnte. Vielen Dank für die Rückinfo.
Auch dir Frohe Weihnachten und einen Guten Rutsch
JöKe

