Guten Tag,
Ich hatte schon in einem anderen Forum um eine Lösung dieses Problems gebeten, jedoch kam bis jetzt keine Antwort. Deshalb hoffe ich hier eine zu erhalten.
Ich habe eine ToDo Tabelle mit dem unten aufgeführten Script erstellt und stehe nun vor dem nächsten Problem (Fehlermeldung beim Kopieren der Datensätze).
Auf der aktuellen ToDo Seite wird die Tabelle auch richtig entsperrt und wieder (nach Ablauf des Scripts) gesperrt, sofern die Archiv-Seite noch nicht gesperrt ist (also kein Kennwort gesetzt ist).
Sobald ich die Archivseite schütze (analog der ToDo Seite), wird eine Fehlermeldung bei
wksArchiv.Rows (2).Insert Shift:=clDown
Angezeigt (Fehlermeldung: Die Insert-Methode des Range-Objektes konnte nicht ausgeführt werden.)
Das würde für mich bedeuten, dass ich das
ActiveSheet.Unprotect Password:=""
noch nicht richtig gesetzt habe. Ist das richtig? An welchen Ort müsste ich denn den Befehl hinterlegen, oder gar eine andere Variante?
ub MoveToArchiv()
ActiveSheet.Unprotect Password:=""
Dim i As Long
Dim lRows As Long
Dim vntResult As Variant
Dim wksToDo As Worksheet
Dim wksArchiv As Worksheet
Set wksToDo = ActiveWorkbook.Worksheets("ToDo")
Set wksArchiv = ActiveWorkbook.Worksheets("Archiv")
lRows = wksToDo.UsedRange.SpecialCells(xlCellTypeLastCell).Row
For i = lRows To 2 Step -1
Set vntResult = wksToDo.Range(wksToDo.Cells(i, 8), wksToDo.Cells(i, 8)).Find( _
What:="erledigt", LookIn:=xlValues, lookat:=xlWhole, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=True)
If Not vntResult Is Nothing Then
wksToDo.Rows(i).Copy
wksArchiv.Rows(2).Insert Shift:=xlDown
wksToDo.Rows(i).Delete Shift:=xlUp
End If
Set vntResult = Nothing
Next i
Application.CutCopyMode = False
Set wksToDo = Nothing
Set wksArchiv = Nothing
ActiveSheet.Protect Password:=""
End Sub
|