Microsoft Excel

Herbers Excel/VBA-Archiv

Ausgeblendete Arbeitsmappe vor Beenden speichern

Betrifft: Ausgeblendete Arbeitsmappe vor Beenden speichern von: David
Geschrieben am: 12.08.2014 13:16:41

Hallo,

ich möchte die ausgeblendete Arbeitsmappe personal.xlsb automatisch vor dem Beenden Speichern.

wenn ich den folgende Code in 'DieseArbeitsmappe' einer eingeblendeten Arbeitsmappe schreibe, klappt das.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.Workbooks("personal.xlsb").Save
End Sub
Aber der Code wird nicht ausgeführt, wenn die Arbeitsmappe ausgeblendet ist.

Ich kann natürlich den obigen code in eine andere Arbeitsmappe schreiben, allerdings möchte ich, dass das bei jeder Arbeitsmappe passiert.

Irgendwelche Ideen, wie ich das machen kann??

  

Betrifft: AW: Ausgeblendete Arbeitsmappe vor Beenden speichern von: Daniel
Geschrieben am: 12.08.2014 13:37:31

Hi

der Code steht ja im Modul "DieseArbeitsmappe".
in diesem Modul kannst du die betroffene Mappe immer mit dem Schlüsselwort ME referenzieren und bist damit unabhängig vom Dateinamen:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Me.Save
End Sub
das sollte eigentlich auch bei einer ausgeblendeten Mappe funktionieren.
Gruß Daniel


  

Betrifft: AW: Ausgeblendete Arbeitsmappe vor Beenden speichern von: David
Geschrieben am: 12.08.2014 14:07:28

Danke. Das ME ist sicher etwas kürzer/schöner.
Aber es löst mein Problem noch nicht, da die Routine 'Workbook_BeforeClose' gar nicht ausgeführt wird, wenn die Arbeitsmappe ausgeblendet ist.
Bei eingeblendeter Arbeitsmappe funktioniert es. (Beide, das ME und die konkrete Ansprache Application.Workbooks("personal.xlsb") )


  

Betrifft: AW: Ausgeblendete Arbeitsmappe vor Beenden speichern von: Daniel
Geschrieben am: 12.08.2014 14:16:11

Hi
wie blendest du denn aus?
Mit Windows(Me.Name).Visible = False im WorkbookOpen-Event?
ich mach das so und dann wird auch bei dieser Datei das BeforeClose-Event ausgeführt, auch wenn sie ausgeblendet ist.

Check mal, ob du dich nicht zufälligerweise im Entwurfsmodus befindest (ggf Menüleiste "Entwicklertools aktivieren"),
und ob die Events auch aktiv sind.
Hierzu gibts du im Direktfenster den Befehl ein: ?Application.EnableEvents und wenn das Ergebnis "FALSCH" ist, dann aktivierst du die Events mit Application.EnabelEvents = True ein.

gruß Daniel


  

Betrifft: AW: Ausgeblendete Arbeitsmappe vor Beenden speichern von: David
Geschrieben am: 12.08.2014 14:43:48

Bei mir sind EnableEvents eingeschaltet.

Normalerweise blende ich über das Excel-Fenster ein/aus. Ansicht -> Fenster -> Ausblenden/Einblenden.
Das ist aber das gleiche wie das von dir angesprochene .Visible
Die folgende Zeile returns "True" wenn das eingeblendet und "False" wenn ausgeblendet

Debug.Print Windows(Application.Workbooks("personal.xlsb").name).Visible
Das BeforeClose-Event wird bei mir jedoch nur ausgeführt, wenn .Visible = True


  

Betrifft: AW: Ausgeblendete Arbeitsmappe vor Beenden speichern von: Robert
Geschrieben am: 12.08.2014 14:48:21

Hallo David,

Blöde Frage, aber das Workbook_BeforeClose Event das du ausführen willst befindet sich schon in genau dieser personal.xlsb unter "DieseArbeitsmappe"?

Viele Grüße
Robert


  

Betrifft: AW: Ausgeblendete Arbeitsmappe vor Beenden speichern von: David
Geschrieben am: 12.08.2014 15:32:03

Ja, es befindet sich in der richtigen Aarbeitsmappe, d.h. in der Projektauflistung unter personal (personal.xlsb) | Microsoft Excel Objekte | DieseArbeitsmappe.

FYI, diese Arbeitsmappe (personal.xlsb) ist eine "persönliche Arbeitsmappe", keine 'normale' arbeitsmappe. Die 'normalen' Arbeitsmappen stehen in der Projektauflistung unter VBAProjekt (Dateiname.xlsm)

Blöde Frage?? Bestimmt nicht. Meistens liegt es doch an solchen Kleinigkeiten, wenn etwas nicht klappt.


  

Betrifft: AW: Ausgeblendete Arbeitsmappe vor Beenden speichern von: Robert
Geschrieben am: 12.08.2014 15:40:19

Hm... da fällt mir nichts dazu ein, außer vllt ein Workaround...
Wie wäre es mit Speichern der Mappe im Workbook_DeActivate Event?
Damit wird die Mappe gespeichert, wenn du von ihr in eine Andere Mappe wechselst.

Ansonsten:
Bitte beachte, dass .EnableEvents immer für die gesamte Application gilt.
Das bedeutet, dass möglicherweise die Events in einer anderen Arbeitsmappe/Makro deaktiviert werden.

Viele Grüße
Robert


  

Betrifft: AW: Ausgeblendete Arbeitsmappe vor Beenden speichern von: Tino
Geschrieben am: 12.08.2014 16:28:53

Hallo,
versuch es mal mit dem Event Auto_Close in einem normalen Modul.

kommt als Code in Modul1 in die PERSONAL.XLSB

Option Explicit 
 
Sub Auto_Close() 
    ThisWorkbook.Save 
End Sub 
Gruß Tino


  

Betrifft: AW: Ausgeblendete Arbeitsmappe vor Beenden speichern von: David
Geschrieben am: 13.08.2014 12:32:39

Tino,

das Auto_Close Event funktioniert! Auch bei ausgeblendeter Arbeitsmappe. Vielen Dank.


 

Beiträge aus den Excel-Beispielen zum Thema "Ausgeblendete Arbeitsmappe vor Beenden speichern"