Automatische Archivierung
11.09.2017 13:39:20
Sabine
ich bin ein absoluter VBA-Neuling, habe aber gerade die Aufgabe erhalten, komplette Zellen in Excel zu archivieren, sobald eine Zelle den Wert "erledigt" erhält. Ich habe hierzu zwar schon ein paar Ansätze online gefunden, allerdings funktioniert es noch nicht und ich finde meinen Fehler nicht.
Folgenden VBA-Code habe ich mir von Eurer Seite kopiert und (hoffentlich richtig) angepasst:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lRow As Long
If Not (Target.Column = 11 And _
Target.Row > 1) Then GoTo leave_sub
On Error GoTo leave_sub
If LCase(Target.Value) = "erledigt" Then
lRow = Sheets("Archiv_Overview").Range("K" & Sheets("Archiv_Overview").Rows.Count).End( _
_
xlUp).Row + 1
ActiveSheet.Range(Cells(Target.Row, 1), Cells(Target.Row, 11)).Copy
Sheets("Archiv_Overview").Cells(lRow, 1).PasteSpecial Paste:=xlPasteValues
Target.EntireRow.Delete (xlUp)
MsgBox "Datensatz wurde archiviert!", vbOKOnly + vbInformation, "Archiv"
End If
leave_sub:
End Sub
Wenn ich den VBA-Code laufen lasse, erscheint bei mir der Laufzeitfehler 424 ("Objekt erforderlich").
Zur Tabelle an sich: In zwei verschiedenen Tabellenblättern werden Projektdaten eingetragen. Auf dem Tabellenblatt "Overview" sind generelle Informationen, wie Projektname, Start, Ende, zuständige Person etc. enthalten. Hier gibt es die Spalte K in der per Formel eingetragen wird, wann ein Projekt beendet ist ("erledigt"). Sobald das Projekt auf "erledigt" steht, soll es automatisch in das Tabellenblatt "Archiv_Overview" verschoben werden.
Im zweiten Tabellenblatt sind noch weitere Informationen zu den Projekten enthalten. Hier sollen erledigte Projekte natürlich ebenfalls verschoben werden, aber ich denke, da könnte man den funktionierenden VBA nehmen und entsprechend anpassen?
Ganz ganz vielen lieben Dank für Eure Hilfe!
Sabine