Microsoft Excel

Herbers Excel/VBA-Archiv

Verzögerung zwischen Befehlen

Betrifft: Verzögerung zwischen Befehlen von: Peter
Geschrieben am: 07.08.2014 20:33:22

Hallo,

nun zum nächsten Problem.
In dem Makro soll zuerst die Webabfrage aktualisiert werden um danach die Daten kopieren zu können.

Deswegen möchte ich zwischen dem Ausführen des Befehls RefreshAll und dem kopieren, ein paar Sekunden Verzögerung zwischen den zwei Befehlen einbauen.

Momentan werden die Daten zuerst kopiert, während die Aktualisierung noch voll im Gang ist.

Mit Application.Wait pausiert jedoch die ganz Prozedure.
Kann man dies ebenso mit einem Befehl erreichen?

Grüße
Peter

Sub kopieren17302200()

    With ActiveWorkbook
        ActiveWorkbook.RefreshAll
        Application.Wait (Now + TimeValue("0:00:10"))
        .Worksheets("1730-2200").Range("d1:e30").Copy
        .Worksheets("1730-2200").Range("g1").PasteSpecial Paste:=xlValues
        
    End With

End Sub

  

Betrifft: AW: Verzögerung zwischen Befehlen von: Luschi
Geschrieben am: 07.08.2014 21:25:43

Hallo Peter,

jede externe Abfrage (Web, SQL, Pivot) besitzt die BackgroundQuery-Eigenschaft, die den Wert True oder False besitzt bzw. darauf eingestellt werden kann. Leider ist True der Standardwert und bedeutet, daß die Abfrage im Hintergrund passiert und Excel somit die Abfrage startet, aber nicht auf das Aktualisierungsende wartet. Hier muß der Wert auf False gestellt werden.

Gruß von Luschi
aus klein-Paris



  

Betrifft: AW: Verzögerung zwischen Befehlen von: Peter
Geschrieben am: 08.08.2014 11:04:39

Hallo Luschi,

vielen Dank für Deinen Hinweis. Hat funktioniert. Habe alle Häckchen "im Hintergrund ausführen" rausgenommen. Passt nun.:-)

Kann ich den Button der das Makro startet, für die Zeit von 8-9 Uhr sperren?
Wenn ja wie.
Bin leider absoluter Laie und fummel mich gerade in VBA langsam rein.


  

Betrifft: AW: Verzögerung zwischen Befehlen von: Peter
Geschrieben am: 08.08.2014 11:19:48

Habe nun diesen Code mal eingefügt. Das Makro startet auch zu dieser Uhrzeit.
Nun möchte ich dieses Makro jedoch automatisch zwischen 9 und 17:30 Uhr jede Stunde einmal ausführen lassen.
Wie ginge das?

Public Sub Workbook_Open()
Application.OnTime TimeValue("11:18:00"), "kopieren0917300"
End Sub



  

Betrifft: AW: Verzögerung zwischen Befehlen von: Peter
Geschrieben am: 08.08.2014 11:27:36

Also mein letzter Beitrag ist mir sogar lieber, daß die Makros automatisch im Hintergrund starten.


  

Betrifft: AW: Verzögerung zwischen Befehlen von: Robert
Geschrieben am: 08.08.2014 11:53:35

Hallo Peter,
Wenn das Excel File ganztägig geöffnet Bleibt, was spricht dagegen die Codezeile .OnTime im Workbook_open Event einfach für jedes geplante Ausführen einmal reinzuschreiben?

Es gibt sicher eine kürzere und Codeoptisch schönere Lösung, aber so wäre es auch für dich einfach umzusetzen und auszuführen.

Viele grüße
Robert


  

Betrifft: AW: Verzögerung zwischen Befehlen von: Peter
Geschrieben am: 08.08.2014 12:22:33

Hallo Robert,
ja so habe ich es nun auch umgesetzt. Wollte wohl als Anfänger gleich die elegante Lösung:-)

Grüße
Peter


 

Beiträge aus den Excel-Beispielen zum Thema "Verzögerung zwischen Befehlen"