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

Forumthread: VBA Externe Dateien automatisch aktualisieren

VBA Externe Dateien automatisch aktualisieren
Thomas
Hallo zusammen.
Ich habe folgende Frage:
Ich habe ein Tabellenblatt, welches externe Daten (txt.files) importiert.
Dieses tut es "halbautomatisch" über Daten_externe Daten importieren_Daten importieren.
Hier besteht ja die Möglichkeit jede Minute die Daten per Abfrage des Files zu importieren. (Per Mausklick)
Da dieses aber "nervig" ist, möchte ich diese Abfrage Automatisieren. Das heißt, letztendlich bekomme ich die Daten "online" in das Tabellenblatt geschrieben, ohne das ich per Mausklick dem Import zustimmen muss.
Besteht die Möglichkeit dieses zu realisieren.
Als Info: Ich kenne mich im VBA ansich nicht aus.
Man müsste mir schon explitit sagen, in welches Modul ich was schreiben muss.
Danke im voraus
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA Externe Dateien automatisch aktualisieren
13.01.2010 08:59:30
Michael
Hallo,
wenn IMMER das gleiche passiert, es IMMER die gleiche Datei ist, dann könnte man das alles der einfachheit halber einfach aufzeichnen.
Über - Extras - Makros Aufzeichnen.
Dann müsste nur noch ein Timer programmiert werden.
Ansonsten sind die Angeben hier ein wenig spärlich um daraus eine Code zu erzeugen.
Gruß
Michael
Anzeige
AW: VBA Externe Dateien automatisch aktualisieren
13.01.2010 09:13:07
Thomas
Hallo und Danke für die schnelle Antwort.
1. Die Daten kommen immer aus der gleichen Datei. Das Textfile bleibt immer das gleiche.
2. Folgendes zum Thema Timer habe ich gelesen: https://www.herber.de/forum/archiv/892to896/t894057.htm
Da steht dann: Hi Rainer,
Versuch mal:
ActiveSheet.QueryTables(1).Refresh BackgroundQuery:=False
in die Routine einzubauen, die jetzt alle 10 Sekunden abläuft. Ev. ActiveSheet. durch Sheets("NameDeinesBlattes"). ersetzten.
Wo genau muss ich dann : ActiveSheet.QueryTables(1).Refresh BackgroundQuery:=False
einbauen. An welcher Stelle des Codes. Wie zu sehen kenne ich mit VBA garnicht aus, ich kämpfe aber und gebe mein bestes. Hangel mich so durch.
Gruss
Anzeige
AW: VBA Externe Dateien automatisch aktualisieren
13.01.2010 10:03:05
Michael
ich habe das so gelöst.
Application.OnTime Now + TimeValue("00:05:00"), "Aenderungdatum_ermitteln"
"Aenderungdatum_ermitteln" ist das Makro das nach 5 min (00:05:00 ) gestartet wird.
TimeValue ist die aktuelle Zeit.
Kannst ja mal die Hilfe zu "OnTime Now" anschauen.
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Externe Daten in Excel automatisch aktualisieren mit VBA


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Neues Modul erstellen: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)", wähle "Einfügen" und dann "Modul".

  3. Code einfügen: Kopiere den folgenden Code in das neu erstellte Modul:

    Sub AutoAktualisieren()
       Application.OnTime Now + TimeValue("00:01:00"), "DatenAktualisieren"
    End Sub
    
    Sub DatenAktualisieren()
       Sheets("NameDeinesBlattes").QueryTables(1).Refresh BackgroundQuery:=False
       AutoAktualisieren
    End Sub

    Ersetze "NameDeinesBlattes" durch den Namen deines Tabellenblattes.

  4. Makro starten: Führe das Makro AutoAktualisieren aus, um die Daten automatisch alle 1 Minute zu aktualisieren. Dies kannst du über F5 im VBA-Editor oder durch das Zuweisen des Makros zu einem Button in Excel tun.

  5. Excel beim Öffnen automatisch aktualisieren: Wenn du möchtest, dass die Daten beim Öffnen der Datei aktualisiert werden, füge den folgenden Code in das ThisWorkbook Modul ein:

    Private Sub Workbook_Open()
       DatenAktualisieren
    End Sub

Häufige Fehler und Lösungen

  • Fehler beim Ausführen des Makros: Stelle sicher, dass das Arbeitsblatt und die QueryTable korrekt benannt sind. Überprüfe auch, ob die Textdatei im richtigen Format vorliegt.
  • Excel hängt sich auf: Wenn du eine sehr große Datei aktualisierst, kann es zu Verzögerungen kommen. Reduziere die Aktualisierungsfrequenz.
  • Automatisches Aktualisieren funktioniert nicht: Überprüfe, ob die Sicherheitsstufe für Makros in Excel so eingestellt ist, dass die Ausführung erlaubt ist.

Alternative Methoden

  • Datenverbindungen verwenden: Statt VBA kannst du auch die Funktion "Daten abrufen" in Excel nutzen. Gehe zu Daten > Daten abrufen > Aus Datei, um eine Datenverbindung herzustellen.
  • Power Query: Nutze Power Query für eine benutzerfreundliche Schnittstelle zur Automatisierung des Importprozesses. Damit kannst du die Datenquelle einstellen und die Abfrage automatisch aktualisieren.

Praktische Beispiele

  1. Aktualisieren von CSV-Dateien: Wenn deine externe Datenquelle eine CSV-Datei ist, kannst du den gleichen Code verwenden, um die Daten regelmäßig zu aktualisieren.
  2. Verknüpfungen zu externen Excel-Dateien: Wenn du Daten aus einer anderen Excel-Datei ziehen möchtest, kannst du die gleiche Logik anwenden, indem du die QueryTable entsprechend anpasst.

Tipps für Profis

  • Verwendung von Variablen: Nutze Variablen für Dateipfade und Blattnamen, um deinen Code flexibler zu gestalten.
  • Debugging: Verwende Debug.Print in deinem Code, um zu prüfen, ob bestimmte Teile des Codes wie gewünscht ausgeführt werden.
  • Benutzerdefinierte Fehlermeldungen: Implementiere Fehlerbehandlungsroutinen, um spezifische Meldungen anzuzeigen, wenn etwas schiefgeht.

FAQ: Häufige Fragen

1. Wie kann ich die Aktualisierungshäufigkeit ändern?
Ändere den Wert in TimeValue("00:01:00") auf die gewünschte Zeitspanne (z.B. TimeValue("00:05:00") für alle 5 Minuten).

2. Kann ich mehrere Datenquellen gleichzeitig aktualisieren?
Ja, du kannst mehrere QueryTables.Refresh-Aufrufe in der DatenAktualisieren-Subroutine hinzufügen, um mehrere Datenquellen zu aktualisieren.

3. Funktioniert das auch ohne VBA?
Ja, du kannst auch die integrierten Excel-Funktionen zur Datenaktualisierung nutzen, aber die Automatisierung mit VBA bietet mehr Flexibilität und Kontrolle.

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