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

Kommaproblem CSV-Datei

Kommaproblem CSV-Datei
23.07.2020 13:19:11
Sonnenfreund
Hallo,
ich habe im Netz einen Code gefunden, der es ermöglicht, automatisch das erste Blatt aus einer CSV-Datei aus einem Verzeichnis in ein neues Excel-Blatt zu überführen.
Soweit funktioniert das auch.
Mein Problem ist, dass sobald in der CSV-Datei in einer Zelle ein Komma auftaucht, werden die weiteren Zellen in der Zeile nicht mehr kopiert. Die darauffolgenden Zeilen werden, sofern kein Komma in einer Zelle auftaucht, vollständig kopiert.
Die CSV-Dateien werden automatisch durch ein Programm erzeugt und auf das Verwenden der Kommata habe ich keinen Einfluss...
Kann mir jemand sagen, was ich an dem folgenden Code ändern muss, damit die Zeile trotz Komma vollständig kopiert wird?
Option Explicit
' ********************************************************************************************** _
' Autor/en: http://www.online-vba.de
- Marc Wershoven
' Verwendung der Quelltexte auf eigene Gefahr!
' Es gelten die Nutzungsbedingungen von www.online-vba.de!
' Original-Quelltext: www.online-vba.de/vba_datensammeln3.php
' ********************************************************************************************** _
'Hinweise: Die Zieldatei darf nicht im gleichen Verzeichnis sein, wie die einzulesenden Dateien. _
'Das Beispielmakro importiert immer das erste Arbeitsblatt von allen Dateien, die im
'angegebenen Verzeichnis enthalten sind. Diese Arbeitsblätter werden in die Arbeitsmappe eingefü _
gt,
'in der sich das folgende Makro befindet und gestartet wird.
'Die einzulesenden Dateien müssen geschlossen sein.
Sub MWSheetsAusMehrerenDateienEinlesen()
Dim oTargetBook As Object
Dim oSourceBook As Object
Dim sPfad As String
Dim sDatei As String
Application.ScreenUpdating = False 'Das "Flackern" ausstellen
Application.DisplayAlerts = False 'Keine Fehlermeldungen anzeigen
'Schritt 1: Arbeitsmappe festlegen, in die die neuen Sheets eingefügt werden...
Set oTargetBook = ActiveWorkbook
'Wichtiger Hinweis: Die Arbeitsblätter dürfen nicht vorhanden sein!
'Alternativer Umbau: Löschen evtl. bereits vorhandener Arbeitsblätter
'Schritt 2: Schleife über alle Excel Dateien in einem Verzeichnis
sPfad = "Pfad"                                                                              _
'ich habe hier nur exemplarisch den Pfad angegeben
sDatei = Dir(CStr(sPfad & "*.csv")) 'Alle Excel Dateien
Do While sDatei  ""
'Schritt 3: öffnen der Datei und Datenübertragung
Set oSourceBook = Workbooks.Open(sPfad & sDatei, False, 5) 'nur lesend öffnen
'Es wird immer das erste Tabellenblatt Sheets(1) kopiert!
oSourceBook.Sheets(1).Copy after:=oTargetBook.Sheets(oTargetBook.Sheets.Count)
'Es wird versucht den Dateinamen als Arbeitsblattnamen zu setzen.
'Ist dieser bereits vorhanden wird der Fehler abgefangen und das neue Blatt
'bekommt keinen anderen Namen und behält den typischen Namen Tabelle x
On Error Resume Next
'Arbeitsblattname wird der Dateiname
oTargetBook.Sheets(oTargetBook.Sheets.Count).Name = sDatei
'Wenn ein Fehler aufgetreten ist, wird dieser resettet
If Err.Number  0 Then
Err.Number = 0
Err.Clear
End If
On Error GoTo 0
'Schritt 4: Datei wieder zu machen und nächste Schleifenrunde
oSourceBook.Close False 'nicht speichern
'Nächste Datei
sDatei = Dir()
Loop
Application.ScreenUpdating = True 'Das Bildschirm-Aktualisieren wieder einschalten
Application.DisplayAlerts = True 'Fehlermeldungen wieder anzeigen
'Kleine finale Fertig-Meldung
MsgBox "Fertig!", vbInformation + vbOKOnly, "Hinweis!"
'Variablen aufräumen
Set oTargetBook = Nothing
Set oSourceBook = Nothing
End Sub
Vielen Dank!

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kommaproblem CSV-Datei, Beispieldatei...
23.07.2020 16:45:01
EtoPHG
der CSV Datei, sollte besser helfen, um den Code und das Problem zu verstehen.
Also zippe eine Beispielmappe mit dem Code und eine CSV-Datei, in der das Problem auftritt und lade die Zip-Datei ins Forum.
Gruess Hansueli
AW: Kommaproblem CSV-Datei, Beispieldatei...
23.07.2020 17:12:19
Sonnenfreund
Alles klar,
mache ich dann morgen, da ich die Daten der CSV-Datei erst noch anonymisieren muss ;)
AW: Kommaproblem CSV-Datei, Beispieldatei...
24.07.2020 12:22:41
Sonnenfreund
Guten Tag,
Daniel auch dir Danke für deine Antwort, das Öffnen soweit ist auch nicht das Problem.
Ich habe eine exemplarische CSV-Datei und die Excel-Datei gezippt:
https://www.herber.de/bbs/user/139274.zip
Im Code müsste dann noch der Pfad der CSV-Datei geändert werden und beide Dateien dürfen nicht im gleichen Verzeichnis liegen (aber über rekursive Schleifen brauche ich euch ja nix sagen :D)
Der Knackpunkt ist das Komma in den Zellen N3 und T4 der CSV-Datei...
Anzeige
AW: Kommaproblem CSV-Datei, Beispieldatei...
24.07.2020 12:39:27
peterk
Hallo
Gib die 4 (Semikolon) noch als Parameter mit

Set oSourceBook = Workbooks.Open(sPfad & sDatei, False, True, 4) 'nur lesend öffnen

AW: Kommaproblem CSV-Datei, Beispieldatei...
24.07.2020 12:52:31
Sonnenfreund
Danke peterk,
ich glaube wegen der Unübersichtlichkeit meiner Originaldaten habe ich übersehen, dass die Daten, die fehlen, in der folgenden Spalte standen...
Sorry
AW: Kommaproblem CSV-Datei
23.07.2020 17:35:49
Daniel
HI
mal so auf die schnelle:
bei CSV-Dateien gibt es deutsche CSVs mit Semikolon als Trennzeichen und amerikanische CSVs mit Komma als Trennzeichen.
Wenn man mit Excel CSV-Dateien öffnet, so richtet sich der automatische Import nach der jeweiligekn Ländereinstellung, dh in Deutschland wird das Semikolon als Trennzeichen angenommen, in den USA das Komma.
wenn man jedoch eine CSV-Datei mit VBA öffnet (Workbooks.Open) so wird unabhängig von der Länderversion immer das Komma als Trennzeichen angenommen, wenn nichts anderes angegeben wird.
möchte man in Deutschland mit VBA eine CSV-Datei öffnen, so muss man angeben dass die Lokalen Einstellungen berücktsichtigt werden sollen, dazu musss man bei Workbooks.Open den Parameter Local:=True mit angeben
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige