Excel: MsgBox nach 'OK' schließen

Salute, ich schon wieder…

Ich habe eine MsgBox-Abfrage, die nach Druck auf „OK“ ein Makro startet. Dummerweise schließt sich die Box nicht, bevor das Makro läuft.

Bis zum Ende des Makro-Prozesses bleibt die MsgBox also sichtbar. Läßt sich das nicht unterbinden? Kann man der MsgBox nicht sagen, daß sie zuerst geschlossen werden soll, dann erst soll das Makro weiterlaufen?

Danke und eine erholsame Nacht wünscht
-Rob.

Hallo,

vielleicht ist es keine „echte“ Messagebox, sondern eine Userform, die so aussieht wie eine Msgbox.

Wie wird sie aufgerufen (Code)?

Gruß
Fluppe

Salu Fluppe,

vielleicht ist es keine „echte“ Messagebox, sondern eine
Userform, die so aussieht wie eine Msgbox.

Wie wird sie aufgerufen (Code)?

Abrage = MsgBox("Makro wirklich ausführen?", vbOKCancel + vbExclamation, "Start bestätigen")
If Abfrage = 2 Then Exit Sub

Application.ScreenUpdating = False 'Aber schon davor sollte die MsgBox ja schließen

Nach Ausführen des sich anschließenden Scripts schließt sich dat Dingen ja immerhin. Warum aber nicht gleich?

Danke & Grüße :o)
-Rob.

Ich habe eine MsgBox-Abfrage, die nach Druck auf „OK“ ein
Makro startet. Dummerweise schließt sich die Box nicht, bevor
das Makro läuft.

Bis zum Ende des Makro-Prozesses bleibt die MsgBox also
sichtbar. Läßt sich das nicht unterbinden? Kann man der MsgBox
nicht sagen, daß sie zuerst geschlossen werden soll, dann erst
soll das Makro weiterlaufen?

Hallo Rob,

schau dir nachfolgenden Code an, die For Schleife ist nur zur Demo daß das Makro arbeitet während die Msgbox schon weg ist.

Die eine Zeile kannst du auch so schreiben:

intMSG = objWSH.Popup(„Makro wirklich ausführen?“, 10 , _
„Start bestätigen“, vbOKCancel + vbQuestion)

Die 10 bzw. kannst da natürlich auch eine Variable reinschreiben steht für die Anzahl Sekunden die die MsgBox von sich aus sichtbar bleibt.
Also müßte sie theoretisch nach 10 sec von selbst wieder verschwinden sofern daß gewünscht wird.

Bei mir, XL2000 auf WinXP klappt das nur mit 1, also einer Sekunde, benutze ich 2, 3 oder höher, schließt sich die MsgBox nicht selbst.
Das kann bei anderen PCs mit anderen Versionen anders sein.

Gruß
Reinhard

Option Explicit

Sub MyMsgBox()
Dim objWSH As Object, intMSG As Integer, N As Long
Set objWSH = CreateObject("WScript.Shell")
intMSG = objWSH.Popup("Makro wirklich ausführen?", 10 , \_
 "Start bestätigen", vbOKCancel + vbQuestion)
Set objWSH = Nothing
If intMSG 1 Then Exit Sub
For N = 1 To 5000
 Range("A1") = Range("A1") + 100
Next N
End Sub

Hallo, Rob.

Ist jetzt wirlich nur ein plumper, ungetesteter Versuch:

Abrage = MsgBox("Makro wirklich ausführen?", vbOKCancel +
vbExclamation, "Start bestätigen")
If Abfrage = 2 Then Exit Sub
**Application.ScreenUpdating = True**
Application.ScreenUpdating = False

Kannst Du ja einfach 'mal ausprobieren.

VG
Carsten

Haut nicht hin
Salu Reinhard,

Die eine Zeile kannst du auch so schreiben:

intMSG = objWSH.Popup(„Makro wirklich ausführen?“, 10 , _
„Start bestätigen“, vbOKCancel + vbQuestion)

Die 10 bzw. kannst da natürlich auch eine Variable
reinschreiben steht für die Anzahl Sekunden die die MsgBox von
sich aus sichtbar bleibt.
Also müßte sie theoretisch nach 10 sec von selbst wieder
verschwinden sofern daß gewünscht wird.

Bei mir, XL2000 auf WinXP klappt das nur mit 1, also einer
Sekunde, benutze ich 2, 3 oder höher, schließt sich die MsgBox
nicht selbst.
Das kann bei anderen PCs mit anderen Versionen anders sein.

Tja, bei mir leider klapptz nicht :o( Aber danke für die Idee …

Viele Grüße
-Rob.

Tja, bei mir leider klapptz nicht :o( Aber danke für die Idee

Hallo Rob,

WAS klappt nicht?

Deine Anfrage nach Verschwinden der MsgBox nach Klick auf OK ist doch erfüllt.

Gruß
Reinhard

Salve Reinhard,

WAS klappt nicht?

Deine Anfrage nach Verschwinden der MsgBox nach Klick auf OK
ist doch erfüllt.

Leider nein, auch das Popup-Objekt bleibt offen/sichtbar. Was mache ich falsch?

Bestliche Grüße
-Rob.

Deine Anfrage nach Verschwinden der MsgBox nach Klick auf OK
ist doch erfüllt.

Leider nein, auch das Popup-Objekt bleibt offen/sichtbar. Was
mache ich falsch?

Hallo Rob,

k.A., hier klappt das bei mir mit XL 2000:

http://www.file-upload.net/download-3448365/kwRob.xl…

Wie gesagt, die 10 im Code steht für die zeit in Sekunden nach dem die MsgBox von alleine entfleuchen soll.
Dies klappt bei mir nicht und auch bei anderen nicht so wie ich das einer Beitragsfolge entnahm an der auch Thomas Ramel teilnahm.

Daß es mit dem Selbstverschwinden nicht klappt war irgendwie das was ich als Quintessenz entnahm abhängig vom Betriebssystem, der Excelversion, den SPs und wer weiss was.
Und nicht am Code sonst hätte Thomas den Codefehler gesehen…

Aber du willst ja gar nicht daß die MSgBox von alleine geht nach Zeit.
Sondern daß sie nach „Ok“ weg ist bevor der Code weiterläuft.
Und das macht sie bei mir, siehe Beispielmappe.

Wenn auch die Beispielmappe bei dir nicht klappt weiß ich auch nix mehr außer halt eine UF anstelle einer MsgBox nehmen wie schon gesagt.

Odere probiere anstatt der 10 mal nix, also Komma nach Komma, oder 1, 2, 3…

Gruß
Reinhard

Korrektur,
Hallo Rob,

Schreibfehler, mit
Dies klappt bei mir nicht und auch bei anderen nicht
meinte ich
Dies klappt bei mir nicht und auch bei anderen nicht aber bei einigen anderen klappte es.

Das ist ja grad was sehr sehr darauf zeigt daß es was mit BS und Excelversion zu tun haben muß, oder sonstigem was an den verschiedenen PCs unterschiedlich ist.

Gruß
Reinhard

Salve Reinhard,

Schreibfehler, mit
Dies klappt bei mir nicht und auch bei anderen nicht
meinte ich
Dies klappt bei mir nicht und auch bei anderen nicht aber bei
einigen anderen klappte es
.

Das ist ja grad was sehr sehr darauf zeigt daß es was mit BS
und Excelversion zu tun haben muß, oder sonstigem was an den
verschiedenen PCs unterschiedlich ist.

Ja, das hatte ich auch so verstanden. Ich werde es nachher mal mit einer anderen Version testen. Schon komisch, daß sich so etwas über verschiedene Versionen ändert.

Hab einen schönen Sonntag :o)
-Rob.