Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

MsgBox automatisch mit Enter bestätigen

Forumthread: MsgBox automatisch mit Enter bestätigen

MsgBox automatisch mit Enter bestätigen
16.04.2016 22:12:49
Patrick
Guten Abend Allerseits,
Gerne würde ich um Eure Hilfe für folgende Problemstellung bitten.
Und zwar habe ich ein Makro, der mittels "Application.Run()" andere Makros nacheinander durchführt. Nach jedem Makro erscheint eine MsgBox, welche mit Ok bestätigt werden muss, damit der nachfolgende Makro durchgeführt wird.
Gibt es einen Befehl/Code, der automatisch die MsgBox mit Ok bzw. Enter bestätigt damit der nachfolgende Makro durchgeführt wird?
Vielen Dank und Beste Grüsse
Patrick

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MsgBox automatisch mit Enter bestätigen
17.04.2016 08:54:20
Hajo_Zi
Hallo Patrick,
Option Explicit
Sub MsgZeit()
'   Blendet eine Msgbox nach 10 Sekunden automatisch wieder aus
'   von K.Rola
'   kein Verweis notwendig
Const bytZeit As Byte = 10
Dim objWSH As Object, intMSG As Integer
Set objWSH = CreateObject("WScript.Shell")
intMSG = objWSH.Popup("Ich bin in " & bytZeit & " Sekunden verschwunden!" & Space(10), _
bytZeit, "gebe bekannt...", vbOKCancel + vbQuestion)
Set objWSH = Nothing
End Sub

Anzeige
AW: MsgBox automatisch mit Enter bestätigen
17.04.2016 18:45:47
Patrick
Hallo Hajo,
Danke für deinen Input! Leider funktioniert es noch nicht ganz wie gewollt, ich versuche meine Problemstellung genauer zu formulieren:
Mein Code sieht folgendermassen aus:
Sub update_all_data
Application.Run "update fundamentals"
Application.Run "update prices"
Application.Run "update keystats"
MsgBox "Update All Data Complete!"
End Sub
Man kann entweder alle updates einzeln ausführen oder mittels dem obenstehenden Makro alle Updates auf einmal durchführen.
Nach jedem der einzelnen Updates erscheint eine MsgBox ("Update fundamentals complete", "Update prices complete" etc...). Wenn ich den obenstehenden Makro durchführe, sollten alle MsgBox der einzelnen Makros automatisch bestätigt werden. Dachte man könnte zwischen den einzelnen "Application Run" ein Code einsetzen um die MsgBox automatisch zu bestätigen und der Makro weiterläuft...
Ist dies möglich?
Beste Grüsse
Patrick

Anzeige
AW: MsgBox automatisch mit Enter bestätigen
17.04.2016 19:08:39
Hajo_Zi
Hallo Patrick,
Gut es scheint mir so Du hast meinen Vorschlag nicht getestet. Ich kann damit Leben.
Ich bin dann raus.
Gruß Hajo

AW: MsgBox automatisch mit Enter bestätigen
17.04.2016 19:28:30
Daniel
Hi
mache es so:

Option Explicit
Public MeldungUnterdrücken As Boolean
Sub update_all_data()
MeldungUnterdrücken = True
Application.Run "update fundamentals"
Application.Run "update prices"
Application.Run "update keystats"
MeldungUnterdrücken = False
MsgBox "Update All Data Complete!"
End Sub
in dein Einzelmakros kommt dann am Schluss vor die Messagebox folgende IF-Bedingung:
if Not MeldungUnterdrücken Then MsgBox "Makro Complete"
über die projektweit gültige Variable "MeldungUnterdrücken" erkennen die Einzelmakros, ob sie einzeln vom Anwender oder vom Makro "update_all_data" aufgerufen wurden und entsprechend wird die Messagebox angezeigt oder nicht.
Gruß Daniel

Anzeige
AW: MsgBox automatisch mit Enter bestätigen
17.04.2016 19:53:52
Patrick
Hallo Hajo und Daniel,
@Hajo, ich habe dein Makro schon versucht bei mir einzuarbeiten, aber es liegt weniger an deinem Code als an mein beschränktes VBA knowhow, dass es nicht geklappt hat, entschuldige dafür!
@Daniel, danke für deinen Input, funktioniert wunderbar!
Danke für Eure Aufmerksamkeit und Beste Grüsse
Patrick
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

MsgBox automatisch mit Enter bestätigen in VBA


Schritt-für-Schritt-Anleitung

Um eine MsgBox in VBA automatisch mit Enter zu bestätigen, kannst Du die folgende Schritt-für-Schritt-Anleitung nutzen:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Rechtsklicke auf "VBAProject (deine_datei.xlsx)" und wähle "Einfügen" > "Modul".

  3. Kopiere und füge den folgenden Code ein:

    Option Explicit
    Public MeldungUnterdrücken As Boolean
    
    Sub update_all_data()
       MeldungUnterdrücken = True
       Application.Run "update fundamentals"
       Application.Run "update prices"
       Application.Run "update keystats"
       MeldungUnterdrücken = False
       MsgBox "Update All Data Complete!"
    End Sub
    
    ' Beispiel für eine Einzel-Update-Makro
    Sub update_fundamentals()
       ' Deine Logik hier
       If Not MeldungUnterdrücken Then MsgBox "Update fundamentals complete"
    End Sub
  4. Testen: Führe das Makro update_all_data aus, um die Funktionalität zu testen.


Häufige Fehler und Lösungen

  • Fehler: MsgBox wird angezeigt, obwohl MeldungUnterdrücken aktiv ist

    • Lösung: Stelle sicher, dass der IF-Befehl in Deinen Einzelmakros korrekt platziert ist.
  • Fehler: Kein Feedback vom Makro

    • Lösung: Überprüfe, ob die Variable MeldungUnterdrücken in allen relevanten Makros korrekt verwendet wird.

Alternative Methoden

Anstatt MsgBoxen zu verwenden, kannst Du auch Debug.Print verwenden, um Informationen in das Direktfenster zu schreiben. Dies vermeidet die Einschränkung durch Dialogfenster und sorgt für einen flüssigeren Ablauf.

Beispielsweise:

Debug.Print "Update fundamentals complete"

Praktische Beispiele

Hier sind einige praktische Beispiele, die zeigen, wie Du die Automatisierung von MsgBoxen umsetzen kannst:

  1. Einzelnes Update mit Rückmeldung:

    Sub update_prices()
       ' Deine Logik hier
       If Not MeldungUnterdrücken Then MsgBox "Update prices complete"
    End Sub
  2. Automatische Bestätigung von MsgBoxen:

    Sub MsgZeit()
       Const bytZeit As Byte = 10
       Dim objWSH As Object, intMSG As Integer
       Set objWSH = CreateObject("WScript.Shell")
       intMSG = objWSH.Popup("Ich bin in " & bytZeit & " Sekunden verschwunden!", _
       bytZeit, "gebe bekannt...", vbOKCancel + vbQuestion)
       Set objWSH = Nothing
    End Sub

Tipps für Profis

  • Verwende globale Variablen: Mit globalen Variablen wie MeldungUnterdrücken kannst Du den Status der MsgBox-Bestätigung projektweit steuern.
  • Modularisiere Deinen Code: Halte Deine Makros klein und modular, um die Wartung und Lesbarkeit zu verbessern.
  • Dokumentiere Deinen Code: Verwende Kommentare, um den Zweck und die Funktionsweise Deiner Makros klar zu machen.

FAQ: Häufige Fragen

1. Wie kann ich mehrere MsgBoxen in einem Makro umgehen?
Indem Du die oben beschriebenen Techniken mit der MeldungUnterdrücken-Variable anwendest.

2. Funktioniert das auch in Excel 365?
Ja, diese Methoden sind in den meisten Excel-Versionen, einschließlich Excel 365, anwendbar.

3. Was ist der Vorteil der Verwendung von Debug.Print?
Debug.Print ermöglicht es Dir, Informationen ohne Unterbrechungen durch MsgBoxen zu überprüfen, was die Effizienz Deiner Makros erhöht.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige