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

Problem mit VBA Refresh All

Forumthread: Problem mit VBA Refresh All

Problem mit VBA Refresh All
23.05.2023 10:57:11
Florian

Hallo Leute,

habe folgendes Problem:
Wenn ich "händisch" bei Daten auf Alle aktualisieren klicke passiert genau das was ich will und auch wie es sein sollte.

Jetzt habe ich dies jedoch in ein Makro eingebaut.

Private Sub Worksheet_Activate()
Application.EnableEvents = False
    ActiveWorkbook.RefreshAll
Application.EnableEvents = True
ActiveWorkbook.Save
End Sub

Bei diesem werden mir jedoch in meinem Diagramm die Werteformatierungen (Währung von € 1.000 auf $ 1000,000) geändert.

Wenn ich im Anschluss wieder via "Strg+Alt+F5" aktualisiere werden die Währungen wieder alle richtig übernommen.

Kennt jemand das Problem.

Besten Dank im Voraus!
Florian

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem mit VBA Refresh All
23.05.2023 13:26:25
Charly CNX
Hi
Kann es sein das die Aktualisierung beim speichern noch nicht abgeschlossen ist?
Nimm mal in den Eigenschaften deiner Abfragen den Haken bei "Aktualisierung im Hintergrund zulassen" raus.
Gruss Charly

Anzeige
;
Anzeige

Infobox / Tutorial

Probleme mit VBA Refresh All in Excel beheben


Schritt-für-Schritt-Anleitung

  1. Makro erstellen: Öffne die Excel-Datei und gehe zu Entwicklertools > Visual Basic.
  2. Neues Modul hinzufügen: Klicke mit der rechten Maustaste auf VBAProject (DeinWorkbookName) und wähle Einfügen > Modul.
  3. Code einfügen: Füge den folgenden Code in das Modul ein:
    Private Sub Worksheet_Activate()
       Application.EnableEvents = False
       ActiveWorkbook.RefreshAll
       Application.EnableEvents = True
       ActiveWorkbook.Save
    End Sub
  4. Hintergrundaktualisierung deaktivieren: Stelle sicher, dass du in den Abfrage-Eigenschaften den Haken bei „Aktualisierung im Hintergrund zulassen“ entfernst.
  5. Speichern und testen: Speichere dein Workbook und teste die Funktionsweise des Makros, um sicherzustellen, dass die Werteformatierungen korrekt beibehalten werden.

Häufige Fehler und Lösungen

  • Problem: Werteformatierungen ändern sich nach der Ausführung von ActiveWorkbook.RefreshAll.

    • Lösung: Deaktiviere die Hintergrundaktualisierung in den Abfrage-Eigenschaften.
  • Problem: Der Refresh-Prozess scheint nicht vollständig abzuschließen, bevor das Workbook gespeichert wird.

    • Lösung: Implementiere eine Wartezeit im Makro, um sicherzustellen, dass der Refresh-Prozess abgeschlossen ist. Beispielsweise:
      Application.Wait Now + TimeValue("00:00:02") ' 2 Sekunden warten

Alternative Methoden

  • Excel Refresh Schaltfläche: Anstatt ein Makro zu verwenden, kannst du die Schaltfläche „Alle aktualisieren“ im Menü „Daten“ nutzen.
  • Verwendung von Shortcuts: Drücke Strg + Alt + F5, um alle Datenquellen manuell zu aktualisieren, ohne VBA zu verwenden.

Praktische Beispiele

  • Beispiel 1: Wenn du ein Arbeitsblatt mit dynamischen Daten hast, kannst du das obige Makro verwenden, um sicherzustellen, dass deine Diagramme immer die aktuellsten Daten anzeigen.

  • Beispiel 2: Ein weiteres Beispiel ist die Verwendung von ThisWorkbook.RefreshAll, um sicherzustellen, dass alle Daten im aktuellen Workbook aktualisiert werden, bevor du sie speicherst.


Tipps für Profis

  • Debugging: Nutze die Debug.Print-Funktion, um zu prüfen, ob dein Makro an der richtigen Stelle funktioniert.

  • Optimierung: Überlege, ob du nur bestimmte Tabellenblätter oder Abfragen aktualisieren möchtest, anstatt alles mit ActiveWorkbook.RefreshAll zu aktualisieren. Dies kann die Performance verbessern.

  • Verwendung von Refresh: Anstelle von RefreshAll kannst du auch spezifische Objekte mit .Refresh aktualisieren, um gezielter zu arbeiten.


FAQ: Häufige Fragen

1. Warum ändern sich die Werteformatierungen nach dem VBA Refresh?
Die Werteformatierungen können sich ändern, wenn die Daten im Hintergrund aktualisiert werden. Stelle sicher, dass die Option „Aktualisierung im Hintergrund zulassen“ deaktiviert ist.

2. Wie kann ich sicherstellen, dass der Refresh abgeschlossen ist, bevor das Workbook gespeichert wird?
Du kannst eine Wartezeit im Code einfügen, um sicherzustellen, dass die Aktualisierung abgeschlossen ist, bevor du das Workbook speicherst.

3. Welche Excel-Version benötige ich für die Nutzung von VBA?
Die Verwendung von VBA ist in Excel 2010 und späteren Versionen verfügbar. Achte darauf, dass die Entwicklertools aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige