Avatar von Joachim Grimm
  • Joachim Grimm

4 Beiträge seit 03.04.2002

Unveränderte Excel-Tabelle: Speichern-Dialog verhindern

Das oben genannte Verhalten lässt sich mit VBA (Excel 2010) korrigieren...

Dazu ist zunächst eine globale Variable ('Modul') nötig: z.B.: "gblnWorkbookIsSaved". True soll 'ist gespeichert' = keine Nachfrage bedeuten; false = nicht gespeichert = Speichern-Nachfrage.

Über "Workbook_Open" ('DieseArbeitsmappe') wird die Variable mit True initialisiert.
In "Workbook_SheetChange" wird "gblnWorkbookIsSaved = false" gesetzt (1).
In "Workbook_BeforeClose" wird die .Saved-Eigenschaft des Workbooks auf "gblnWorkbookIsSaved" gesetzt. Damit entspricht die Eigenschaft dem Zustand der globalen Variablen (die nach der Initialisierung nur durch ein "Workbook_SheetChange"-Ereignis verändert wurde).
Ist "gblnWorkbookIsSaved" hier (noch immer) "true" erfolgt keine 'Speichern-Aufforderung' seitens Excel; anderenfalls schon.

Vervollständigen kann man das Ganze in einem "Workbook_AfterSave", in dem man bei "Success" die "gblnWorkbookIsSaved" - Variable wieder auf true setzt; dies verhindert nach manuellem Speichern eine 'Speichen-Aufforderung', wenn das Workbook bis zum Schließen nicht mehr verändert wurde.

(1): In "Workbook_SheetChange" kann man ggf. Sheets von der Prüfung ausnehmen; und/oder über "Worksheet_Change" (des jeweiligen 'Sheets') Bereiche überprüfen, in denen Änderungen zu einem "gblnWorkbookIsSaved = false" und damit zu einer 'Speichern-Nachfrage' führen sollen.

In diesem Sinne.

Bewerten
- +
Anzeige