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

Alternative für Application.Wait (Now + TimeValue)

Forumthread: Alternative für Application.Wait (Now + TimeValue)

Alternative für Application.Wait (Now + TimeValue)
26.03.2018 18:05:20
Tim
Hallo Zusammen,
sagt mal gibt es eine alternative zu
Application.Wait (Now + TimeValue ...)
eine die nicht das ganze Programm lahm legt.
Ich möchte 15 Minuten nach dem Start des Excel Dokuments etwas ausdrucken lassen.
Der Wait Taimer soll gleich nach dem Start ausgelöst werden, nur leider friert Office schon beim Start mit dem Office Logo ein.
Es steht zwar im Fenster drin, dass das Dokument zu 100% geladen ist, doch Zeit zum schließen ist scheinbar keine mehr da.
Gibt es eine Alternative oder ein Befehl dass, das Makro erst startet, wenn Office komplett geladen ist?
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alternative für Application.Wait ()
26.03.2018 18:10:28
Daniel
HI
schreibe den Befehl zum Drucken in ein Makro in einem allgemeinen Modul.
rufe dann dieses Makro mit Application.Ontime Now + TimeSerial(0, 15, 0), "Makroname" auf
Gruß Daniel
AW: Alternative für Application.Wait ()
26.03.2018 19:59:56
Tim
Sauber, danke Daniel.
Funktioniert :)
Gruß Tim
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Alternative für Application.Wait in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und gehe zu den Entwicklertools. Wenn du die Entwicklertools nicht siehst, aktiviere sie über die Excel-Optionen.

  2. Erstelle ein neues Modul: Rechtsklicke im VBA-Editor auf "VBAProject", wähle "Einfügen" und dann "Modul".

  3. Füge den folgenden Code ein:

    Sub DruckNach15Minuten()
       Application.OnTime Now + TimeSerial(0, 15, 0), "DruckMakro"
    End Sub
    
    Sub DruckMakro()
       ' Hier den Druckbefehl einfügen
       MsgBox "Druckauftrag wird ausgeführt."
    End Sub
  4. Führe das Makro DruckNach15Minuten aus. Dies wird den Druckauftrag 15 Minuten nach dem Start des Makros auslösen, ohne dass Excel hängt.


Häufige Fehler und Lösungen

  • Problem: Excel friert beim Start ein.

    • Lösung: Stelle sicher, dass du Application.OnTime anstelle von Application.Wait verwendest. Application.Wait blockiert Excel, während OnTime dies nicht tut.
  • Problem: Der Druckauftrag wird nicht ausgeführt.

    • Lösung: Überprüfe, ob das Makro DruckMakro korrekt implementiert ist und dass keine Fehler im Code sind.

Alternative Methoden

Wenn du nach einer apktime alternative suchst, gibt es verschiedene Ansätze, um Zeitverzögerungen in Excel VBA zu implementieren:

  1. Schleifen mit Timer: Du kannst eine Schleife verwenden, die überprüft, ob eine bestimmte Zeit vergangen ist. Dies kann jedoch die Performance beeinträchtigen.

    Sub DelayUsingTimer()
       Dim Start As Double
       Start = Timer
       Do While Timer < Start + 900 ' 15 Minuten
           DoEvents ' Ermöglicht Excel, andere Aufgaben zu erledigen
       Loop
       DruckMakro
    End Sub
  2. Application.Sleep: Eine weitere Möglichkeit ist die Verwendung von Application.Sleep, die allerdings nicht in jeder Excel-Version unterstützt wird.


Praktische Beispiele

Hier sind einige Beispiele, wie du Application.OnTime in verschiedenen Szenarien nutzen kannst:

  1. Druckauftrag nach 10 Minuten:

    Sub DruckNach10Minuten()
       Application.OnTime Now + TimeSerial(0, 10, 0), "DruckMakro"
    End Sub
  2. E-Mail nach 5 Minuten senden:

    Sub EmailNach5Minuten()
       Application.OnTime Now + TimeSerial(0, 5, 0), "SendeEmail"
    End Sub
    
    Sub SendeEmail()
       ' E-Mail Sende-Logik hier
       MsgBox "E-Mail wird gesendet."
    End Sub

Tipps für Profis

  • Nutze DoEvents in Schleifen, um Excel reaktionsfähig zu halten.
  • Teste deine Makros in einer sicheren Umgebung, um sicherzustellen, dass sie wie gewünscht funktionieren.
  • Verwende die Application.Wait Funktion nur, wenn es unbedingt nötig ist und die Auswirkungen auf die Benutzerfreundlichkeit akzeptabel sind.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen Application.Wait und Application.OnTime?
Application.Wait blockiert Excel, während Application.OnTime das Programm weiterhin verwendbar hält.

2. Kann ich Application.Sleep in Excel VBA verwenden?
Ja, aber nicht in allen Excel-Versionen. Es ist eine gute Idee, auf Application.OnTime auszuweichen, wenn du sicherstellen möchtest, dass dein Programm nicht einfriert.

3. Wie kann ich sicherstellen, dass mein Makro nach dem Start von Excel ausgeführt wird?
Nutze Application.OnTime zusammen mit einer geeigneten Verzögerung, um sicherzustellen, dass dein Makro erst nach dem vollständigen Laden von Excel ausgeführt wird.

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