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

Externe Daten in Sheet per VBA aktualisieren

Forumthread: Externe Daten in Sheet per VBA aktualisieren

Externe Daten in Sheet per VBA aktualisieren
20.08.2003 07:25:42
Frebert
Hallo Exceluser,
in meinem Worksheet befinden sich mehrere Query, die jeweils mit einem rechtsklick und dem Befehl "Daten aktualisieren" auf den neuesten Stand gebracht werden können (ganz normal).
Ich möchte das Ganze jedoch per VBA vereinfachen, indem alle Query automatisch aktualisiert werden.
Der Code:
...
sheets("Tabelle_mit_Query").select
Selection.QueryTable.Refresh BackgroundQuery:=False
...
funktioniert nicht. VBA möchte, dass eine Zelle in solch einem Abfragebereich selektiert ist. Ist dies der Fall, dann wird mit dem o. g. Code nur die Tabelle aktualisiert, in der die eine Zelle selektiert ist.
Ich würde mich über Anregungen oder Hilfen zu dieser Problematik sehr freuen, denn ich bin mit meinem Latein am Ende!
Grüße
Frebert
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Externe Daten in Sheet per VBA aktualisieren
20.08.2003 07:45:34
Reiner Jakubassa
Morgen Frebert,
versuchs doch mal mit:

Sub Query_aktual ()
ActiveWorkbook.RefreshAll
End Sub

Gruss
Reiner

AW: Externe Daten in Sheet per VBA aktualisieren
20.08.2003 08:49:27
Frebert
Hallo Reiner,
danke für den Tipp, wie kann ich jedoch einzelne worksheets refreshen?? Ich steh echt auf der Leitung!
Z. B. sowas wie ActiveSheet.QueryTables.Refresh ?? (funktioniert so aber nicht)
Danke
Grüße
Frebert

Anzeige
Habe Lösung des Problems gefunden
20.08.2003 11:26:39
Frebert
Zur Aktualisierung mehrerer externer Datenbereiche (Query) für Worksheets(i):
For Each qt In ActiveSheet.QueryTables
qt.Refresh (BackgroundQuery)
Next
mfg
Frebert

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Externe Daten in Excel per VBA aktualisieren


Schritt-für-Schritt-Anleitung

Um externe Daten in einem Excel-Arbeitsblatt per VBA zu aktualisieren, kannst Du folgende Schritte befolgen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf VBAProject (DeinWorkbookName), wähle Einfügen und dann Modul.
  3. Gib den Code ein:

    • Verwende den folgenden VBA-Code, um alle QueryTables in einem bestimmten Arbeitsblatt zu aktualisieren:
    Sub Query_Aktualisieren()
       Dim qt As QueryTable
       For Each qt In ActiveSheet.QueryTables
           qt.Refresh BackgroundQuery:=False
       Next qt
    End Sub
  4. Führe das Makro aus:

    • Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle Query_Aktualisieren und klicke auf Ausführen.
  5. Optional: Excel-Button hinzufügen:

    • Du kannst auch einen Button erstellen, um das Makro einfacher auszuführen. Füge den Button über die Entwicklertools hinzu und verknüpfe ihn mit dem Makro.

Häufige Fehler und Lösungen

  • Fehler: "Das Objekt unterstützt diese Eigenschaft oder Methode nicht."

    • Lösung: Stelle sicher, dass Du eine gültige QueryTable im Arbeitsblatt hast. Überprüfe, ob die Datenquelle korrekt eingerichtet ist.
  • Fehler: „Hintergrundaktualisierung nicht möglich.“

    • Lösung: Stelle sicher, dass BackgroundQuery auf False gesetzt ist, um die Aktualisierung im Vordergrund durchzuführen.
  • Fehler: "Zelle in der Abfrage nicht selektiert."

    • Lösung: Stelle sicher, dass Du die richtige Tabelle ausgewählt hast, bevor Du das Makro ausführst.

Alternative Methoden

  • ActiveWorkbook.RefreshAll:

    • Mit dem folgenden Code kannst Du alle QueryTables in allen Arbeitsblättern aktualisieren:
    Sub Alle_Abfragen_Aktualisieren()
       ActiveWorkbook.RefreshAll
    End Sub
  • Power Query verwenden:

    • Um Power Query automatisch zu aktualisieren, kannst Du diesen VBA-Befehl verwenden:
    Sub PowerQuery_Aktualisieren()
       ThisWorkbook.Connections("DeinConnectionName").Refresh
    End Sub

Praktische Beispiele

  1. Aktualisieren eines bestimmten Arbeitsblatts:

    Sub Spezifisches_Arbeitsblatt_Aktualisieren()
       Sheets("Tabelle_mit_Query").Activate
       Dim qt As QueryTable
       For Each qt In ActiveSheet.QueryTables
           qt.Refresh BackgroundQuery:=False
       Next qt
    End Sub
  2. Button zur Aktualisierung:

    • Erstelle einen Button in Excel und verlinke ihn mit dem Makro Query_Aktualisieren, um die Daten bequem zu aktualisieren.

Tipps für Profis

  • Makros automatisieren: Du kannst das Makro so einstellen, dass es beim Öffnen der Arbeitsmappe automatisch ausgeführt wird. Dazu fügst Du den Code in das ThisWorkbook Modul ein.

  • Fehlerbehandlung hinzufügen: Implementiere error handling, um sicherzustellen, dass Dein Makro nicht bei einem Fehler abbricht:

    On Error Resume Next
    ' Dein Code hier
    On Error GoTo 0
  • Verwende Application.ScreenUpdating = False: Dies verbessert die Performance bei der Ausführung Deines Makros, indem es das Bildschirm-Refresh deaktiviert.


FAQ: Häufige Fragen

1. Wie kann ich automatisch aktualisierte Daten in Excel speichern?
Du kannst das Makro so anpassen, dass es den Speicherbefehl ThisWorkbook.Save nach der Aktualisierung ausführt.

2. Funktioniert das Makro in allen Excel-Versionen?
Ja, die meisten VBA-Befehle sind in Excel 2010 und späteren Versionen kompatibel. Stelle jedoch sicher, dass die verwendeten Funktionen in Deiner Version unterstützt werden.

3. Kann ich mehrere Abfragen gleichzeitig aktualisieren?
Ja, mit dem Code ActiveWorkbook.RefreshAll kannst Du alle Abfragen in allen Arbeitsblättern gleichzeitig aktualisieren.

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