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

Forumthread: Blätter aktualisieren nach ".RefreshAll

Blätter aktualisieren nach ".RefreshAll
31.03.2020 15:10:40
Gode
Hallo,
ich habe eine etwas merkwürdige Frage.
Ich habe eine Excel-Datei, die über mehrere Datenquellen (txt-Files) Daten in den einzelnen Arbeitsblättern aktualisiert.
Im Makro erfolgt dieser erste Schritt über
ActiveWorkbook.RefreshAll

Danach werden die Daten im Makro noch weiterverarbeitet, was mir in der Makro-Ausführung Probleme (Laufzeitfehler) bereitet (ABER: nicht wenn ich im Editor die Makro-Schritte einzeln durchgehe) .
Kann es sein, dass nach dem "RefreshAll" die Blätter noch nicht wirklich aktualisiert sind?
Vielleicht eines noch:
Auf dem Hauptblatt (ca. 10000 Zeilen) werden manche Spalten über SVERWEIS aus anderen Blättern ermittelt.
Ich kann das Aktualisieren und die Verarbeitung natürlich auf 2 Makro-Abrufe verteilen ... würde dennoch lieber das Ganze über einen Abruf verarbeiten.
Hat hier jemand eine Idee?
Gruß
Gode
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Blätter aktualisieren nach ".RefreshAll
31.03.2020 15:39:36
Charly
Hallo Gode
Versuch mal ...
Nimm mal den Haken bei "Im Hintergrund aktualisieren" bei allen Abfragen raus.
Gruss Charly
AW: Blätter aktualisieren nach ".RefreshAll
31.03.2020 16:24:32
Gode
Hallo Charly,
krass ... das war's tatsächlich.
Makro läuft jetzt anstandslos durch.
Kannst du evtl. kurz erläutern, was das bewirkt, bzw. warum es Probleme gibt, wenn diese Option aktiviert ist?
Also, vielen Dank nochmal!!
Gruß
Gode
Anzeige
AW: Blätter aktualisieren nach ".RefreshAll
31.03.2020 16:40:29
Charly
Hallo Gode
Wenn Aktualisieren im Hintergrund deaktiviert ist,
werden die Abfragen nacheinander ausgefuerhrt und dann der Code.
Wie der Ablauf ist wenn es nicht deaktiviert ist weiss ich auch nicht.
Warscheinlich sind die Abfragen noch nicht fertig und der Code startet schon.
Gruss Charly
Anzeige
AW: Blätter aktualisieren nach ".RefreshAll
31.03.2020 16:55:24
Gode
Hallo,
"Warscheinlich sind die Abfragen noch nicht fertig und der Code startet schon".
Das scheint wohl in der Tat so zu sein!
Also vielen Dank nochmal für deine Hilfe!
Gruß
Gode
Danke fuer die Rueckmeldung owT
31.03.2020 17:46:20
Charly
;
Anzeige
Anzeige

Infobox / Tutorial

Blätter aktualisieren mit .RefreshAll in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Datei, in der Du die Daten aktualisieren möchtest.

  2. Aktiviere den VBA-Editor durch Drücken von ALT + F11.

  3. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject" > Einfügen > Modul.

  4. Gib den folgenden Code ein, um alle Datenquellen zu aktualisieren:

    Sub Aktualisieren()
        ActiveWorkbook.RefreshAll
    End Sub
  5. Führe das Makro aus: Drücke F5 oder gehe zu "Ausführen" > "Sub/UserForm ausführen".

  6. Überprüfe die Daten in den Arbeitsblättern, um sicherzustellen, dass die Aktualisierung erfolgreich war.

Wenn Du bemerkst, dass die Verarbeitung danach immer noch Probleme bereitet, könnte das an der Einstellung "Im Hintergrund aktualisieren" liegen.


Häufige Fehler und Lösungen

  • Fehler: Laufzeitfehler nach RefreshAll

    • Lösung: Deaktiviere die Option "Im Hintergrund aktualisieren". Gehe zu den Abfrageeinstellungen und entferne den Haken.
  • Fehler: Daten werden nicht korrekt aktualisiert

    • Lösung: Stelle sicher, dass alle Datenquellen korrekt verbunden sind und die Abfragen nacheinander ausgeführt werden.

Alternative Methoden

  • Manuelles Aktualisieren: Klicke auf die Registerkarte "Daten" und wähle "Alle Aktualisieren".
  • Automatisches Aktualisieren beim Öffnen: Füge diesen Code in das ThisWorkbook-Modul ein:

    Private Sub Workbook_Open()
        ThisWorkbook.RefreshAll
    End Sub

Diese Methoden können nützlich sein, wenn Du häufig mit großen Datenmengen arbeitest und Deine Arbeitsblätter regelmäßig aktualisieren musst.


Praktische Beispiele

  1. Aktualisieren von Daten aus einer CSV-Datei:

    • Füge die CSV-Datei als Datenquelle hinzu und verwende ActiveWorkbook.RefreshAll, um die Daten zu aktualisieren.
  2. Verwendung von SVERWEIS:

    • Wenn Du SVERWEIS verwendest, stelle sicher, dass die Daten in den referenzierten Blättern vor der Verwendung aktualisiert wurden.

Tipps für Profis

  • Nutze DoEvents, um sicherzustellen, dass Excel Zeit hat, alle Daten zu aktualisieren, bevor der Code weiter ausgeführt wird:

    ActiveWorkbook.RefreshAll
    DoEvents
  • Überwache die Aktualisierungszeit, um die Effizienz Deines Makros zu steigern, besonders wenn Du mit großen Datenmengen arbeitest (z. B. Zahlenraum bis 10000 Arbeitsblätter).


FAQ: Häufige Fragen

1. Warum geschieht ein Laufzeitfehler nach dem Ausführen von .RefreshAll? Es kann sein, dass Excel die Daten noch nicht vollständig aktualisiert hat, bevor der nächste Code ausgeführt wird. Deaktiviere "Im Hintergrund aktualisieren".

2. Wie kann ich sicherstellen, dass alle Datenquellen aktualisiert werden? Stelle sicher, dass alle Verbindungen korrekt eingerichtet sind und führe ActiveWorkbook.RefreshAll aus. Achte darauf, dass alle Abfragen nacheinander bearbeitet werden.

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