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

Forumthread: CSV-Import per code aktualisieren mit vorg. Datei

CSV-Import per code aktualisieren mit vorg. Datei
10.09.2018 17:47:23
Daniel
Hallo
ich habe einen Datenimport aus einer CSV-Datei (Daten - aus Text), diesen als Tabelle formatiert und weitere Spalten hinzugefügt.
jetzt möchte ich diesen Import aktualisieren und dabei die Datei ändern (neue Datei einlesen)
Manuell geht das problemlos über das Kontextmenü und Aktualisieren.
jetzt würde ich aber gerne die Aktualisierung per Makro ausführen lassen und dabei den neuen Dateinamen aus einem String vorgeben.
der Recorder zeichnet mir aber nur auf:

Selection.ListObject.TableObject.Refresh

und wenn ich das ausführe, muss ich den Datennamen von Hand auswählen.
wie kann ich ihm hier den Dateinamen im Code vorgeben, so dass ich nicht durch den Dialog gehen muss?
(später sollen per Schleife eine ganze Reihe von Dateien so eingelesen werden)
Gruß Daniel
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: CSV-Import per code aktualisieren mit vorg. Datei
16.09.2018 16:59:15
Dieter
Hallo Daniel,
die Aktualisierung müsste sich mit dem folgenden Programm machen lassen.
Sub Aktualisierung()
Dim datAlt As String
Dim datNeu As String
Dim qt As QueryTable
Dim wb As Workbook
Dim ws As Worksheet
Dim zf As String
datAlt = "Datei_alt.csv"
datNeu = "Datei_neu.csv"
Set wb = ThisWorkbook
Set ws = wb.Worksheets(1)
Set qt = ws.QueryTables(1)
zf = qt.Connection
If InStr(zf, datAlt) > 0 Then
zf = Replace(zf, datAlt, datNeu)
qt.Connection = zf
End If
Application.SendKeys Keys:="{ENTER}"
qt.Refresh
End Sub
Viele Grüße
Dieter
Anzeige
AW: CSV-Import per code aktualisieren mit vorg. Datei
16.09.2018 18:20:17
Dieter
Hallo Daniel,
ich habe gerade gesehen, dass das auch ohne SendKeys geht. Das ist natürlich eleganter.
Sub Aktualisierung()
Dim datAlt As String
Dim datNeu As String
Dim qt As QueryTable
Dim wb As Workbook
Dim ws As Worksheet
Dim zf As String
datAlt = "Datei_alt.csv"
datNeu = "Datei_neu.csv"
Set wb = ThisWorkbook
Set ws = wb.Worksheets(1)
Set qt = ws.QueryTables(1)
zf = qt.Connection
If InStr(zf, datAlt) > 0 Then
zf = Replace(zf, datAlt, datNeu)
qt.Connection = zf
End If
qt.TextFilePromptOnRefresh = False
qt.Refresh
End Sub
Viele Grüße
Dieter
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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