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

Forumthread: VBA - Power Query neue Quellen zuweisen

VBA - Power Query neue Quellen zuweisen
17.04.2020 13:10:10
Tom
Hallo zusammen,
ich habe ein kleines Problemchen und hoffe, dass hier jemand eine schlaue Lösung hat. Ich habe eine Excel Datei, in der mehrere Blätter vorhanden sind. In jedem Blatt befindet sich eine Power Query Tabelle, sonst nichts. Die PQ-Tabellen wurden alle über Daten, Neue Abfrage, Aus Datei, Aus Text eingefügt.
Jede dieser PQ-Tabellen hat nun eine Quelle, unter der die zugehörige Datei gespeichert ist. Ich benötige nun einen VBA-Code, der diese Quellenangabe ändern kann. Der Code sollte wie folgt ablaufen:
1.) Neuer Ordner auswählen
2.) Quellenangabe der ersten Textdatei in dem neuen Ordner durch die alte Quellenangabe in der PQ-Tabelle ersetzten
3.) Schritt 2 für alle Textdateien wiederholen
Die Excel Tabelle hat genau so viele PQ-Tabellen, wie Daten in dem neuen Ordner sind. Es geht sich also genau aus. Da es leider sehr viele PQ-Tabellen sind und somit auch viele Daten, ist es leider etwas zu aufwändig um jede Datenquelle von Power Query zu ändern.
Hat zufällig irgendwer eine Lösung hierfür? Ich wäre euch wirklich so dankbar, wenn ihr mir weiter helfen könntet!
Ich wünsche euch noch einen wunderschönen Tag.
Grüße,
Tom
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Power Query neue Quellen zuweisen
17.04.2020 18:55:17
ChrisL
Hi Tom
Vielleicht hilft einer Ordnerabfrage:
https://www.youtube.com/watch?v=NY3m_nLGuTg
cu
Chris
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Power Query Datenquelle mit VBA ändern


Schritt-für-Schritt-Anleitung

Um die Power Query Datenquelle über VBA zu ändern, kannst Du folgenden VBA-Code verwenden. Dieser Code ermöglicht es Dir, die Quellenangabe für alle Power Query Tabellen in einer Excel-Datei zu aktualisieren.

  1. Neuen Ordner auswählen: Verwende einen Dialog, um den neuen Ordner auszuwählen.
  2. VBA-Code einfügen: Öffne den VBA-Editor (Alt + F11) und füge den folgenden Code ein:
Sub ChangePowerQuerySource()
    Dim folderPath As String
    Dim query As WorkbookQuery
    Dim oldSource As String
    Dim newSource As String
    Dim fileName As String

    ' Neuen Ordner auswählen
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Wähle einen neuen Ordner"
        If .Show = -1 Then
            folderPath = .SelectedItems(1) & "\"
        Else
            Exit Sub
        End If
    End With

    ' Durchlaufe alle Abfragen in der Arbeitsmappe
    For Each query In ThisWorkbook.Queries
        oldSource = query.Formula
        ' Ersetze die alte Quelle mit der neuen Quelle
        fileName = Mid(oldSource, InStrRev(oldSource, "\") + 1)
        newSource = folderPath & fileName

        ' Aktualisiere die Abfrage
        query.Formula = Replace(oldSource, oldSource, newSource)
    Next query
    MsgBox "Datenquellen wurden erfolgreich aktualisiert!"
End Sub
  1. Code ausführen: Führe den Code aus, um die Quellenangaben in den Power Query Tabellen zu ändern.

Häufige Fehler und Lösungen

  • Fehler: "Der Pfad ist ungültig."

    • Lösung: Stelle sicher, dass der ausgewählte Ordner existiert und die Dateien dort vorhanden sind.
  • Fehler: "Abfrage nicht gefunden."

    • Lösung: Überprüfe, ob die Abfragen korrekt benannt und in der Arbeitsmappe vorhanden sind.
  • Fehler: "Zugriff verweigert."

    • Lösung: Stelle sicher, dass die Excel-Datei nicht schreibgeschützt ist und Du die notwendigen Berechtigungen hast.

Alternative Methoden

Wenn Du keine VBA-Lösung verwenden möchtest, kannst Du auch direkt in Power Query die Datenquelle ändern:

  1. Power Query Editor öffnen: Klicke auf "Daten" und dann auf "Abfragen verwalten".
  2. Datenquelle bearbeiten: Wähle die entsprechende Abfrage aus und klicke auf "Datenquelle ändern".
  3. Neuen Pfad eingeben: Gib den neuen Ordnerpfad ein und bestätige.

Praktische Beispiele

Ein praktisches Beispiel für den VBA-Code könnte so aussehen:

Angenommen, Du hast eine Excel-Datei mit Power Query Abfragen, die auf CSV-Dateien in einem bestimmten Ordner zugreifen. Mit dem obigen VBA-Skript kannst Du den Ordner ändern, ohne jede einzelne Abfrage manuell anzupassen.


Tipps für Profis

  • Backup erstellen: Erstelle immer eine Sicherungskopie Deiner Excel-Datei, bevor Du VBA-Code ausführst.
  • Debugging: Nutze das Debugging-Tool von VBA, um mögliche Fehlerquellen im Code zu identifizieren.
  • Wiederverwendbare Funktionen: Überlege, den VBA-Code in eine wiederverwendbare Funktion umzuwandeln, um ihn in anderen Projekten zu verwenden.

FAQ: Häufige Fragen

1. Wie kann ich die Datenquelle für mehrere Abfragen gleichzeitig ändern? Du kannst den oben genannten VBA-Code verwenden, um alle Abfragen in einer Schleife zu durchlaufen und die Quellenangaben gleichzeitig zu ändern.

2. Funktioniert dieser Code in allen Excel-Versionen? Der VBA-Code sollte in Excel 2016 und späteren Versionen problemlos funktionieren. Stelle sicher, dass die Power Query-Funktion in Deiner Version aktiviert ist.

3. Kann ich den Code anpassen, um spezifische Dateien auszuwählen? Ja, Du kannst den Code anpassen, um spezifische Dateien auszuwählen oder zu filtern, je nach Deinen Bedürfnissen.

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