Supportnet Computer
Planet of Tech

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

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.

Antwort 3 von JoeKe

Hi ACR,

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

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

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