HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv
Forumbeitrag
Excel-Version des Fragestellers:
365 Business
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
daniel
26.06.2026 13:22:19
AW: Umstieg auf Office LTSC Professional Plus 2024
Hi

wenn ich das laufen lasse, meckert mir VBA die Zeile an:
Worksheets("Änderungen").Protect, AllowComments = True


wie man sieht, ist hier auch die Schreibweise nicht richtig.
normalerweise dürfte hier vor dem ersten benannten Parameter kein Komma stehen und vor dem = müsste ein : stehen , so beim PasteSpecial.
also so müsste es aussen:
Worksheets("Änderungen").Protect AllowComments:=True


der Parameter "AllowComments" wird in der Hilfe auch nicht mehr aufgeführt.
vielleicht hat es den früher mal gegeben und jetzt gibt es ihn nicht mehr.
Daher lösche den Code der Zeile ab dem Komma.
Worksheets("Änderungen").Protect

wenn du Protect ohne weitere Parameter anwendest, wird das Blatt mit den Einstellungen geschützt, die es beim vorherigen unprotect hatte.

Gruß Daniel
Als Antwort auf diesen Beitrag
Mike
26.06.2026 12:20:10
Umstieg auf Office LTSC Professional Plus 2024
Hallo zusammen,
dank eurer Hilfe hatte ich in Excel 2021 die Programmierung im VBA hinbekommen. Jetzt wurde bei uns auf "Office LTSC Professional Plus 2024" umgestellt und es funktionieren alles bis auf eines. Die ActiveX-Elemente sind in den Einstellungen wieder aktiviert worden.

Der letzte Absatz, das Kopieren von "Plan" nach "Sicherung", funktioniert. Irgendwo beim Abgleich zwischen "Plan" und "Sicherung" und dem Schreiben der Änderungen in "Änderungen" liegt der Fehler. Das übersteigt aber leider meine Fähigkeiten hier den Fehler zu finden. Könnt ihr mir da bitte helfen?



Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim ArrS, ArrP
Dim z As Long, s As Long
Dim X
Dim i As Long
Dim user As String

Application.ScreenUpdating = False

user = Environ("Username")
ArrS = Sheets("Sicherung").Range("A1:AF76").Value
ArrP = Sheets("Plan").Range("A1:AF76").Value
ReDim X(1 To UBound(ArrP, 1) * UBound(ArrP, 2), 1 To 6)
i = 0
For z = 2 To UBound(ArrS, 1)
For s = 2 To UBound(ArrS, 2)
If ArrS(z, s) <> ArrP(z, s) And ArrS(z, s) <> "VA" And ArrP(z, s) <> "VA" Then
i = i + 1
X(i, 1) = Date
X(i, 2) = ArrS(2, s)
If ArrP(z, 1) = "" Then X(i, 3) = ArrS(z, 1) Else X(i, 3) = ArrP(z, 1)
If ArrS(z, s) = "" Then X(i, 4) = "---" Else X(i, 4) = ArrS(z, s)
If ArrP(z, s) = "" Then X(i, 5) = "---" Else X(i, 5) = ArrP(z, s)
If IsError(Application.VLookup(user, Sheets("Berechnungen").Range("AL2:AM54"), 2, False)) Then X(i, 6) = Environ("Username") Else X(i, 6) = Application.WorksheetFunction.VLookup(user, Sheets("Berechnungen").Range("AL2:AM54"), 2, False)
End If
Next
Next

Worksheets("Änderungen").Unprotect
Sheets("Änderungen").Cells(Sheets("Änderungen").Cells(Rows.Count, 1).End(xlUp).Row + 1, 7).Locked = False
Sheets("Änderungen").Cells(Sheets("Änderungen").Cells(Rows.Count, 1).End(xlUp).Row + 1, 8).Locked = False
Sheets("Änderungen").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(UBound(X, 1), UBound(X, 2)) = X
Worksheets("Änderungen").Protect, AllowComments = True

Worksheets("Sicherung").Unprotect
Sheets("Plan").Range("A1:AF76").Copy
Sheets("Sicherung").Range("A1:AF76").PasteSpecial Paste:=xlPasteValues
Worksheets("Sicherung").Cells.Locked = True
Worksheets("Sicherung").Protect
Application.CutCopyMode = False

Application.ScreenUpdating = True

End Sub
Folgenachrichten
Antwort auf Beitrag erstellen
Bitte einen Anwendernamen ohne @ eingeben.
Bitte das Passwort eingeben.
Bitte eine gültige E-Mail-Adresse eingeben.
Bitte einen Betreff eingeben.
Weitere Optionen
Aktivieren, wenn die Frage/der Beitrag noch nicht beantwortet wurde und unter Listen > Offene Threads erscheinen soll.
Beispieldatei hochladen

Bitte einen Nachrichtentext eingeben.