Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

VBA Abfrage über Daten aus CSV

Forumthread: VBA Abfrage über Daten aus CSV

VBA Abfrage über Daten aus CSV
02.11.2025 20:45:49
Tom
Hallo zusammen,

ich haben diesen Code, damit lade ich eine Datei von CSV rein und anschließend speichere ich die Daten in Eingabe.

Wenn ich diesen Code nochmal laufen lasse kommt eine Fehlermeldung:
Eine Abfrage mit diesem Namen 30.10.2025 ist bereits vorhanden.

Alle Daten sind täglich mit dem Datum in den Ordner mit Datum über CSV abgespeichert.

Jetzt meine zwei Fragen.
Warum kommt diese Fehlmeldung?
Kann ich über Input ein Datum eingeben und dann würde die Datei aus dem Ordner laden?

Ich hoffe ihr könnt mir helfen.
Danke an Alle und einen schönen Sonntag :-)


Sub Makro2()
'
' Makro2 Makro
'

'
ActiveWorkbook.Queries.Add Name:="30 10 2025", Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Quelle = Csv.Document(File.Contents(""M:\Heimat\L\Listen\Auswertung\30.10.2025.csv""),[Delimiter="";"", Columns=30, Encoding=1252, QuoteStyle=QuoteStyle.None])," & Chr(13) & "" & Chr(10) & " #""Geänderter Typ"" = Table.TransformColumnTypes(Quelle,{{""Column1"", type text}, {""Column2"", type text}, {""Column3"", type text}, {""Column4"", type text}, {""" & _
"Column5"", type text}, {""Column6"", type text}, {""Column7"", type text}, {""Column8"", type text}, {""Column9"", type text}, {""Column10"", type text}, {""Column11"", type text}, {""Column12"", type text}, {""Column13"", type text}, {""Column14"", type text}, {""Column15"", type text}, {""Column16"", type text}, {""Column17"", type text}, {""Column18"", type text}" & _
", {""Column19"", type text}, {""Column20"", type text}, {""Column21"", type text}, {""Column22"", type text}, {""Column23"", type text}, {""Column24"", type text}, {""Column25"", type text}, {""Column26"", type text}, {""Column27"", type text}, {""Column28"", type text}, {""Column29"", type text}, {""Column30"", type text}})," & Chr(13) & "" & Chr(10) & " #""Entfernte oberste Zeilen"" = Tab" & _
"le.Skip(#""Geänderter Typ"",3)," & Chr(13) & "" & Chr(10) & " #""Geänderter Typ1"" = Table.TransformColumnTypes(#""Entfernte oberste Zeilen"",{{""Column1"", Int64.Type}, {""Column6"", Int64.Type}, {""Column3"", type datetime}, {""Column4"", type datetime}, {""Column5"", type datetime}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Geänderter Typ1"""
ActiveWorkbook.Worksheets.Add
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""30 10 2025"";Extended Properties=""""" _
, Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [30 10 2025]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "_30_10_2025"
.Refresh BackgroundQuery:=False
End With
Columns("A:AD").Select
Selection.Copy
Sheets("Eingabe").Select
Columns("A:A").Select
ActiveSheet.Paste
Sheets("30 10 2025").Select
Application.CutCopyMode = False
ActiveWindow.SelectedSheets.Delete
End Sub
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Abfrage über Daten aus CSV
02.11.2025 21:14:53
Eifeljoi 5
Hallo

Warum in deiner Excel Version VBA unbedingt??
Bei dir reicht VBA los Power Query, auch wenn man es nicht Profi mäßig kann ist PQ um ein vielfaches leichter und schneller zu lernen als VBA, dies nur als Info.
AW: VBA Abfrage über Daten aus CSV
02.11.2025 21:55:01
Yal
Hallo Tom,

dein Code erzeugt eine Abfrage und ein Arbeitsblatt und vergibt diesen je einen festen Namen.
Bei Wiederaufrufen wird versucht, eine neue Anfrage mit demselben Namen zu erzeugen, was nicht erlaubt ist. Daher Fehlermeldung.

Auch der Versuch den bereit existierenden Namen einem zweiten Arbeitsblatt nochmal zu vergeben würde zu einem Fehler führen, falls der Code bis dahin laufen würde.

Mit Power Query wird eine Abfrage nur einmal erzeugt und dann immer nur aktualisiert, solang der Name der Quelldatei immer derselben ist. VBA wäre in dem Fall nur gebraucht, um die Daten zu speichern.

VG
Yal

Anzeige
AW: VBA Abfrage über Daten aus CSV
02.11.2025 22:55:42
Tom
Hallo,

wie kann ich das umgehen?

Dankeschööön :-)
AW: VBA Abfrage über Daten aus CSV
03.11.2025 10:42:28
schauan
Hallöchen,

die Frage ist, was Du genau willst. Man kann die Aktion dann z.B. unterbinden. Im Prinzip
Sub TueWas()

'...
'... irgendwelcher code
'...
'Fehlervermeidung
On Error Goto Errorhandler
'... Codezeile, die möglicherweise zum Fehler führt, z.B. DIV/0
Rechne=1/0
'Fehlervermeidung beenden
On Error Goto 0
'...
'... irgendwelcher code
'...
'Makro beenden
Exit Sub
'Fehlerbehandlung
Errorhandler:
'Meldung
"Aktion TueWas konnte nicht ausgeführt werden."
End Sub




Anzeige
AW: ... bei 'Meldung ...
04.11.2025 10:44:26
schauan
... fehlt die MsgBox davor :-) Also, falls es Dich doch interessiert, korrekt ist

'Meldung
MsgBox "Aktion TueWas konnte nicht ausgeführt werden."

Forumthreads zu verwandten Themen