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?
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?
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 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
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 …
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…
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.
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.