CSV Semikolon getrennt geht in Tabelle aber nicht korrekt bei Datei Öffnung...
Bei manuellem Aufruf funtioniert die Semicolon-Trennung, bei Datei-Öffnung nicht...
Hallo Zusammen,
ich möchte vorweg erwähnen, daß VBA von mir nur sehr spärlich (1-2 mal im Jahr) benötigt wird, sodas ich nicht über DIE Kenntnisse schlechthin verfüge und deshalb an folgendem Punkt scheitere.
Die ursprüngliche Aufgabenstellung war, einen Macro unter Ecxell 2007 zu schreiben, der es dem User ermöglicht die richtige CSV-Datei zu seinem Dokument zusätzlich zu öffnen und Ihm die Arbeit erleichtern sollte. Leider sind meine User nicht sehr bewandert (z.B. Errormessages mit Ja/Nein-Möglichkeit führen zur Frage "Was muss ich hier machen?") und führten dazu die CSV gleich beim öffnen der XLSM-Datei zu öffnen. Hier liegt nun mein Problem. Was innerhalb der Tabelle manuell noch fehlerfrei möglich war, funktioniert hierbei nicht mehr. Alle Zeilen der CSV werden jeweils ohne Semicolon-Trennung/Zeile dargestellt, wohingegen alle Zellen korrekt bei manuellem Aufruf in der Tabelle angezeigt werden. Der verwendete Sub lautet:
Private Sub Workbook_open()
<Formatvorgaben für die XLSM-Datei>
Workbooks.OpenText Filename:=<Pfad- und Dateiname>
With ActiveSheet
.Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)).TextToColumns _
DataType:=xlDelimited, Semicolon:=True
End With
End Sub
Wie gesagt, bei einem manullem Aufruf funzt es wunderbar, beim "Workbook_open" funktioniert die Semicolon-Trennung nicht mehr.
Irgendwie hab ich hier ein Brett vorm Kopf und hoffe Ihr könnt mir helfen...
Grüße und danke im Vorraus
Alex
Hallo Zusammen,
ich möchte vorweg erwähnen, daß VBA von mir nur sehr spärlich (1-2 mal im Jahr) benötigt wird, sodas ich nicht über DIE Kenntnisse schlechthin verfüge und deshalb an folgendem Punkt scheitere.
Die ursprüngliche Aufgabenstellung war, einen Macro unter Ecxell 2007 zu schreiben, der es dem User ermöglicht die richtige CSV-Datei zu seinem Dokument zusätzlich zu öffnen und Ihm die Arbeit erleichtern sollte. Leider sind meine User nicht sehr bewandert (z.B. Errormessages mit Ja/Nein-Möglichkeit führen zur Frage "Was muss ich hier machen?") und führten dazu die CSV gleich beim öffnen der XLSM-Datei zu öffnen. Hier liegt nun mein Problem. Was innerhalb der Tabelle manuell noch fehlerfrei möglich war, funktioniert hierbei nicht mehr. Alle Zeilen der CSV werden jeweils ohne Semicolon-Trennung/Zeile dargestellt, wohingegen alle Zellen korrekt bei manuellem Aufruf in der Tabelle angezeigt werden. Der verwendete Sub lautet:
Private Sub Workbook_open()
<Formatvorgaben für die XLSM-Datei>
Workbooks.OpenText Filename:=<Pfad- und Dateiname>
With ActiveSheet
.Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)).TextToColumns _
DataType:=xlDelimited, Semicolon:=True
End With
End Sub
Wie gesagt, bei einem manullem Aufruf funzt es wunderbar, beim "Workbook_open" funktioniert die Semicolon-Trennung nicht mehr.
Irgendwie hab ich hier ein Brett vorm Kopf und hoffe Ihr könnt mir helfen...
Grüße und danke im Vorraus
Alex
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 150464
Url: https://administrator.de/forum/csv-semikolon-getrennt-geht-in-tabelle-aber-nicht-korrekt-bei-datei-oeffnung-150464.html
Ausgedruckt am: 26.04.2025 um 02:04 Uhr
3 Kommentare
Neuester Kommentar

Hallo darkunicorn!

Versuchs mal so:
Gruß Dieter
PS.
Sorry, hab's mal getestet und per Makro funktioniert das Workbook.OpenText tatsächlich nicht so wie es soll.
Alternativ sollte aber das funktionieren:
Zitat von @darkunicorn:
Wie gesagt, bei einem manullem Aufruf geht es wunderbar, beim "Workbook_open" funktioniert die Semicolon-Trennung nicht mehr.
Bei dieser seltsamen Syntax kein WunderWie gesagt, bei einem manullem Aufruf geht es wunderbar, beim "Workbook_open" funktioniert die Semicolon-Trennung nicht mehr.
Versuchs mal so:
Private Sub Workbook_Open()
'.....
Workbooks.OpenText Filename:="DateiPfad", DataType:=xlDelimited, Semicolon:=True
'.....
End Sub
Gruß Dieter
PS.
Sorry, hab's mal getestet und per Makro funktioniert das Workbook.OpenText tatsächlich nicht so wie es soll.
Alternativ sollte aber das funktionieren:
Private Sub Workbook_Open()
'.....
Workbooks.OpenText Filename:="DateiPfad"
Columns("A").TextToColumns , DataType:=xlDelimited, Semicolon:=True
'ActiveWorkbook.Saved = True 'Abfrage zum Speichern beim Schließen unterdrücken
'.....
End Sub

Hallo Alex!
Den Import in die Arbeitsmappe würde ich dann in etwa so machen:
Wobei die Sub CsvFileImport auch in einem Modul mit einer Tastenkombination versehen, stehen könnte.
Gruß Dieter
Den Import in die Arbeitsmappe würde ich dann in etwa so machen:
Const ImportSheet = "Tabelle1"
Const ImportDatei = "E:\Test\Import.csv"
Private Sub Workbook_Open()
Call CsvFileImport
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsDialog As Boolean, Cancel As Boolean)
Sheets(ImportSheet).Cells.ClearContents
End Sub
Private Sub CsvFileImport()
Dim Wks As Worksheet
Set Wks = Sheets(ImportSheet)
Wks.Cells.ClearContents
With Wks.QueryTables.Add(Connection:="TEXT;" & ImportDatei, Destination:=Wks.Range("A1"))
.AdjustColumnWidth = True 'Spaltebreite automatisch anpassen
.TextFileParseType = xlDelimited
.TextFileSemicolonDelimiter = True
.Refresh BackgroundQuery:=False
.Delete
End With
End Sub
Gruß Dieter