Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1744to1748
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ActiveWindow.Close blockiert Unprotect

ActiveWindow.Close blockiert Unprotect
16.03.2020 09:37:41
Klexy
Moin zusammen.
Ich habe ein seltsames Verhalten entdeckt, zu dem ich weder eine Erklärung noch eine Lösung finden kann.
Die angehängte Musterdatei (Inhalt und Code auf das Minimum reduziert) hat ein Makro Workbook_BeforeClose. Wenn ich die Datei schließe, kommt eine Nachfrage, ob ich was an der Datei geändert habe, was dann in die Versionierungshistorie im Blatt Anleitung geschrieben wird. Bei jedem neuen Tag wird oben in der Versionierungshistorie eine neue Zeile eingefügt. Am gleichen Tag wird die bestehende Datumszeile genommen.
Wenn ich die Datei mit dem X rechts oben schließe, läuft es ganz normal durch.
Wenn ich die Datei aber über den Befehl ActiveWindow.Close schließe, läuft das Workbook_BeforeClose-Makro nicht durch, sondern bleibt hängen, weil die Codezeile [...].Unprotect nicht ausgeführt wird.
Dabei ist es egal ob der Befehl direkt im Makro ist: Sheets(Blatt).Unprotect Password:=Passwort
Oder ob der Befehl in ein eigenes Makro ausgelagert wird: Call Blatt_auf(Blatt, Passwort)
Oder ob die komplette Eintragsprozedur ausgelagert wird: Application.Run "Eintrag_auslagern", Blatt, Passwort, Eintrag, LetztesUpComment
Die verschiedenen Optionen sind (auskommentiert) alle im Code der Musterdatei enthalten.
https://www.herber.de/bbs/user/135883.xls

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ActiveWindow.Close blockiert Unprotect
16.03.2020 10:24:53
Matthias
Hallo
Das Passwort lässt sich aber auch manuell nicht aufheben.
Vielleicht liegt schon dort der Fehler.
Gruß Matthias
gleiches Problem in neuer Datei
16.03.2020 11:35:10
Matthias
Hallo
Es ist mir nicht gelungen die Datei zu schliessen(übers Kreuz),
ohne Fehlermeldung auf ein falsches Kennwort.
Nach dem ersten Rücksetzen des Fehlers lässt sich das PW wieder nicht manuell entfernen.
Ich lass offen.
Gruß Matthias
AW: gleiches Problem in neuer Datei
17.03.2020 09:43:37
Klexy
hallo Matthias,
sorry für die späte Antwort. Hier war gestern etwas Hektik.
Ich habe meine neu hochgeladene Datei von Herber wieder runtergeladen und getestet.
https://www.herber.de/bbs/user/135888.xlsm
Über das X geht es wie beschrieben zu bei mir mit Excel 2010 und 365 (entspricht weitgehend 2019).
Beim schließen über den Button kommt der beschriebene Fehler.
Anzeige
Musterdatei korrigiert. owT
20.03.2020 10:40:00
Klexy
https://www.herber.de/bbs/user/135888.xlsm
Über das X geht es wie beschrieben zu bei mir mit Excel 2010 und 365 (entspricht weitgehend 2019).
Beim schließen über den Button kommt der beschriebene Fehler.
Hier nochmal der ursprüngliche Post:
Ich habe ein seltsames Verhalten entdeckt, zu dem ich weder eine Erklärung noch eine Lösung finden kann.
Die angehängte Musterdatei (Inhalt und Code auf das Minimum reduziert) hat ein Makro Workbook_BeforeClose. Wenn ich die Datei schließe, kommt eine Nachfrage, ob ich was an der Datei geändert habe, was dann in die Versionierungshistorie im Blatt Anleitung geschrieben wird. Bei jedem neuen Tag wird oben in der Versionierungshistorie eine neue Zeile eingefügt. Am gleichen Tag wird die bestehende Datumszeile genommen.
Wenn ich die Datei mit dem X rechts oben schließe, läuft es ganz normal durch.
Wenn ich die Datei aber über den Befehl ActiveWindow.Close schließe, läuft das Workbook_BeforeClose-Makro nicht durch, sondern bleibt hängen, weil die Codezeile [...].Unprotect nicht ausgeführt wird.
Dabei ist es egal ob der Befehl direkt im Makro ist: Sheets(Blatt).Unprotect Password:=Passwort
Oder ob der Befehl in ein eigenes Makro ausgelagert wird: Call Blatt_auf(Blatt, Passwort)
Oder ob die komplette Eintragsprozedur ausgelagert wird: Application.Run "Eintrag_auslagern", Blatt, Passwort, Eintrag, LetztesUpComment
Die verschiedenen Optionen sind (auskommentiert) alle im Code der Musterdatei enthalten.
Anzeige
AW: Datei Schliessen und Workbook_Close
23.03.2020 13:40:00
fcs
Hallo Klexy,
ich hab jetzt etwas rumexperimentiert.
Aus einem mir unbekannten Grund wird die Anweisung zum Setzen/Aufheben des Blattschutzes zwar ausgeführt, wenn das Schliessen der Mappe durch ein Makro außerhalb von DieseArbeitsmappe gestartet wird, aber der Status des Blattes wird dabei nicht nicht geändert. Beim Eintragen von Werten in Zellen kommt dann ein Fehler.
https://www.herber.de/bbs/user/136041.xlsm
Ich hab jetzt unter DieseArbeitsmappe das zusätzliche Makro "WorkbookClose" eingefügt.
Dieses Makro wird jetzt von dem Makro gestartet das dem Button zugewiesen ist.
Als zusätzliche Änderung hab ich "ActiveWorkbook" in den Makros durch "ThisWorkbook" ersetzt.
So sind die Referenzen zum Tabellenblatt noch eindeutiger.
Unter "DieseArbeitsmappe" hab ich die System-Variable "Me" verwendet, die hier für die Arbeitsmappe steht.
Im Makro "Eintrag_auslagern" hast du einmal das Kennwort "Test" im Code stehen, statt der Variablen "Passwort". Das hab ich korrigiert.
Zur besseren Übersicht im Code hab ich jetzt einige With ... End With Konstrukte eingebaut.
Das Kennwort für den Blattschutz ist zur Zeit "". Es gibt also kein Kennwort.
Wenn du es ändern willst, dann musst erst den Blattschutz aufheben und für das Blatt manuell mit Kennwort setzen. Anschliessend den Wert der Variablen "Passwort" im Code ändern und die Datei speichern.
LG
Franz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige