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

Wie kann ein Makro "warten"?

Forumthread: Wie kann ein Makro "warten"?

Wie kann ein Makro "warten"?
05.09.2002 14:56:02
Ognian
Hallo,

ich habe ein Makro der einen Excel Blatt aktualilsiert, dann speichert und dann zum anderen übergeht.
Da ich aber auf dem Blatt sehr komlizierte Formel habe, schafft der Rechner nicht die sofort zu aktualisieren bevor das Makro weiterläuft.
Gibt es irgendwelchen Weg, wodurch das Makro "warten" kann, bis alle Felder aktualiiert sind bevor es weiterläuft.

Vielen Dank im voraus

Grüsse

Ognian

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: Wie kann ein Makro "warten"?
05.09.2002 15:08:23
Konrad
Meines Wissens nach gibt es sowas nicht. Du kannst aber einfach durch eine for next schleife so lange warten, bis es passt...
Re: Wie kann ein Makro "warten"?
05.09.2002 15:18:16
Anna
Hallo Ognian,

vielleicht reicht es, zwischen aktualisieren und speichern ein "DoEvents" zu schreiben, damit das Makro wartet.

Liebe Grüße
Anna

Re: Wie kann ein Makro "warten"?
05.09.2002 15:23:07
ChristianG
Hallo,

mit folgender Zeile wartet das Makro 10 Sekunden:

Application.Wait (Now + TimeValue("0:00:10"))

Da ich eine englische Excel-Version benutze bin ich mir nicht sicher, wie das in deutsch aussieht, ich denke so:

Application.Wait (Jetzt + TimeValue("0:00:10"))

Gruß
Christian

Anzeige
Re: Wie kann ein Makro "warten"?
05.09.2002 16:05:53
L.Vira
Kannst du nicht am Anfang des Makros Calculation auf manual
schalten und am Ende wieder auf automatisch?
Re: Wie kann ein Makro "warten"?
05.09.2002 19:18:18
Ognian
Danke Christian,

Es hat funktioniert.

Ognian

;
Anzeige

Infobox / Tutorial

Makro in Excel: Warten mit VBA


Schritt-für-Schritt-Anleitung

Um sicherzustellen, dass dein Makro in Excel richtig funktioniert und auf die Aktualisierung von Zellen wartet, kannst du den Application.Wait Befehl verwenden. Hier ist eine einfache Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (deine Datei)" > Einfügen > Modul.

  3. Gib den folgenden Code ein:

    Sub WartenMakro()
       ' Aktualisiere das Blatt
       ThisWorkbook.Sheets("DeinBlatt").Calculate
    
       ' Warte 5 Sekunden
       Application.Wait (Now + TimeValue("0:00:05"))
    
       ' Speichere das Workbook
       ThisWorkbook.Save
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus: Drücke ALT + F8, wähle WartenMakro und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Fehler: Das Makro läuft zu schnell weiter
    Lösung: Stelle sicher, dass du Application.Wait oder DoEvents an der richtigen Stelle im Code verwendest.

  • Fehler: "Typenunterschied" beim Speichern
    Lösung: Überprüfe, ob das Arbeitsblatt korrekt referenziert wird.


Alternative Methoden

Falls du eine andere Methode ausprobieren möchtest, um das Warten im Makro zu implementieren, kannst du eine Schleife verwenden:

Sub WartenMitSchleife()
    Dim StartZeit As Double
    StartZeit = Timer
    ' Warte 3 Sekunden
    Do While Timer < StartZeit + 3
        DoEvents
    Loop
    ' Speichere das Workbook
    ThisWorkbook.Save
End Sub

Diese Methode nutzt eine Schleife, um 3 Sekunden zu warten, bevor das Makro fortfährt.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du das Warten in VBA implementieren kannst:

  • Warten für 10 Sekunden

    Application.Wait (Now + TimeValue("0:00:10"))
  • Warten bis eine Bedingung erfüllt ist

    Do While Cells(1, 1).Value <> "Fertig"
      DoEvents
    Loop

Beide Beispiele zeigen, wie du Zeitverzögerungen in deinen Makros einsetzen kannst.


Tipps für Profis

  • Nutze DoEvents, um sicherzustellen, dass Excel während des Wartens weiterhin auf Benutzereingaben reagiert.
  • Achte darauf, dass das Arbeiten mit langen Wartezeiten die Benutzererfahrung beeinträchtigen kann. Halte Wartezeiten so kurz wie möglich.
  • Teste deine Makros gründlich, um sicherzustellen, dass alle Bedingungen erfüllt sind, bevor das Makro fortfährt.

FAQ: Häufige Fragen

1. Wie kann ich die Wartezeit anpassen?
Du kannst die Zeit im TimeValue ändern, z. B. TimeValue("0:00:05") für 5 Sekunden.

2. Funktioniert Application.Wait in Access VBA?
Ja, du kannst den Befehl Application.Wait auch in Access VBA verwenden, um ähnliche Wartezeiten zu implementieren.

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