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

Makro nach start noch 3 sec. warten

Forumthread: Makro nach start noch 3 sec. warten

Makro nach start noch 3 sec. warten
08.11.2003 22:19:48
Sascha
Hallo,

wie kann ich es erreichen, das ein Makro das gestartet wird noch 3sec. wartet, bis die eigentlichen Funktionen starten?

Danke

Mfg

Sascha
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro nach start noch 3 sec. warten
08.11.2003 22:29:03
Hajo_Zi
Hallo Sascha

Application.Wait Now + TimeSerial(0, 0, 3)

Bitte keine Mail, Probleme sollten im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Pro und Excel Version XP Pro


Anzeige
AW: Makro nach start noch 3 sec. warten
08.11.2003 22:53:39
Sascha
Hallo,

danke für die Info aber da bekomme ich einen Fehler-Meldung beim Kompilieren. Methode oder Datenobjekt nicht gefunden.

Gib´s ´ne andere Lösung oder kann man diesen fehler beheben?

Danke nochmal

Gruß

Sascha
AW: Makro nach start noch 3 sec. warten
08.11.2003 23:07:04
Hajo_Zi
Hallo Sascha

zeig doch mal Deinen Code. Bei mir läuft es wie gewünscht.

Bitte keine Mail, Probleme sollten im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Pro und Excel Version XP Pro


Anzeige
AW: Makro nach start noch 3 sec. warten
08.11.2003 23:12:40
Sascha
Hallo,

kann das was damit zu tun haben das ich das in einen Word-Makro nutzen will

Danke

Grüße
Sascha


Sub Document_open()
Application.Wait Now + TimeSerial(0, 0, 3)
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.MailAsAttachment = False
.MailAddressFieldName = ""
.MailSubject = ""
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=True
End With
ActiveDocument.PrintOut Background:=False
Application.Quit SaveChanges:=wdDoNotSaveChanges
End Sub

Anzeige
AW: Makro nach start noch 3 sec. warten
08.11.2003 23:17:30
Hajo_Zi
Hallo Sascha

zur Progammierung in Word kann ich Dir nicht helfen. Da wäre ein Word Forum besser.

Bitte keine Mail, Probleme sollten im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Pro und Excel Version XP Pro


Anzeige
AW: Makro nach start noch 3 sec. warten
08.11.2003 23:22:33
Sascha
Hallo,

besten Dank.

Ich war der Meinung das das egal ist.VBA gleich VBA. Eigendlich arbeite ich ja auch nur in Excel. Such nur gerade nach einer Lösung einen Serienbriefdruck von Excel aus zu starten.

Danke nochmal.

Grüße
Sascha
AW: Makro nach start noch 3 sec. warten
08.11.2003 23:27:25
Nepumuk
Hallo Sascha,
so geht's


Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub Document_open()
Sleep 3000
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.MailAsAttachment = False
.MailAddressFieldName = ""
.MailSubject = ""
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=True
End With
ActiveDocument.PrintOut Background:=False
Application.Quit SaveChanges:=wdDoNotSaveChanges
End Sub



Gruß
Nepumuk
Anzeige
AW: Makro nach start noch 3 sec. warten
09.11.2003 00:17:23
Sascha
Hallo,

besten Dank, das funktioniert super.

Danke
;
Anzeige

Infobox / Tutorial

Makro nach Start 3 Sekunden warten lassen


Schritt-für-Schritt-Anleitung

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel (ALT + F11).

  2. Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" -> Einfügen -> Modul).

  3. Schreibe den folgenden Code in das Modul:

    Sub MakroMitWartezeit()
       Application.Wait Now + TimeSerial(0, 0, 3) 'Warte 3 Sekunden
       ' Dein Hauptcode hier
    End Sub
  4. Ersetze den Kommentar ' Dein Hauptcode hier mit dem Code, der nach der Wartezeit ausgeführt werden soll.

  5. Speichere das Modul und schließe den VBA-Editor.

  6. Starte das Makro über Excel (Entwicklertools -> Makros -> Makro auswählen -> Ausführen).

Diese Methode nutzt Application.Wait, um das Makro für 3 Sekunden anzuhalten. Dies ist eine gängige Methode, um in Excel VBA zu warten.


Häufige Fehler und Lösungen

  • Fehlermeldung: Methode oder Datenobjekt nicht gefunden.
    Dies kann passieren, wenn der Code nicht korrekt eingegeben wurde oder wenn ein Fehler in der Syntax vorliegt. Überprüfe den Code auf Tippfehler oder fehlende Teile.

  • Das Makro wartet nicht.
    Stelle sicher, dass der Code korrekt in ein Modul eingefügt wurde und dass du die richtige Sub-Routine ausführst.


Alternative Methoden

Eine alternative Methode, um in VBA zu warten, ist die Verwendung der Sleep-Funktion aus der Windows-API. Hier ist ein Beispiel:

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub MakroMitSleep()
    Sleep 3000 'Warte 3000 Millisekunden (3 Sekunden)
    ' Dein Hauptcode hier
End Sub

Diese Methode könnte bei bestimmten Anwendungen nützlich sein, insbesondere wenn du einen vba warten-Befehl benötigst, der flexibler ist.


Praktische Beispiele

  1. Serienbriefausdruck mit Wartezeit: Wenn du einen Serienbrief aus Excel starten möchtest, kannst du den folgenden Code verwenden:

    Sub SerienbriefMitWartezeit()
       Application.Wait Now + TimeSerial(0, 0, 3)
       ' Code für den Serienbrief hier
    End Sub
  2. Makro, das nach einer bestimmten Zeit startet: Für ein Makro, das nach 5 Sekunden wartet, kannst du diesen Code verwenden:

    Sub MakroNach5Sekunden()
       Application.Wait Now + TimeSerial(0, 0, 5)
       ' Weitere Aktionen hier
    End Sub

Tipps für Profis

  • Verwende DoEvents, um sicherzustellen, dass Excel während der Wartezeit weiterhin reagiert. Dies kann in langen Warteschleifen hilfreich sein.
  • Teste deine Makros immer in einer sicheren Umgebung, um unerwünschte Änderungen an wichtigen Daten zu vermeiden.
  • Nutze Fehlerbehandlungsroutinen, um sicherzustellen, dass dein Makro auch bei unerwarteten Problemen weiterhin funktioniert.

FAQ: Häufige Fragen

1. Wie kann ich das Makro für 1 Sekunde pausieren?
Du kannst die Application.Wait Methode verwenden und die Zeit auf 1 Sekunde anpassen:

Application.Wait Now + TimeSerial(0, 0, 1)

2. Kann ich die Wartezeit anpassen?
Ja, ändere einfach die Zeitparameter in TimeSerial(Stunden, Minuten, Sekunden) nach Bedarf.

3. Funktioniert das auch in Word?
Ja, die gleiche Syntax kann auch in Word VBA verwendet werden, aber du musst sicherstellen, dass die entsprechenden Objekte und Methoden für Word vorhanden sind.

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