Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1532to1536
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
MsgBox mit application.On Time
08.01.2017 15:24:33
Dieter(Drummer)
Guten Tag VBAler/innen,
mit diesem Makro wird eine neue Mappe erzeugt, wenn ich auf OK klicke und dies funktioniert auch.
Nun möchte ich, wenn das Makro aufgerufen wird eine Zeitschleife von 2 Sek. haben. Wenn die 2 Sek. vorbei sind, soll die MsgBox geschlossen werden und keine neue Mappe erzeugt werden.
Mit
  • Application.OnTime Now + TimeValue("0:0:2")
  • bekomme ich es nicht hin, egal an welcher Stelle ich es im Makro der MsgBox einfüge.
    Wie muss es richtig heißen und wo muss es hin?
    Danke für Hilfe und
    Gruß, Dieter(Drummer)
    Hier das MsgBox Makro:
  • 
    Private Sub NeueMappe()
    If MsgBox("Neue Mappe erstellen?", vbYesNo + vbDefaultButton2 + vbQuestion) = vbNo Then
    'MsgBox ("Nein gedrückt," & vbLf & "Makro beendet!")
    Exit Sub
    End If
    Workbooks.Add 'Öffnet bei Excelstart eine erste Mappe
    End Sub
    

  • 11
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: MsgBox mit application.On Time
    08.01.2017 15:27:25
    Hajo_Zi
    bei •Application.OnTime Now musst Du ein Makro aufrufen.
    Warum nicht Wait

    AW: MsgBox mit application.On Time
    08.01.2017 15:29:41
    Dieter(Drummer)
    Danke Hajo für Rückmeldung.
    Wie geht das mit wait?
    Gruß, Dieter(Drummer)
    AW: MsgBox mit application.On Time
    08.01.2017 15:31:13
    Hajo_Zi
    Hallo Dieter,
    Excel hat auch eine Hilfe!!
    Application.Wait Now + TimeSerial(0, 0, 2)
    Gruß Hajo
    AW: Wo muss es den hin...
    08.01.2017 15:35:43
    Dieter(Drummer)
    Danke Hajo, dies versteh ich, aber wo oder wie muss es eingesetzt werden?
    So geht es nicht:
    Private Sub NeueMappe()
    If MsgBox("Neue Mappe erstellen?", vbYesNo + vbDefaultButton2 + vbQuestion) = vbNo Then
    'MsgBox ("Nein gedrückt," & vbLf & "Makro beendet!")
    Application.Wait Now + TimeSerial(0, 0, 2)
    Exit Sub
    End If
    Workbooks.Add 'Öffnet bei Excelstart eine erste Mappe
    End Sub
    

    Gruß, Dieter(Drummer)
    Anzeige
    AW: Wo muss es den hin...
    08.01.2017 15:38:20
    Hajo_Zi
    Hallo Dieter,
    doch der Code wartet dort 2 Sekunden bevor es weiter geht und das war ja die Aufgabe.
    Ansonsten meinen ersten Beitrag komplett lesen.
    Gruß Hajo
    AW: Die Aufgabe war ...
    08.01.2017 15:48:27
    Dieter(Drummer)
    ... dass die MsgBox nur 2 Sek. da sein sein und wenn kein Button gedrückt wurde, sich alleine schließt.
    Danke Hajo für versuchte Hilfe. Ich kann lesen und lese auch alles komplett. Leider sind für nicht so fitte Exellianer deine knappen Antworten nicht so einfach zu realisieren.
    Danke und brauche keine weiter Info.
    Gruß, Dieter(Drummer)
    Anzeige
    AW: Die Aufgabe war ...
    08.01.2017 15:51:12
    Hajo_Zi
    das hatte ich so nicht gelesen.
    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
    

    Gruß Hajo
    Anzeige
    AW: Danke Hajo, ich werde es auf meine ...
    08.01.2017 16:00:25
    Dieter(Drummer)
    ... Belange umsetzen.
    Gruß, Dieter(Drummer)
    AW: Workaround Userform
    08.01.2017 15:57:48
    Daniel
    Hi
    mit den normalen Messageboxen geht das nicht.
    wenn die gestartet wurden, ist jegliche Makrotätigkeit angehalten, solange bis du einen Messagebox-Button klickst.
    da musst du so vorgehen:
    1. lege folgende Projektweit gültige Variablen an:
    Public DateiErstellen as Boolean
    Public Abbrechen as Boolean
    
    2. erstelle als Ersatzt für die Messagebox eine Userform mit den Buttons "ja" und "nein"
    für die Userform brauchst du diese Codes:
    Private Sub CommandButtonJA_Click()
    DateiErstellen = True
    Unload Me
    End Sub
    Private Sub CommandButtonNEIN_Click()
    Unload Me
    End Sub
    Private Sub UserForm_Terminate()
    Abbrechen = True
    End Sub
    
    3. für deinen Button brauchst du diesen Code:
    Sub test()
    Dim T As Double
    Abbrechen = False
    DateiErstellen = False
    UserForm1.Show vbModeless
    T = Timer + 2
    Do While T > Timer And Abbrechen = False
    DoEvents
    Loop
    If Abbrechen = False Then Unload UserForm1
    If DateiErstellen = True Then Workbooks.Add
    End Sub
    
    sollte der Startbutton auch auf einer Userform liegen, muss diese ebenfalls die Eigenschaft ShowModal = False haben.
    Gruß Daniel
    Anzeige
    AW: Vielen Dank Daniel ....
    08.01.2017 16:05:12
    Dieter(Drummer)
    ... aber das ist mir zu aufwendig.
    Es wird lediglich beim Start von Excel angefragt, ob eine neue Datei geöffnet werden soll oder nicht. Dies Makro, mit der MsgBox Abfrage, ist in der PersonL integriert.
    Dennoch Danke für deine Info.
    Gruß, Dieter(Drummer)
    AW: @Daniel. Workaround Userform
    09.01.2017 15:51:28
    Dieter(Drummer
    Hallo Daniel,
    habe deine Version ausprobiert und sie funktioniert perfekt!
    Vielen Dank und einen schönen Tag.
    Gruß, Dieter(Drummer)
    Hier meine Testdatei mit deinen Codevorgaben, Wartezeit 4 Sek. Start mit Klick auf Grafik2:
    https://www.herber.de/bbs/user/110423.xlsm
    Anzeige

    54 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige