Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fehler bei Application.Wait

Forumthread: Fehler bei Application.Wait

Fehler bei Application.Wait
27.03.2017 21:01:01
Barbaraa
Hallo
habe Probleme beim Warten.
Warum macht folgender Code eine Fehlerunterbrechung beim Warten?
Private Sub CommandButton1_Click()
Dim Buttonfarbe As Long
Dim Buttontext As String
Buttonfarbe = CommandButton1.BackColor
Buttontext = CommandButton1.Caption
CommandButton1.Caption = "Kurz warten ..."
CommandButton1.BackColor = rgbOrange
Application.Wait (Now + TimeValue("0:00:2"))            'warten
CommandButton1.Caption = Buttontext
CommandButton1.BackColor = Buttonfarbe
End Sub
Hier die Datei mit Aufrufbutton und Code:
https://www.herber.de/bbs/user/112466.xlsm
Freue mich auf Antworten.
LG,
B.
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Fehler bei Application.Wait
27.03.2017 21:56:01
Luschi
Hallo Barbaraa,
bei mir kommt kein Fehler, der Code läuft durch und der Button wird eingefärbt und wieder auf Standard zurückgestellt.
Gruß von Luschi
aus klein-Paris
AW: Fehler bei Application.Wait
27.03.2017 22:24:21
Barbaraa
Danke Luschi, freut mich, dass es bei Dir geht.
Bei mir geht es nur beim Schrittweise Ausführen.
Beim Start durch Buttonklick kommt eine Fehlermeldung.
LG, Barbara
Anzeige
AW: Fehler bei Application.Wait
28.03.2017 06:01:57
Hajo_Zi
Hallo Babara,
bei mir geht es auch ohne Probleme.
ich habe mal die Zeit auf 10 erhöht, damit man es deutlicher sieht.

AW: Fehler bei Application.Wait
28.03.2017 06:22:26
Luschi
Hallo Barbaraa,
dann schreibe doch mal, welche Fehler-Nummer/Fehler-Text in der Fehler-Meldung angeangezeigt wird.
Außerdem markiert der Debugger die fehlerhafte Vba-Zeile gelb.
Auch von dieser Information lese ich nichts in Deiner spartamischen Beschreibung.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Fehler bei Application.Wait
28.03.2017 20:31:33
Barbaraa
Das ist wohl klar, dass ein Fehler genau beschrieben werden muss.
Sorry, hab ich vergessen.
Also nach der eingestellten Wartezeit (sei es drei oder zehn Sekunden, was auch immer im Makro steht) kommt das übliche Fehlermeldungsfenster und da steht:
"Ausführung des Codes wurde unterbrochen"
Aber es wird keine Errornummer angezeigt. Auch ein eingebauter Errorhandle
On Error GoTo FF
wird nicht ausgeführt, wie sonst bei Fehlern üblich.
Klicke ich auf "Debuggen", steht das Makro bei
CommandButton1.Caption = Buttontext
also in der Zeile nach
Application.Wait (Now + TimeValue("0:00:10")) 'warten
Klicke ich aber auf "Fortfahren", fort das Makro den Rest aus.
Hoffe, das hilft zur Klärung.
LG, Barbra
Anzeige
AW: Fehler bei Application.Wait
28.03.2017 21:24:06
Barbaraa
Hallo alle,
habe jetzt den Verweis
Microsoft Scripting Runtime
gesetzt, und es geht.
Danke. LG, B.
;
Anzeige
Anzeige

Infobox / Tutorial

Anwendung von Application.Wait in Excel VBA


Schritt-für-Schritt-Anleitung

Um die Application.Wait-Methode in Excel VBA korrekt anzuwenden, gehe wie folgt vor:

  1. Öffne die Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge einen neuen Button (CommandButton) in ein UserForm oder auf ein Arbeitsblatt ein.

  3. Doppelklicke auf den Button, um das Code-Fenster zu öffnen.

  4. Kopiere den folgenden Code in das Code-Fenster:

    Private Sub CommandButton1_Click()
       Dim Buttonfarbe As Long
       Dim Buttontext As String
       Buttonfarbe = CommandButton1.BackColor
       Buttontext = CommandButton1.Caption
       CommandButton1.Caption = "Kurz warten ..."
       CommandButton1.BackColor = RGB(255, 165, 0) ' orange
       Application.Wait (Now + TimeValue("0:00:2")) ' warten
       CommandButton1.Caption = Buttontext
       CommandButton1.BackColor = Buttonfarbe
    End Sub
  5. Schließe den VBA-Editor und teste den Button in Excel.


Häufige Fehler und Lösungen

Ein häufiger Fehler bei der Verwendung von Application.Wait ist, dass die Ausführung des Codes unterbrochen wird. Dies kann verschiedene Ursachen haben:

  • Problem: "Ausführung des Codes wurde unterbrochen."
    Lösung: Stelle sicher, dass du den Verweis auf „Microsoft Scripting Runtime“ gesetzt hast. Dies kann oft Probleme mit der Application.Wait-Funktion lösen.

  • Problem: Der Code läuft nur im Debug-Modus.
    Lösung: Überprüfe, ob alle Variablen korrekt deklariert sind und dass der Code keine unerwarteten Fehler enthält.


Alternative Methoden

Falls Application.Wait nicht funktioniert oder du eine andere Methode zum Warten in VBA benötigst, probiere folgende Alternativen:

  1. Sleep-Methode:

    Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    
    Sub WaitWithSleep()
       Sleep 2000 ' wartet 2 Sekunden
    End Sub
  2. DoEvents:

    Sub DelayWithDoEvents()
       Dim StartTime As Double
       StartTime = Timer
       Do While Timer < StartTime + 2 ' wartet 2 Sekunden
           DoEvents
       Loop
    End Sub

Praktische Beispiele

Um die Anwendung von Application.Wait in einem praktischen Szenario zu verdeutlichen, kannst du den folgenden Beispielcode verwenden, um in einer Schleife durch eine Liste von Werten zu iterieren und dabei eine Verzögerung einzufügen:

Sub WaitExample()
    Dim i As Integer
    For i = 1 To 5
        Debug.Print "Wert: " & i
        Application.Wait (Now + TimeValue("0:00:1")) ' 1 Sekunde warten
    Next i
End Sub

Tipps für Profis

  • Verwende die Application.Wait-Methode sparsam. Zu häufige Verzögerungen können die Benutzererfahrung beeinträchtigen.
  • Nutze On Error Resume Next, um Fehler zu ignorieren, wenn du sicher bist, dass sie nicht kritisch sind.
  • Teste den Code schrittweise, um sicherzustellen, dass jede Zeile korrekt ausgeführt wird, insbesondere bei längeren Wartezeiten.

FAQ: Häufige Fragen

1. Funktioniert Application.Wait in allen Excel-Versionen?
Ja, Application.Wait ist in allen Versionen von Excel verfügbar, die VBA unterstützen.

2. Gibt es eine maximale Wartezeit, die ich in Application.Wait verwenden kann?
Ja, Application.Wait kann nur bis zu 24 Stunden warten. Für längere Wartezeiten solltest du alternative Methoden wie Sleep verwenden.

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