Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1748to1752
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Quellenänderung

VBA Quellenänderung
07.04.2020 07:53:51
Julien
Guten Morgen,
ich nutze ein Makro um eine PowerQuery-Tabelle aus mehreren Arbeitsmappen zu erstellen. Funktioniert auch alles gut, solange ich den Pfad direkt als Quelle eintrage:
Quelle = Folder.Files(""C:\User\Desktop\Beispiel"")
Ich würde den Pfad aber gerne über eine Variable bestimmen. Weise ich einer Variable mit dem Datentyp String exakt den Pfad zu, den ich oben verwende und binde diese ein:
Quelle = Folder.Files(Pfad)
bekomme ich folgenden Fehler:
Laufzeitfehler 1004:
[Expression.Error] Der Import "Pfad" eintspricht keinem Export. Dies ist möglicherweise auf einen fehlenden Modulverweis zurückzuführen.

Ich habe die Quelle auch schon in Anführungszeichen gesetzt: ("Pfad"), bekomme dann jedoch einen Syntaxfehler.
Würde mich sehr freuen, wenn mir jemand bei meinem Problem weiterhelfen kann.
LG

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Quellenänderung
07.04.2020 08:05:38
ChrisL
Hi Julian
Deinen Code kenne ich nicht, darum ein Schuss ins Blaue...
"Quelle = Folder.Files(""""" & strTest & """"")"
cu
Chris
AW: VBA Quellenänderung
07.04.2020 08:14:48
Julien
Hi Chris,
ich hab gerade mal deinen Vorschlag getestet, Ergebnis das selbe.
Ich schicke mal meinen Code mit, auch wenn die Formatierung sehr unübersichtlich ist. Ich markiere aber mal den Part der Quellenänderung:
Sub PowerQueryTableMakro()
' PowerQueryTableMakro Makro
Dim Pfad As String
Pfad = Chr(34) & Chr(34) & "C:\User\Desktop\Beispiel" & Chr(34) & Chr(34)
ActiveWorkbook.Queries.Add Name:="E_Daten_Sammelbecken", Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Quelle = Folder.Files(Pfad)," & Chr(13) & "" & _
Chr(10) & "    #""Hinzugefügte benutzerdefinierte Spalte"" = Table.AddColumn(Quelle, ""Inhalt"", each Excel.Workbook([Content]))," & Chr(13) & "" & Chr(10) & "    #""Erweiterte Inhalt"" = Table.ExpandTableColumn(#""Hinzugefügte benutzerdefinierte Spalte"", ""Inhalt"", {""Name"", ""Data"", ""Item"", ""Kind"", ""Hidden""}, " & _
"{""Inhalt.Name"", ""Inhalt.Data"", ""Inhalt.Item"", ""Inhalt.Kind"", ""Inhalt.Hidden""} _
)," & Chr(13) & "" & Chr(10) & "    #""Hinzugefügte benutzerdefinierte Spalte1"" = Table.AddColumn(#""Erweiterte Inhalt"", ""Benutzerdefiniert"", each Table.PromoteHeaders([Inhalt.Data]))," & Chr(13) & "" & Chr(10) & "    #""Erweiterte Benutzerdefiniert"" = Table.ExpandTableColumn(#""Hinzugefügte benutzerdefinierte Spalte1"", ""Benutze" & _
"rdefiniert"", {""Ortskennzeichen"", ""Orts-/ Hauptschalterbezeichnung"", ""abweichende  _
Netzspannung"", ""gesamte Schrankbreite [mm]"", ""Schrankhöhe [mm]"", ""Schranktiefe [mm]"", ""Schranksockel [mm]"", ""Aufbau des Schaltschrankes in Feldern"", ""Position Einspeisung x-te Tür von links"", ""Nennstrom der Einspeisung"", ""Hauptschalter Nennstrom"", ""Vorsicherung E" & _
"inspeisung (minimal)"", ""Vorsicherung Einspeisung (maximal) "", ""Anzahl Phase x  _
Leiter x  min - max Querschnitt"", ""Neutralleiter erforderlich?"", ""Kann Neutralleiter auf 1/2 Phase reduziert werden?"", ""Anzahl Leiter  x min - max Querschnitt für N"", ""Kann der PE auf 1/2 Phase reduziert werden?"", ""Anzahl x min - max Querschnitt für PE"", ""Wirkleistung [kW]" & _
""", ""Scheinleistung [kVA]"", ""Cos Phi"", ""Verlustleistung [kW]"", ""RF Auftrags-Nr." _
", ""Lieferant"", ""Ersteller"", ""Komponente"", ""Datum"", ""Status"", ""Spannung [V]"", ""Frequenz [Hz]""}, {""Ortskennzeichen"", ""Orts-/ Hauptschalterbezeichnung"", ""abweichende Netzspannung"", ""gesamte Schrankbreite [mm]"", ""Schrankhöhe [mm]"", ""Schranktiefe [mm]"", ""Sch" & _
"ranksockel [mm]"", ""Aufbau des Schaltschrankes in Feldern"", ""Position Einspeisung x- _
te Tür von links"", ""Nennstrom der Einspeisung"", ""Hauptschalter Nennstrom"", ""Vorsicherung Einspeisung (minimal)"", ""Vorsicherung Einspeisung (maximal) "", ""Anzahl Phase x Leiter x  min - max Querschnitt"", ""Neutralleiter erforderlich?"", ""Kann Neutralleiter auf 1/2 Phase " & _
"reduziert werden?"", ""Anzahl Leiter  x min - max Querschnitt für N"", ""Kann der PE  _
auf 1/2 Phase reduziert werden?"", ""Anzahl x min - max Querschnitt für PE"", ""Wirkleistung [kW]"", ""Scheinleistung [kVA]"", ""Cos Phi"", ""Verlustleistung [kW]"", ""RF Auftrags-Nr."", ""Lieferant"", ""Ersteller"", ""Komponente"", ""Datum"", ""Status"", ""Spannung [V]"", ""Frequen" & _
"z [Hz]""})," & Chr(13) & "" & Chr(10) & "    #""Entfernte Spalten"" = Table. _
RemoveColumns(#""Erweiterte Benutzerdefiniert"",{""Content"", ""Name"", ""Extension"", ""Date accessed"", ""Date modified"", ""Date created"", ""Attributes"", ""Folder Path"", ""Inhalt.Name"", ""Inhalt.Data"", ""Inhalt.Item"", ""Inhalt.Kind"", ""Inhalt.Hidden""})," & Chr(13) & "" & Chr(10) & "    #""Gefilterte Zeilen"" = Table.SelectRows(#""Entfe" & _
"rnte Spalten"", each [Ortskennzeichen]  null and [Ortskennzeichen]  """")," & Chr( _
13) & "" & Chr(10) & "    #""Geänderter Typ"" = Table.TransformColumnTypes(#""Gefilterte Zeilen"",{{""Wirkleistung [kW]"", Int64.Type}, {""Scheinleistung [kVA]"", Int64.Type}, {""Datum"", type date}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Geänderter Typ"""
Sheets.Add After:=ActiveSheet
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location= _
E_Daten_Sammelbecken;Extended Properties=""""" _
, Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [E_Daten_Sammelbecken]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = False
.ListObject.DisplayName = "E_Daten_Sammelbecken"
.Refresh BackgroundQuery:=False
End With
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
End Sub

Anzeige
AW: VBA Quellenänderung
07.04.2020 08:50:34
ChrisL
Hi
funktioniert...
ActiveWorkbook.Queries.Add Name:="E_Daten_Sammelbecken", Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Quelle = Folder.Files(""""" & Pfad & """"")," & Chr(13)
cu
Chris
AW: VBA Quellenänderung
07.04.2020 09:13:55
Julien
Erstmal vielen Dank für deine Mühe, hattest recht, habe 4x " anstatt 5x verwendet gehabt.
Jetzt kommt aber direkt der nächste Fehler:
[Expression.Error] Der Name "Source" wurde nicht erkannt. Ist er richtig geschrieben.
Habe dann in die PowerQuery Abfrage geguckt und diese sagt mir:
Expression.SyntaxError: Erwartetes Token: Comma.
let
Quelle = Folder.Files(""C:\User\Desktop\Beispiel,
#""Hinzugefügte benutzerdefinierte Spalte"" = Table.AddColumn(Quelle, ""Inhalt"",  _
each Excel.Workbook([Content]))," & Chr(13) & "" & Chr(10) & "    #""Erweiterte Inhalt"" = Table.ExpandTableColumn(#""Hinzugefügte benutzerdefinierte Spalte"", ""Inhalt"", {""Name"", ""Data"", ""Item"", ""Kind"", ""Hidden""}, " & _
"{""Inhalt.Name"", ""Inhalt.Data"", ""Inhalt.Item"", ""Inhalt.Kind"", ""Inhalt.Hidden""} _
_
)," & Chr(13) & "" & Chr(10) & "    #""Hinzugefügte benutzerdefinierte Spalte1"" = Table. _
AddColumn(#""Erweiterte Inhalt"", ""Benutzerdefiniert"", each Table.PromoteHeaders([Inhalt.Data]))," & Chr(13) & "" & Chr(10) & "    #""Erweiterte Benutzerdefiniert"" = Table.ExpandTableColumn(#""Hinzugefügte benutzerdefinierte Spalte1"", ""Benutze" & _
"rdefiniert"", {""Ortskennzeichen"", ""Orts-/ Hauptschalterbezeichnung"", ""abweichende  _
_
Netzspannung"", ""gesamte Schrankbreite [mm]"", ""Schrankhöhe [mm]"", ""Schranktiefe [mm]"", "" _
Schranksockel [mm]"", ""Aufbau des Schaltschrankes in Feldern"", ""Position Einspeisung x-te Tür von links"", ""Nennstrom der Einspeisung"", ""Hauptschalter Nennstrom"", ""Vorsicherung E" & _
"inspeisung (minimal)"", ""Vorsicherung Einspeisung (maximal) "", ""Anzahl Phase x  _
Leiter x  min - max Querschnitt"", ""Neutralleiter erforderlich?"", ""Kann Neutralleiter auf 1/ _
2 Phase reduziert werden?"", ""Anzahl Leiter  x min - max Querschnitt für N"", ""Kann der PE auf 1/2 Phase reduziert werden?"", ""Anzahl x min - max Querschnitt für PE"", ""Wirkleistung [kW]" & _
""", ""Scheinleistung [kVA]"", ""Cos Phi"", ""Verlustleistung [kW]"", ""RF Auftrags-Nr." _
_
", ""Lieferant"", ""Ersteller"", ""Komponente"", ""Datum"", ""Status"", ""Spannung [V]"", "" _
Frequenz [Hz]""}, {""Ortskennzeichen"", ""Orts-/ Hauptschalterbezeichnung"", ""abweichende Netzspannung"", ""gesamte Schrankbreite [mm]"", ""Schrankhöhe [mm]"", ""Schranktiefe [mm]"", ""Sch" & _
"ranksockel [mm]"", ""Aufbau des Schaltschrankes in Feldern"", ""Position Einspeisung x- _
_
te Tür von links"", ""Nennstrom der Einspeisung"", ""Hauptschalter Nennstrom"", ""Vorsicherung  _
Einspeisung (minimal)"", ""Vorsicherung Einspeisung (maximal) "", ""Anzahl Phase x Leiter x  min - max Querschnitt"", ""Neutralleiter erforderlich?"", ""Kann Neutralleiter auf 1/2 Phase " & _
"reduziert werden?"", ""Anzahl Leiter  x min - max Querschnitt für N"", ""Kann der PE   _
_
auf 1/2 Phase reduziert werden?"", ""Anzahl x min - max Querschnitt für PE"", ""Wirkleistung [ _
kW]"", ""Scheinleistung [kVA]"", ""Cos Phi"", ""Verlustleistung [kW]"", ""RF Auftrags-Nr."", ""Lieferant"", ""Ersteller"", ""Komponente"", ""Datum"", ""Status"", ""Spannung [V]"", ""Frequen" & _
"z [Hz]""})," & Chr(13) & "" & Chr(10) & "    #""Entfernte Spalten"" = Table. _
RemoveColumns(#""Erweiterte Benutzerdefiniert"",{""Content"", ""Name"", ""Extension"", ""Date  _
accessed"", ""Date modified"", ""Date created"", ""Attributes"", ""Folder Path"", ""Inhalt.Name"", ""Inhalt.Data"", ""Inhalt.Item"", ""Inhalt.Kind"", ""Inhalt.Hidden""})," & Chr(13) & "" & Chr(10) & "    #""Gefilterte Zeilen"" = Table.SelectRows(#""Entfe" & _
"rnte Spalten"", each [Ortskennzeichen]  null and [Ortskennzeichen]  """")," & Chr(  _
_
13) & "" & Chr(10) & "    #""Geänderter Typ"" = Table.TransformColumnTypes(#""Gefilterte Zeilen" _
",{{""Wirkleistung [kW]"", Int64.Type}, {""Scheinleistung [kVA]"", Int64.Type}, {""Datum"", type date}})
in
#"Geänderter Typ" 
Bis zu diesem Punkt scheint er zu kommen und die Quelle verwendet er auch entsprechend der Variable,
doch nun soll ich irgendwo ein Komma hinzufügen..
Anzeige
AW: VBA Quellenänderung
07.04.2020 10:44:13
ChrisL
Hi
Das fehlende Komma kann ich dir auf die Schnelle auch nicht suchen.
Du müsstest den Textstring mal ausgeben und mit dem Originaltext vergleichen. Z.B. Druck ins Direktfenster...
debug.print "Textstring"
Oder man kürzt den Textstring zeilenweise und testet immer wieder.
cu
Chris
AW: VBA Quellenänderung
07.04.2020 14:54:14
Julien
Habs gelöst bekommen. Nachdem ich im erweiterten Editor des PowerQuery-Tools mal genauer hingeschaut habe, war das einlesen der Quelle wohl das Problem. Gelöst habe ich es wie folgt:
Pfad = Chr(34) & strPfad & Chr(34)
If Not strPfad = "" Then
ActiveWorkbook.Queries.Add Name:="E_Daten_Sammelbecken", Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Quelle = Folder.Files(" & Pfad & "),
Vielen Dank für die Hilfe!
Anzeige
String im String Beispiele
07.04.2020 16:48:31
ChrisL
Hi Julien
Danke für die Rückmeldung und Lösung (die du hauptsächlich selber erarbeitet hast).
Nicht dass es jetzt noch relevant wäre, aber hier ein paar Beispiele fürs allgemeine Verständnis.
Resultat:
Ein Test String
Dim x As String
x = "Ein Test String"
MsgBox x
Resultat:
Ein "Test" String
Dim x As String
x = "Ein ""Test"" String"
MsgBox x
Resultat:
Ein Test String
Dim x As String, y As String
y = "Test"
x = "Ein " & y & " String"
MsgBox x
Resultat:
Ein "Test" String
Dim x As String, y As String
y = "Test"
x = "Ein """ & y & """ String"
MsgBox x
Resultat:
Ein ""Test"" String
Dim x As String, y As String
y = "Test"
x = "Ein """"" & y & """"" String"
MsgBox x

N.b. ich hatte ursprünglich angenommen, dass du ein Resultat mit zwei Anführungszeichen brauchst. Daher mein Vorschlag mit 5 Gänsefüssen.
cu
Chris
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige