Discussion:
VBA-Problem: DisplayAlerts rauben einem den letzten Nerv
(zu alt für eine Antwort)
Dieter Strzoda
2005-12-04 21:36:25 UTC
Permalink
Hallo Leute,

habe in einer Excel-Anwendung (2003SP3) mit ca. 18 Tabellen auf einem
Hauptmenü eine Beenden-Schaltfläche. Klickt man da drauf, wird per
Meldungsfenster abgefragt, ob man evt. Änderungen abspeichern möchte. Wenn
nein, soll die gesamte Anwendung inkl. Excel ohne Rückfragerei geschlossen
werden. Mir gelingt es einfach nicht, "stabil und dauerhaft" die
DisplayAlerts zu unterdrücken. Mal gehtŽs und mal nicht. Was ist denn das ?

hier ein Auszug der nervigen Codestelle:
......
Case vbNo
'Achtung: Die nicht gespeicherte Anwendung ohne die nervenden
DisplayAlerts zu
'verlassen (bei Änderungen), scheint problematisch zu sein

Application.DisplayAlerts = False
'Der nächste Befehl ist laut Excel-Hilfe eigentlich nicht mehr
'notwendig, aber doppelt gemoppelt hält besser - dachte ich
ThisWorkbook.Saved = True
Application.Quit
Application.DisplayAlerts = True
Exit Sub
.....

Habt Ihr eine Idee ?
Grüsse,
Dieter
Peter Lederer
2005-12-04 22:35:19 UTC
Permalink
Post by Dieter Strzoda
Application.DisplayAlerts = False
'Der nächste Befehl ist laut Excel-Hilfe eigentlich nicht mehr
'notwendig, aber doppelt gemoppelt hält besser - dachte ich
ThisWorkbook.Saved = True
Weglassen
Post by Dieter Strzoda
Application.Quit
O.K.
Post by Dieter Strzoda
Application.DisplayAlerts = True
Wer soll den Befehl noch abarbeiten, wenn die Anwedung bereits geschlossen
wurde? ;-)

In dieser Reihenfolge funktioniert es zumindest in einer Anwendung von mir
mit folgendem Code unter Excel XP:

AUSWAHL = MsgBox("Soll Excel geschlossen werden", vbYesNo)
If AUSWAHL = 6 Then
Application.Quit
Else
Workbooks.Add
Workbooks("Preisberechnung.xls").Close
End If
--
Grüße
Peter
WIN XP Prof. SP2, Excel 2002
Dieter Strzoda
2005-12-05 10:07:32 UTC
Permalink
Hallo Peter,
danke für Deine Mühe, aber irgendwie verstehe ich das nicht.
Es sieht so aus, als ob Du vorschlägst, nur "Application.Quit" zu benutzen,
aber dann kommen doch die DisplayAlerts und die will ich nicht.

Deine Anmerkung "Wer soll den Befehl noch abarbeiten, wenn die Anwendung
bereits geschlossen wurde?" ist logisch, aber trotzdem nicht zutreffend.
Wenn Du nach dem "Application.Quit" noch z. B. eine Ž msgbox "Ich komme doch
noch mal"Ž los lässt, staunt man, dass diese Meldung noch angezeigt wird.

Grüsse,
Dieter
stefan onken
2005-12-05 10:44:47 UTC
Permalink
Hallo Dieter,
könnte es sein, dass du "in Gedanken" gelegentlich die Datei über das
Schliessen-X und nicht über deine Schaltfläche beendest?
Ansonsten habe ich festgestellt, dass DisplayAlerts=False bzw
Saved=True nicht funktioniert, wenn man ein Steuerelement auf einer
Tabelle neu anlegt.
Versuche mal nachzuvollziehen, welche Aktionen du gemacht hast, wodurch
das Unterdrücken der Meldung ausgehebelt wurde.

Gruß
stefan
Post by Dieter Strzoda
Hallo Leute,
habe in einer Excel-Anwendung (2003SP3) mit ca. 18 Tabellen auf einem
Hauptmenü eine Beenden-Schaltfläche. Klickt man da drauf, wird per
Meldungsfenster abgefragt, ob man evt. Änderungen abspeichern möchte. Wenn
nein, soll die gesamte Anwendung inkl. Excel ohne Rückfragerei geschlossen
werden. Mir gelingt es einfach nicht, "stabil und dauerhaft" die
DisplayAlerts zu unterdrücken. Mal geht´s und mal nicht. Was ist denn das ?
......
Case vbNo
'Achtung: Die nicht gespeicherte Anwendung ohne die nervenden
DisplayAlerts zu
'verlassen (bei Änderungen), scheint problematisch zu sein
Application.DisplayAlerts = False
'Der nächste Befehl ist laut Excel-Hilfe eigentlich nicht mehr
'notwendig, aber doppelt gemoppelt hält besser - dachte ich
ThisWorkbook.Saved = True
Application.Quit
Application.DisplayAlerts = True
Exit Sub
.....
Habt Ihr eine Idee ?
Grüsse,
Dieter
Dieter Strzoda
2005-12-05 12:59:09 UTC
Permalink
Hallo Stefan,
danke für Deine Antwort - meine Gedanken sind zwar nach dem ganzen Mist
schon etwas angeschlagen, aber über Schliessen-X gehe ich nicht raus. Ich
verwende nur Steuerelemente aus der Steuerelement-Toolbox. Haben diese
Dinger Probleme bei den DisplayAlerts oder muss man irgendwie eine besondere
Eigenschaft einstellen ? Das Nachvollziehen der Umstände habŽ ich schon
viele Male versucht. Deine Aussage "Ansonsten habe ich festgestellt, dass
DisplayAlerts=False bzw. Saved=True nicht funktioniert, wenn man ein
Steuerelement auf einer Tabelle neu anlegt" habŽ ich noch nicht ganz
verstanden. Funktioniert es denn, wenn man die Anwendung nach Anlage der
Steuerelemente 1x abspeichert ?

Grüsse,
Dieter


"stefan onken" <***@web.de> schrieb im Newsbeitrag news:***@g44g2000cwa.googlegroups.com...
Hallo Dieter,
könnte es sein, dass du "in Gedanken" gelegentlich die Datei über das
Schliessen-X und nicht über deine Schaltfläche beendest?
Ansonsten habe ich festgestellt, dass DisplayAlerts=False bzw
Saved=True nicht funktioniert, wenn man ein Steuerelement auf einer
Tabelle neu anlegt.
Versuche mal nachzuvollziehen, welche Aktionen du gemacht hast, wodurch
das Unterdrücken der Meldung ausgehebelt wurde.

Gruß
stefan
Post by Dieter Strzoda
Hallo Leute,
habe in einer Excel-Anwendung (2003SP3) mit ca. 18 Tabellen auf einem
Hauptmenü eine Beenden-Schaltfläche. Klickt man da drauf, wird per
Meldungsfenster abgefragt, ob man evt. Änderungen abspeichern möchte. Wenn
nein, soll die gesamte Anwendung inkl. Excel ohne Rückfragerei geschlossen
werden. Mir gelingt es einfach nicht, "stabil und dauerhaft" die
DisplayAlerts zu unterdrücken. Mal gehtŽs und mal nicht. Was ist denn das ?
......
Case vbNo
'Achtung: Die nicht gespeicherte Anwendung ohne die nervenden
DisplayAlerts zu
'verlassen (bei Änderungen), scheint problematisch zu sein
Application.DisplayAlerts = False
'Der nächste Befehl ist laut Excel-Hilfe eigentlich nicht mehr
'notwendig, aber doppelt gemoppelt hält besser - dachte ich
ThisWorkbook.Saved = True
Application.Quit
Application.DisplayAlerts = True
Exit Sub
.....
Habt Ihr eine Idee ?
Grüsse,
Dieter
stefan onken
2005-12-05 14:05:16 UTC
Permalink
Hallo Dieter,
ich hatte zum testen einen Commandbutton auf eine Tabelle angelegt, ins
Click-Event den Code

Application.DisplayAlerts = False
ThisWorkbook.Saved = True
Application.Quit

kopiert und gespeichert. Danach wurde bei mir die Datei nach Klick auf
den button jedesmal ohne Meldung und ohne speichern geschlossen, auch
nachdem ich ein UserForm erstellt, bedingte Formatierungen gesetzt
habe und dgl. Dann hatte ich einen OptionButton auf der Tabelle
erstellt und bekam nach Klick auf den CommandButton die "Sollen die
Änderungen gespeichert werden"-Meldung.
Wenn ich nach Erstellen des OptionButton speichere, kommt die Meldung
nach Anklicken des CommandButton nicht mehr.

Möglicherweise gibt es noch andere Konstellationen, die DisplayAlerts
aushebeln, ich weiss nur im Moment nicht, welche.

Gruß
stefan
Post by Dieter Strzoda
Hallo Stefan,
danke für Deine Antwort - meine Gedanken sind zwar nach dem ganzen Mist
schon etwas angeschlagen, aber über Schliessen-X gehe ich nicht raus. Ich
verwende nur Steuerelemente aus der Steuerelement-Toolbox. Haben diese
Dinger Probleme bei den DisplayAlerts oder muss man irgendwie eine besondere
Eigenschaft einstellen ? Das Nachvollziehen der Umstände hab´ ich schon
viele Male versucht. Deine Aussage "Ansonsten habe ich festgestellt, dass
DisplayAlerts=False bzw. Saved=True nicht funktioniert, wenn man ein
Steuerelement auf einer Tabelle neu anlegt" hab´ ich noch nicht ganz
verstanden. Funktioniert es denn, wenn man die Anwendung nach Anlage der
Steuerelemente 1x abspeichert ?
Grüsse,
Dieter
Hallo Dieter,
könnte es sein, dass du "in Gedanken" gelegentlich die Datei über das
Schliessen-X und nicht über deine Schaltfläche beendest?
Ansonsten habe ich festgestellt, dass DisplayAlerts=False bzw
Saved=True nicht funktioniert, wenn man ein Steuerelement auf einer
Tabelle neu anlegt.
Versuche mal nachzuvollziehen, welche Aktionen du gemacht hast, wodurch
das Unterdrücken der Meldung ausgehebelt wurde.
Gruß
stefan
Post by Dieter Strzoda
Hallo Leute,
habe in einer Excel-Anwendung (2003SP3) mit ca. 18 Tabellen auf einem
Hauptmenü eine Beenden-Schaltfläche. Klickt man da drauf, wird per
Meldungsfenster abgefragt, ob man evt. Änderungen abspeichern möchte. Wenn
nein, soll die gesamte Anwendung inkl. Excel ohne Rückfragerei geschlossen
werden. Mir gelingt es einfach nicht, "stabil und dauerhaft" die
DisplayAlerts zu unterdrücken. Mal geht´s und mal nicht. Was ist denn das
?
Post by Dieter Strzoda
......
Case vbNo
'Achtung: Die nicht gespeicherte Anwendung ohne die nervenden
DisplayAlerts zu
'verlassen (bei Änderungen), scheint problematisch zu sein
Application.DisplayAlerts = False
'Der nächste Befehl ist laut Excel-Hilfe eigentlich nicht mehr
'notwendig, aber doppelt gemoppelt hält besser - dachte ich
ThisWorkbook.Saved = True
Application.Quit
Application.DisplayAlerts = True
Exit Sub
.....
Habt Ihr eine Idee ?
Grüsse,
Dieter
Dieter Strzoda
2005-12-05 17:14:58 UTC
Permalink
Hallo Stefan,
danke für Deine Mühe !
Grüsse,
Dieter

Loading...