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

Forumthread: csv Datei einlesen und nach ; trennen

csv Datei einlesen und nach ; trennen
Einzel
Hallo,
haben ein Code der mir eine CSV Datei öffnet und nach ; trennt. Das hat auch immer funktionirt.
Auf einmal trennt mir der VBA Code aber nicht mehr nach ;. Öffnen geht noch, nur die Trennung ist falsch.
Kann mir jemand sagen wieseo das nicht mehr klappt?
Hier der Code:
Sub Datenimport()
Dim Importdatei$, Verzeichnis$
Verzeichnis = "G:\"
On Error Resume Next
ChDir Verzeichnis
Importdatei = Application.GetOpenFilename("Exceldateien (*.csv), *.csv")
Application.ScreenUpdating = False
Workbooks.Open "Protokoll_1.csv", delimiter:=";"
End Sub

MfG
Stephan
Anzeige

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

Betreff
Benutzer
Anzeige
AW: csv Datei einlesen und nach ; trennen
16.11.2009 11:17:28
IngGi
Hallo Stephan,
versuch's mal mit
Workbooks.Open "Protokoll_1.csv", Local:=True
Gruß Ingolf
AW: csv Datei einlesen und nach ; trennen
16.11.2009 20:28:45
Einzel
Ok werde ich Probieren, kann ich leider erst morgen versuchen.
MfG
Stephan
Melde mich dann.
AW: csv Datei einlesen und nach ; trennen
17.11.2009 08:02:55
Einzel
Hallo
ja genau es funktioniert wieder. Erst mal Danke dafür.
Aber was genau ist der Unterschied zwischen
Workbooks.Open "Protokoll_1.csv", delimiter:=";"
Workbooks.Open "Protokoll_1.csv", Local:=True
und warum hat es erst funktioniert und dann nicht mehr?
Für ne weitere Antwort wäre ich sehr dankbar.
MfG
Stephan
Anzeige
AW: csv Datei einlesen und nach ; trennen
17.11.2009 10:04:49
IngGi
Hallo Stephan,
da hat wohl irgendwann jemand einen Parameter zuviel entfernt. Unter dem Parameter Delimiter _ kannst du ein Trennzeichen explizit angeben. Allerdings muss dann auch der Parameter Format auf "Benutzerdefiniert" (=6) gesetzt werden. Also

Workbooks.Open "Protokoll_1.csv", Delimiter:=";", Format:=6
Wenn kein Trennzeichen explizit angegeben ist, gilt das standardmäßige amerikanische Parametertrennzeichen Komma. Es sei denn, der Parameter Local ist auf True gesetzt, dann gilt das standardmäßige Parametertrennzeichen entsprechend der lokalen Einstellungen des Betriebssystems. Wenn dein PC die Regionaleinstellung für Deutschland hat, ist das eben das Semikolon an Stelle des Kommas.
Gruß Ingolf
Anzeige
AW: csv Datei einlesen und nach ; trennen
17.11.2009 11:52:13
Einzel
Super danke, jetzt habe ich es verstanden.
MfG
Stephan

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

CSV-Datei einlesen und nach Semikolon trennen


Schritt-für-Schritt-Anleitung

Um eine CSV-Datei in Excel mit VBA einzulesen und nach dem Semikolon zu trennen, kannst Du den folgenden VBA-Code verwenden:

Sub Datenimport()
    Dim Importdatei As String
    Dim Verzeichnis As String
    Verzeichnis = "G:\" ' Hier das gewünschte Verzeichnis angeben
    On Error Resume Next
    ChDir Verzeichnis
    Importdatei = Application.GetOpenFilename("Exceldateien (*.csv), *.csv")
    Application.ScreenUpdating = False
    Workbooks.Open Importdatei, Delimiter:=";"
End Sub
  1. Verzeichnis anpassen: Stelle sicher, dass Du das Verzeichnis anpasst, in dem sich Deine CSV-Datei befindet.
  2. Dateiauswahl: Mit Application.GetOpenFilename öffnest Du einen Dialog, in dem Du die CSV-Datei auswählen kannst.
  3. CSV-Daten einlesen: Der Befehl Workbooks.Open öffnet die Datei und trennt die Daten nach dem angegebenen Trennzeichen.

Häufige Fehler und Lösungen

  • Fehler: Trennzeichen funktioniert nicht

    • Lösung: Überprüfe, ob Du den Delimiter-Parameter korrekt gesetzt hast. In einigen Fällen kann es hilfreich sein, den Local-Parameter zu verwenden:
      Workbooks.Open Importdatei, Local:=True
  • Fehler: Datei wird nicht gefunden

    • Lösung: Stelle sicher, dass Du den richtigen Dateipfad und Dateinamen in der Variablen Importdatei verwendest.

Alternative Methoden

Wenn Du Schwierigkeiten hast, die CSV-Datei mit VBA zu öffnen, kannst Du auch die Excel-Funktion "Daten importieren" verwenden:

  1. Gehe zu Daten > Aus Text/CSV.
  2. Wähle die gewünschte CSV-Datei aus.
  3. Stelle im Import-Assistenten sicher, dass das Trennzeichen auf Semikolon gesetzt ist.

Diese Methode könnte in Excel 2016 oder anderen Versionen leicht variieren.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die CSV-Datei mit VBA in verschiedenen Szenarien öffnen kannst:

  • CSV-Datei mit Semikolon trennen und speichern:

    Sub CSVSpeichern()
        Dim ws As Worksheet
        Set ws = ThisWorkbook.Sheets("Tabelle1")
        ws.SaveAs "G:\Export.csv", xlCSV, Local:=True
    End Sub
  • CSV-Daten in Excel laden und bearbeiten:

    Sub CSVEinlesen()
        Dim Importdatei As String
        Importdatei = "G:\Protokoll_1.csv"
        Workbooks.Open Importdatei, Delimiter:=";"
    End Sub

Tipps für Profis

  • Verwende On Error Resume Next: Dies kann nützlich sein, um Fehler zu ignorieren, wenn die Datei nicht gefunden wird. Achte jedoch darauf, dass dies auch versteckte Fehler verursachen kann.
  • Parameter anpassen: Experimentiere mit den Parametern Delimiter und Local, um die besten Ergebnisse zu erzielen, abhängig von den regionalen Einstellungen Deines Systems.
  • CSV-Dateien im Batch verarbeiten: Wenn Du mehrere CSV-Dateien einlesen möchtest, kannst Du eine Schleife verwenden, um alle Dateien in einem Verzeichnis zu verarbeiten.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen Delimiter und Local?
Delimiter gibt an, welches Zeichen verwendet wird, um die Daten zu trennen. Local verwendet die regionalen Einstellungen Deines Betriebssystems, um das Standardtrennzeichen festzulegen.

2. Warum funktioniert der VBA-Code manchmal nicht?
Der Code könnte aufgrund von Änderungen in den regionalen Einstellungen, dem Format der CSV-Datei oder fehlerhaften Pfadangaben nicht funktionieren. Überprüfe alle Parameter genau.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige