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

Forumthread: Wie MsgBox mit Ja/Nein und Zeitablauf

Wie MsgBox mit Ja/Nein und Zeitablauf
24.09.2020 19:47:53
Siegfried
Hallo alle Excel- VBA-Wissenden!
MsgBox, möchte „Ja“ und „Nein“ Abfrage, sollte aber bis zu einer zu vergebenden Wartezeit (4sek. z.B.) keine Auswahl getroffen worden sein, dann sollte selbständiger Start mit „JA“ ausgeführt werden.
Hätte schon einiges versucht bis jetzt aber nur „Ja/Nein“ oder Zeit – Einstellung gelungen.
Wäre und vor allem wie, eine Lösung meines Wunsches überhaupt möglich?
Gruß Siegfried
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wie MsgBox mit Ja/Nein und Zeitablauf
24.09.2020 22:33:14
Siegfried
Hallo ralf_b,
DANKE für die Rückmeldung, habe mir das heruntergeladen und den Abschnitt von Nepumuk in mein Makro kopiert, da ich dachte dies wäre eventuell die mehrfach verwendbare Lösung.
Nur in dem ich einen 64Bit Rechner habe will das Ding schon mal überhaupt nicht und wüsste auch nicht wie ich das anpassen sollte/müsste, siehe dazu Bild.
Gruß Siegfried
Userbild
Anzeige
AW: Wie MsgBox mit Ja/Nein und Zeitablauf
24.09.2020 22:48:55
ralf_b
auch dazu gibts reichlich infos im Netz. wobei diese 64bit Probleme von den meisten Leuten vermieden werden, indem sie sich auf ihre 64bit Windows Maschine eine 32bit Officeversion installieren.
die Anpassung sind tatsächlich meist nur ein Wort z.b. Declare PtrSafe Function .....
https://jkp-ads.com/Articles/apideclarations.asp
https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/declare-statement
Anzeige
AW: Wie MsgBox mit Ja/Nein und Zeitablauf
26.09.2020 10:56:48
Siegfried
Hallo ralf_b,
DANKE für deine Hilfestellung, es lag ja nur an der Definition "Declare PtrSafe Function ..
", verstand erst nur Bahnhof da ja alle WEB's in Englisch sind, mit 76 ja nicht so einfach...
Ja jetzt muss ich nur noch schauen wie ich das mit der Case-Steuerung am besten umsetzte, da fehlt mir nur noch der Durchblick etwas.
Gruß Siegfried
Anzeige
freut mich wenn ich helfen konnte. owt
26.09.2020 14:19:36
ralf_b
freut mich wenn ich helfen konnte. owt
26.09.2020 14:19:38
ralf_b
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

MsgBox mit Ja/Nein Abfrage und Zeitablauf in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine MsgBox mit einer Ja/Nein Abfrage und einem Zeitablauf in Excel VBA zu erstellen, folge diesen Schritten:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:

    • Klicke auf Einfügen > Modul.
  3. Füge den folgenden Code ein:

    Declare PtrSafe Function SetTimer Lib "user32" (ByVal hWnd As LongPtr, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As LongPtr) As LongPtr
    Declare PtrSafe Function KillTimer Lib "user32" (ByVal hWnd As LongPtr, ByVal uIDEvent As Long) As Long
    
    Dim TimerID As LongPtr
    
    Sub MsgBoxMitTimeout()
       TimerID = SetTimer(0, 0, 4000, AddressOf TimerProc)
       Dim Antwort As VbMsgBoxResult
       Antwort = MsgBox("Möchten Sie fortfahren?", vbYesNo + vbQuestion, "Bitte bestätigen")
    
       If Antwort = vbYes Then
           ' Aktion für Ja
           MsgBox "Du hast Ja gewählt."
       Else
           ' Aktion für Nein
           MsgBox "Du hast Nein gewählt."
       End If
    
       KillTimer 0, TimerID
    End Sub
    
    Sub TimerProc()
       ' Automatisches Wählen von Ja, wenn kein Benutzer reagiert
       MsgBox "Keine Auswahl getroffen. Standardwahl: Ja."
       KillTimer 0, TimerID
    End Sub
  4. Starte das Makro:

    • Drücke F5, um das Makro auszuführen.

Häufige Fehler und Lösungen

  • Problem: Die MsgBox wird nicht angezeigt.

    • Lösung: Überprüfe, ob das Makro korrekt eingefügt wurde und keine Fehler im Code sind.
  • Problem: Der Timer funktioniert nicht.

    • Lösung: Stelle sicher, dass die Declare-Anweisungen korrekt sind, insbesondere bei 64-Bit Excel. Eventuell musst Du die PtrSafe-Deklaration anpassen.

Alternative Methoden

Eine alternative Methode zur Implementierung einer Ja/Nein Abfrage mit einem Zeitlimit ist die Verwendung einer UserForm. Diese erlaubt eine größere Flexibilität in der Gestaltung der Benutzeroberfläche.

  1. Erstelle eine UserForm:

    • Füge über Einfügen > UserForm eine neue UserForm hinzu.
  2. Füge zwei Schaltflächen hinzu:

    • Benenne die Schaltflächen btnJa und btnNein.
  3. Setze den Timer in der UserForm:

    • Verwende den Timer in der UserForm, um die Auswahl automatisch auf „Ja“ zu setzen, wenn keine Auswahl getroffen wurde.

Praktische Beispiele

Hier ist ein einfaches Beispiel für eine Ja/Nein Abfrage in Excel:

Sub BeispielJaNein()
    Dim Antwort As VbMsgBoxResult
    Antwort = MsgBox("Sind Sie sicher, dass Sie fortfahren möchten?", vbYesNo + vbExclamation, "Bestätigung")

    If Antwort = vbYes Then
        MsgBox "Du hast Ja gewählt."
    Else
        MsgBox "Du hast Nein gewählt."
    End If
End Sub

Tipps für Profis

  • Nutze die vbYesNoCancel-Option, wenn Du dem Benutzer mehrere Auswahlmöglichkeiten bieten möchtest.
  • Denke daran, die Timer-Funktion in einer echten Anwendung zu testen, um sicherzustellen, dass sie unter allen Umständen wie gewünscht funktioniert.
  • Berücksichtige die Benutzerfreundlichkeit, wenn Du automatisierte Entscheidungen triffst, um unangemessene Ergebnisse zu vermeiden.

FAQ: Häufige Fragen

1. Kann ich die Zeit für die MsgBox ändern?
Ja, ändere einfach den Wert 4000 in der SetTimer-Funktion, um die Wartezeit in Millisekunden anzupassen.

2. Funktioniert dieser Code in Excel 64-Bit?
Ja, der Code ist für 64-Bit Excel optimiert, stelle sicher, dass die Declare-Anweisungen korrekt sind.

3. Wie kann ich die MsgBox anpassen?
Du kannst die Message-Text, den Titel und die Schaltflächen in der MsgBox-Funktion anpassen, um deinen Anforderungen gerecht zu werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige