vorab, ich habe sehr wenig VBA-Erfahrungen. Ich hatte es mal vor langer Zeit in der Schule, jedoch ist davon nicht mehr viel hängengeblieben. Ich habe derzeit folgendes Problem:
Ich habe eine Tabelle mit 2 Arbeitsblättern, im Grunde handelt es sich um eine Checkliste. Wenn im Arbeitsblatt 1 die Bedingung in der Spalte E:Status = "Erledigt" ist und in Spalte F: Wann? ein Datum eingetragen ist, dann kopiert er die gesamte Zeile und fügt diese in das Arbeitsblatt "Abgeschlossen" ein. Dies funktioniert soweit mit folgendem Makro ganz gut:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim loLetzte1 As Long
With Worksheets("Abgeschlossen")
loLetzte1 = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
End With
If Target.Count > 1 Then Exit Sub
If Target.Column = 5 Then
If Target.Row > 1 Then
If Target.Value = "Erledigt" Then
If Target.Offset(, 1) = "" Then
MsgBox "Wann erledigt?"
Target = ""
Target.Offset(, 1).Select
Else
Target.EntireRow.Copy Worksheets("Abgeschlossen").Rows(loLetzte1)
Target.EntireRow.Delete shift:=xlUp
End If
End If
End If
End If
End Sub
Soweit so gut. Diese Tabelle wird dann durch weitere Arbeitsblätter erweitert, z.B. Hauptkonferenz, Vorkonferenz usw... Angenommen der Anwender wählt im Arbeitsblatt "Hauptkonferenz" versehentlich in der Spalte E "Status" erledigt aus, wird die Zeile direkt in das Arbeitsblatt Abgeschlossen kopiert. Nun gehe ich aber in das Arbeitsblatt "Abgeschlossen" und möchte, dass wenn ich in Spalte E "Status" das "Erledigt" wieder entferne, er die Zeile automatisch in das ursprüngliche Arbeitsblatt kopiert, also dann explizit in das Arbeitsblatt "Hauptkonferenz". Ich habe dies mit dem o.g. Makro einfach im Arbeitsblatt "Abgeschlossen" probiert, aber das funktioniert nicht, denn er kopiert die Zeilen immer zurück in "Hauptkonferenz", auch wenn ich diese z.B. aus "Vorkonferenz" kopiert habe. Also im Endeffekt müsste das vorherige Ursprungsarbeitsblatt erkannt werden. Ist dies überhaupt möglich?
Vielen Dank für die Hilfe.
Grüße
Paul