Workbook close abfangen

Dieses Thema im Forum "Office-Programme" wurde erstellt von wer_pa, 18. August 2004.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. wer_pa

    wer_pa Byte

    Registriert seit:
    16. Juli 2004
    Beiträge:
    48
    Ein Hallo an alle!

    In einer erstellten Vorlage sollen Daten von einem User eingetragen werden.

    Bevor er das mit seinen Dateneinträgen gefüllte Workbook schließt (Dto: speichern, speichern unter) erfolgt mittels VBA Code vor dem Schließen eine Abfrage, ob er alle Datenfelder mit Einträgen gefüllt hat. Wenn nicht, soll der von ihm vorher ausgelöste Excel Prozess, "Datei Speichern", "Datei Speichern unter", "Datei Schließen" (ggf. auch durch Betätigung des oberen rechten "X" = Excel "Schließen Buttons") abgebrochen werden, um dem User die Möglichkeit zu geben, die fehlenden Daten in dem aktiven Sheet direkt zu ergänzen.

    Leider gelingt es mir nicht die ausgelösten o. g. Excel Prozesse zu stoppen, um auf dem aktiven Sheet, zwecks Ergänzung der Daten, zu verbleiben. Soll heissen, das Workbook wird von Excel geschlossen, bzw. es erfolgt die Eingabeauffor-derung ob das Workbook mit oder ohne Speicherung geschlossen, oder der Vorgang abgebrochen werden soll, welche ich unterdrücken möchte.

    Der Versuch mittels Application.SendKeys auf die Button der Eingabeforderung, zum Beispiel auf "Abbrechen" Einfluss zu nehmen, oder ggf. die Simulation der ESC Taste um dem Excel Prozess abzubrechen, scheitern in der Makro Programm-ausführung.


    Die Steuerung der Abfrage erfolgt bei mir mittels Makro im VBA Projekt "Diese Arbeitsmappe" mit der Funktion:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)

    oder ggf. alternativ mit:

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

    Hiernach folgen diverse Zellenbereichsabfragen ob die Dateneinträge vorhanden sind, wenn nicht, dann erfolgt ein Goto zu der Meldung_2
    '--------------------------------------------------------------------

    Meldung_2:
    F6 = MsgBox("Bitte ergänzen Sie ihre Ausstellerdaten, da diese nicht vollständig
    eingetragen sind", vbOKOnly + vbQuestion, _"Ausstellerdaten unvollständig")

    If F6 = vbOK Then [Zelle_fehlender_Eintrag].select

    Application.DisplayAlerts = False

    Exit Sub

    Dank vorab

    Wer_pa
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen