Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Workbook.SaveAs in Workbook_BeforeSave geht nicht

Forumthread: Workbook.SaveAs in Workbook_BeforeSave geht nicht

Workbook.SaveAs in Workbook_BeforeSave geht nicht
Fllorian


Option Explicit
Dim bln As Boolean
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'
' Sinn dieses Codes:
'
' Vor dem Speichern soll ein Tabellenblatt eingeblendet werden, das darauf hinweist,
' dass die Makros ausgeschaltet sind. Außerdem werden alle anderen Tabellenblätter
' ausgeblendet. Nach dem Speichern wird der Vorgang rückgängig gemacht. Damit kann
' der Nutzer dann nach jedem Speichern weiterarbeiten, aber nach jedem Öffnen kann
' er nur dann weiterarbeiten, wenn er zuvor die Makros aktiviert hat.
' Den Codeteil für das Ein- und Ausblenden der Tabellenblätter habe ich der Übersicht-
' lichkeit halber durch die beiden Range("A1")-Zeilen ersetzt.
'
' Code nach Ideen und mit Hilfe von Hans und von Hajo_Zi
'
  Application.DisplayAlerts = False
  If bln = False Then
    Cancel = True
    bln = True
    Application.ScreenUpdating = False
    Range("A1") = "Text"
    ThisWorkbook.Save
'                 ,
'                /|\
'                  \
'                   \
'                    ~~~~~~~~~~~~~.
'                                  \
'                                  |
'   Warum funktioniert hier nur ThisWorkbook.Save, nicht aber
'   ThisWorkbook.SaveAs Environ("Userprofile") & "\Datei.xls"?
'
    ThisWorkbook.Saved = True
    Range("A1").ClearContents
    bln = False
    Application.ScreenUpdating = False
  End If
  Application.DisplayAlerts = True
End Sub
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Workbook.SaveAs in Workbook_BeforeSave geht nicht
Matthias
Hallo Florian,
innerhalb eines Ereignisses eine Methode aufzurufen, die das gleiche Ereignis erneut aufruft, führt zu Konflikten.
Schalte vor dem Save-Befehl die Events ab:
Application.EnableEvents = False
und danach wieder ein:
Application.EnableEvents = True
Gruß Matthias
Anzeige
AW: Sorry, falsche Antwort...
Matthias
...Du hast dieses Problem ja schon mit der globalen Vaiablen bln gelöst.
Gruß Matthias
Nope! Das war's wohl. Jetzt läuft's...
Florian
Danke und Gruß,
Florian
AW: Nope! Das war's wohl. Jetzt läuft's...
09.04.2004 22:32:19
Matthias
Hallo Florian,
ich dachte schon, eine nicht so elegante Lösung, hier mit einer globalen Variable zu arbeiten statt mit EnableEvents.
Aber dass es dein (von mir erst später erkanntes Problem) löst, dachte ich nicht...
Naja, um so besser!
Gruß und schöne Feiertage,
Matthias
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige