HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv

Beiträge zum Thread: Umstieg auf Office LTSC Professional Plus 2024

Forumbeitrag
Excel-Version des Fragestellers:
365 Business
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
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
Forumbeitrag
Excel-Version des Fragestellers:
365 Business
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
daniel
26.06.2026 13:03:37
AW: Umstieg auf Office LTSC Professional Plus 2024
hi
und wie äußert sich der Fehler?
es wäre schon hilfreich zu wissen.
das, woran man erkennt, dass ein Fehler aufgetreten ist, enthält meistens schon den ersten Hinweis auf die Fehlerursache.
Daher sollte man das immer mit angeben, wenn man um Hilfe bittet.
Gruß Daniel
Forumbeitrag
Excel-Version des Fragestellers:
365 Business
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
Mike
26.06.2026 13:14:50
AW: Umstieg auf Office LTSC Professional Plus 2024
Dieses Script soll die Änderung im "Plan" in der Tabelle "Änderungen" dokumentieren. Dazu soll es den "Plan" mit der "Sicherung" vergleichen und dann die Änderungen in "Änderungen" schreiben.

Der Fehler ist eben, dass die Änderungen nicht in die Tabelle "Änderungen" geschrieben werden, sondern einfach nichts passiert. Das Kopieren der Daten aus dem "Plan" in die "Sicherung" funktioniert.

Es kommt keine Fehlermeldung o.ä. Es wird nur einfach nichts in "Änderungen" geschrieben.

In Excel 2021 hat dieses Script problemlos funktioniert.
Forumbeitrag
Excel-Version des Fragestellers:
365 Business
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
daniel
26.06.2026 13:30:02
AW: Umstieg auf Office LTSC Professional Plus 2024
Hi
leider kann ich den Fehler bei mir nicht nachstellen. bei mir funktioniert es.
da müsstest du mal deine Datei hochladen.
kleiner Tip neben bei: verwende Option Explicit.
Gruß Daniel
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
Forumbeitrag
Excel-Version des Fragestellers:
365 Business
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
Mike
26.06.2026 13:37:34
AW: Umstieg auf Office LTSC Professional Plus 2024
Problem gelöst. Es war eigene Dummheit. Ich hatte, aus welchem Grund auch immer, die ersten Zeilen bei "Änderungen" ausgeblendet und habe dann natürlich nicht gesehen, das alles richtig eingetragen worden ist.

Vielen Dank für eure Hilfe.