Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1804to1808
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

Variabler Pfad im Query

Variabler Pfad im Query
19.01.2021 12:31:33
V.Mendez
Hallo zusammen,
ich benötige Hilfe bei der VBA basierten Imports einer CSV Datei.
Leider streikt der Import immer mit dem Hinweis, dass ein absoluter Pfad angegeben werden muss.
Ich bin am Ende meines Lateins und würde daher eure Hilfe erbitten:
Folgenden Code habe ich erstellt:

Sub Import()
Dim Importdatei As String
Dim path As String
Dim file As Office.FileDialog
Dim objQr
For Each objQr In ThisWorkbook.Queries
objQr.Delete
Next
Set file = Application.FileDialog(msoFileDialogFilePicker)
With file
.Title = "Dateiauswahl"
.Filters.Clear
.Filters.Add "csv", "*.csv"
.Filters.Add "All Files", "*.*"
If .Show = True Then
path = .SelectedItems(1)
Else
Exit Sub
End If
End With
Sheets("Report").Select
Cells.Select
Selection.Delete
ActiveWorkbook.Queries.Add Name:="Report", Formula:= _
"let" & Chr(13) & "" & Chr(10) & "    Quelle = Csv.Document(File.Contents(""path""),[ _
Delimiter="","", Columns=32, Encoding=65001, QuoteStyle=QuoteStyle.None])," & Chr(13) & "" &  _
Chr(10) & "    #""Höher gestufte Header"" = Table.PromoteHeaders(Quelle, [PromoteAllScalars= _
true])," & Chr(13) & "" & Chr(10) & "    #""Geänderter Typ"" = Table.TransformColumnTypes(#""Hö" & _
"her gestufte Header"",{{"""", type text}, {""Serial Number"", Int64.Type}, {""Owner  _
Company Name"", type text}, {""Agreement Number"", Int64.Type}, {""Status"", type text}, {"" _
Agreement Type"", type text}, {""Package"", type text}, {""Service Level"", type text}, {"" _
Services"", type text}, {""Start Date"", type date}, {""End Date"", type date}, {""Installed At Site " & _
"Name"", type text}, {""Group"", type text}, {""Product Number"", type text}, {""System  _
_
_
Name"", type text}, {""Os"", type text}, {""# Of Shelves"", Int64.Type}, {""# Of Disks"", Int64. _
_
Type}, {""Nvram"", Int64.Type}, {""Nvmem"", Int64.Type}, {""Motherboard Memory"", Int64.Type}, { _
""Autosupport Status"", type text}, {""Installed At Address"", type text}, {""City"", typ" & _
"e text}, {""State"", Int64.Type}, {""Postal Code"", Int64.Type}, {""Country"", type  _
text}, {""Contact First Name"", type text}, {""Contact Last Name"", type text}, {""Contact  _
Email"", type text}, {""Agreement Company"", type text}, {""Reseller Company                     _
""," & _
" type text}})," & Chr(13) & "" & Chr(10) & "    #""Entfernte Spalten"" = Table. _
RemoveColumns(#""Geänderter Typ"",{"""", ""Agreement Type"", ""Package"", ""Services"", "" _
Installed At Site Name"", ""Group"", ""System Name"", ""Os"", ""Nvram"", ""Nvmem"", "" _
Motherboard Memory"", ""Autosupport Status"", ""State"", ""Contact First Name"", ""Contact Last Name"", ""Contact Email"", ""Reseller Company" & _
"                                                                                        _
_
_
"", ""Service Level"", ""Status""})," & Chr(13) & "" & Chr(10) & "    _
_
#""Neu angeordnete Spalten"" = Table.ReorderColumns(#""Entfernte Spalten"",{""Owner Company  _
Name"", ""Agreement Number"", ""Serial Number"", ""Start Date"", ""End Date"", ""Product Number"", ""# Of Shelves"", ""#" & _
" Of Disks"", ""Installed At Address"", ""City"", ""Postal Code"", ""Country"", "" _
Agreement Company""})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Neu   _
_
angeordnete Spalten"""
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=Report; _
Extended Properties=""""" _
, Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [Report]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Report"
.Refresh BackgroundQuery:=False
End With
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variabler Pfad im Query
19.01.2021 14:14:32
V.Mendez
Wie bekomme ich es hin, dass der User den Dateipfad selbst auswählen kann?
AW: Variabler Pfad im Query
19.01.2021 14:49:00
ralf_b
entweder du verkettest den Text richtig mit der Path variable
...File.Contents(""" & path & """),[Delimiter="",""....
oder du erzeugt eine parameterabfrage, die z.b. auf eine bestimmte Zelle zugreift.
gruß
rb

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige