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

Forumthread: ActiveWorkbook alle 30 Minuten aktualisieren

ActiveWorkbook alle 30 Minuten aktualisieren
Michael
Hallo!
Möchte gerne, dass bei meinem aktuellen Workbook alles sheets aktualisiert werden.
Sub Makro3()
' Makro3 Makro
' Makro am 21.09.2009 von Michael aufgezeichnet
ActiveWorkbook.RefreshAll
ActiveWorkbook.RefreshPeriod = 1
End Sub
So klappt es auf jeden Fall nicht.
Vielen Dank
Gruß MIchael
Anzeige
AW: ActiveWorkbook alle 30 Minuten aktualisieren
21.09.2009 12:12:35
chris
Hallo klappts so ?
Option Explicit
Sub Makro3()
ActiveWorkbook.RefreshAll
Application.OnTime Now + TimeValue("00:30:00"), "Makro3"
End Sub

Wenn nein was klappt nicht ?
AW: ActiveWorkbook alle 30 Minuten aktualisieren
21.09.2009 13:54:21
Michael
Klappt Super!
Hat nur einen Haken, wie kann ich es wieder stoppen! Hatte es zum ausprobieren auf "00:01:00" gestellt! Bei der RefreshPeriod Methode konnte ich es mit einer Abfrage auf Null setzen und danach war das Makro gestoppt.
Gruß Michael
Anzeige
AW: ActiveWorkbook alle 30 Minuten aktualisieren
21.09.2009 15:38:39
ede
Hallo Michael,
nach diesem Prinzip (aus der Hilfe) kannst Du ihn stoppen:
Application.OnTime EarliestTime:=TimeValue("17:00:00"), _
Procedure:="my_Procedure", Schedule:=False
gruss
AW: ActiveWorkbook alle 30 Minuten aktualisieren
21.09.2009 16:50:26
Michael
Danke!
Klappt leider nicht. Ich hatte es auch schon mit der Hilfestellung versucht!
Gruß Michael
Anzeige
AW: ActiveWorkbook alle 30 Minuten aktualisieren
21.09.2009 18:54:11
Tino
Hallo,
Du musst Dir die Zeit in einer Variablen merken.
Beim beenden der Datei auf alle fälle Timer ausschalten.
'kommt als Code in DieseArbeitsmappe
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call StopTimer
End Sub
'kommt in ein Modul
Option Explicit
Public MerkTime As Date
Sub StartTimer()
ActiveWorkbook.RefreshAll
MerkTime = Now + TimeValue("00:30:00")
Application.OnTime MerkTime, "StartTimer"
End Sub
Sub StopTimer()
On Error Resume Next
Application.OnTime MerkTime, "StartTimer", , False
End Sub
Gruß Tino
Anzeige
AW: ActiveWorkbook alle 30 Minuten aktualisieren
22.09.2009 12:31:17
Michael
Danke Tino!
Klappt hervorragend! Mit Queretabel und der Makrohilfe hab ich mich dumm und dämlich versucht.
Gruß Michael
AW: ActiveWorkbook alle 30 Minuten aktualisieren
22.09.2009 12:37:08
Michael
Nochmals Danke!
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

ActiveWorkbook alle 30 Minuten automatisch aktualisieren


Schritt-für-Schritt-Anleitung

Um das ActiveWorkbook alle 30 Minuten zu aktualisieren, kannst Du das folgende VBA-Makro verwenden.

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

  2. Füge ein neues Modul hinzu: Klicke auf Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Option Explicit
    Public MerkTime As Date
    
    Sub StartTimer()
       ActiveWorkbook.RefreshAll
       MerkTime = Now + TimeValue("00:30:00")
       Application.OnTime MerkTime, "StartTimer"
    End Sub
    
    Sub StopTimer()
       On Error Resume Next
       Application.OnTime MerkTime, "StartTimer", , False
    End Sub
  4. Um sicherzustellen, dass der Timer beim Schließen der Datei gestoppt wird, füge den folgenden Code in das DieseArbeitsmappe-Objekt ein:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
       Call StopTimer
    End Sub
  5. Starte das Makro mit StartTimer, um die Aktualisierung zu beginnen.


Häufige Fehler und Lösungen

  • Fehler: Das Makro aktualisiert nicht alle 30 Minuten.

    • Lösung: Stelle sicher, dass Du StartTimer aufrufst, um die Aktualisierung zu starten. Überprüfe auch, dass die Zeit korrekt gesetzt ist.
  • Fehler: Das Makro stoppt nicht.

    • Lösung: Stelle sicher, dass Du StopTimer in der Workbook_BeforeClose-Prozedur aufrufst, um den Timer zu deaktivieren.

Alternative Methoden

Eine alternative Methode, um das ActiveWorkbook zu aktualisieren, ist die Verwendung von Application.OnTime mit einer anderen Zeitspanne. Du kannst den Zeitintervall anpassen, indem Du den TimeValue änderst:

Application.OnTime Now + TimeValue("00:01:00"), "StartTimer"  ' Aktualisiert jede Minute

Das kann nützlich sein, wenn Du häufige Aktualisierungen benötigst.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du das ActiveWorkbook mit einer Pivot-Tabelle aktualisieren kannst. Ersetze die Standardaktualisierung mit einem spezifischen Feld:

Sub UpdatePivotTable()
    Dim pt As PivotTable
    Set pt = ActiveSheet.PivotTables(1)  ' Nimm die erste Pivot-Tabelle
    pt.RefreshTable
End Sub

Du kannst die Funktion UpdatePivotTable in das StartTimer-Makro integrieren, um spezifische Daten zu aktualisieren.


Tipps für Profis

  • Nutze ActiveWorkbook.RefreshAll, um alle Datenquellen im Workbook gleichzeitig zu aktualisieren. Dies ist besonders nützlich, wenn Du mit externen Datenquellen arbeitest.
  • Achte darauf, dass Du Option Explicit am Anfang Deiner Module verwendest, um Variablenfehler zu vermeiden.
  • Dokumentiere Deinen Code, um die Wartung zu erleichtern, besonders wenn Du mehrere Makros verwendest.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um mehr als einmal alle 30 Minuten zu aktualisieren?
Du kannst den TimeValue in der StartTimer-Prozedur anpassen, um die Aktualisierungshäufigkeit zu erhöhen oder zu verringern.

2. Was passiert, wenn ich das Excel-Dokument schließe?
Das Workbook_BeforeClose-Ereignis sorgt dafür, dass der Timer gestoppt wird, sodass keine weiteren Aktualisierungen stattfinden, während das Workbook geschlossen ist.

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