SCV Protokoll Import Problem
Hallo Leute,
habe ein Problem beim CSV Dateien Import:
der Import an sich klappt bereits, nur werden einige Daten nicht ausgelesen: hier mein Quelltext:
*
Das Problem ist, dass im CSV Protokoll das Tab-Zeichen eine Comma darstellt(glaube ich) und ich nicht weiß, wie ich dieses an das Excel so weiter gebe...d.h., dass im protokol steht z.B:
A1: "Konzentration Behälter 1;0" B1:"726;Einheit;Datum"
importieren tut er folgend: A1:"Konzentration Behälter 1", A2:"0"; A3:"Einheit", A4:"Datum",
Die wichtigste Kenngröße "0,726" wird nicht dargestellt.
Ich bitte um Entschuldigung für die hat fachgemäße Fragestellung, hoffe aber, dass mir jemand dabei helfen könnte.
Mit freundlichen Grüßen
kaban378
habe ein Problem beim CSV Dateien Import:
der Import an sich klappt bereits, nur werden einige Daten nicht ausgelesen: hier mein Quelltext:
*
Sub ImportiereCSVDateien()
Const CSVPFAD = "C:\Users\Brakk\Desktop\Test\Daten"
Dim wbTarget As Workbook, wbSource As Workbook, ws As Worksheet, curCell As Range
Set fso = CreateObject("Scripting.Filesystemobject")
Set wbTarget = ThisWorkbook
Application.DisplayAlerts = False
Application.ScreenUpdating = False
'Lösche alle Worksheets bevor wir alle neu anlegen
While wbTarget.Worksheets.Count > 1
wbTarget.Worksheets(1).Delete
Wend
wbTarget.Worksheets(1).Name = "Zusammenfassung"
wbTarget.Worksheets(1).Range("A:ZZ").Clear
For Each f In fso.GetFolder(CSVPFAD).Files
If LCase(fso.GetExtensionName(f.Name)) = "csv" Then
Workbooks.OpenText Filename:=f.Path
Set wbSource = ActiveWorkbook
On Error Resume Next
Set ws = wbTarget.Worksheets.Add(After:=wbTarget.Sheets(wbTarget.Sheets.Count))
ws.Name = f.Name
ws.Range("A:ZZ").Clear
wbSource.Worksheets(1).Range("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Semicolon:=True, TrailingMinusNumbers:=True
wbSource.Worksheets(1).UsedRange.Copy Destination:=ws.Range("A1")
wbSource.Close False
End If
Next
With wbTarget.Worksheets("Zusammenfassung")
Set curCell = .Range("B1")
For i = 2 To wbTarget.Worksheets.Count
'Inhalt der CSV in das Zusammenfassungs-Sheet kopieren
wbTarget.Sheets(i).UsedRange.Copy Destination:=curCell
wbTarget.Sheets(i).UsedRange.Copy
'Name der Quelle in Spalte A schreiben
curCell.Offset(0, -1).Value = wbTarget.Sheets(i).Name
'Zelle für nächsten Import setzen
Set curCell = curCell.Offset(wbTarget.Sheets(i).UsedRange.Rows.Count + 2, 0)
Next
'Spaltengröße im Zusammenfassungssheet automatisch anpassen
.UsedRange.EntireColumn.AutoFit
.Select
End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox "Vorgang beendet!", vbInformation
Set fso = Nothing
End Sub
Das Problem ist, dass im CSV Protokoll das Tab-Zeichen eine Comma darstellt(glaube ich) und ich nicht weiß, wie ich dieses an das Excel so weiter gebe...d.h., dass im protokol steht z.B:
A1: "Konzentration Behälter 1;0" B1:"726;Einheit;Datum"
importieren tut er folgend: A1:"Konzentration Behälter 1", A2:"0"; A3:"Einheit", A4:"Datum",
Die wichtigste Kenngröße "0,726" wird nicht dargestellt.
Ich bitte um Entschuldigung für die hat fachgemäße Fragestellung, hoffe aber, dass mir jemand dabei helfen könnte.
Mit freundlichen Grüßen
kaban378
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 348739
Url: https://administrator.de/forum/scv-protokoll-import-problem-348739.html
Ausgedruckt am: 18.05.2025 um 18:05 Uhr
14 Kommentare
Neuester Kommentar
Hallo
Probier mal in der Zeile 22
durch
zu ersetzen (ungetestet)
Gruss
Probier mal in der Zeile 22
wbSource.Worksheets(1).Range("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Semicolon:=True, TrailingMinusNumbers:=True
durch
wbSource.Worksheets(1).Range("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=True, Space:=False, Other:=False, TrailingMinusNumbers:=True
zu ersetzen (ungetestet)
Gruss

A1: "Konzentration Behälter 1;0" B1:"726;Einheit;Datum"
importieren tut er folgend: A1:"Konzentration Behälter 1", A2:"0"; A3:"Einheit", A4:"Datum",
Die wichtigste Kenngröße "0,726" wird nicht dargestellt.
Naja wie soll Excel aus 726 ein 0,726 Interpretieren???importieren tut er folgend: A1:"Konzentration Behälter 1", A2:"0"; A3:"Einheit", A4:"Datum",
Die wichtigste Kenngröße "0,726" wird nicht dargestellt.
Und außerdem fehlt ein wichtiger Parameter namens Local:=True
Gruß

Zitat von @kaban378:
Hallo Meierjo,
ich glaube ich habe das Problem falsch geschildert:
das csv-Protokoll sieht folgend aus:" Istkonzentration Behälter 1;0,726;g/g;2017-08-31 10:10:16"
Die Anführungszeichen am Anfang und Ende sind zu viel.Hallo Meierjo,
ich glaube ich habe das Problem falsch geschildert:
das csv-Protokoll sieht folgend aus:" Istkonzentration Behälter 1;0,726;g/g;2017-08-31 10:10:16"
Das Problem ist, dass er die Nachkommastellen nicht mittzieht....
s.o. Parameter Hinweis.P.s. es gibt links in der Symbolleiste ein Icon zum Posten von Quellcode und damit solltest du auch deine CSV Daten posten! Danke!

Dann bin ich raus, fremden Code ohne Quellenangabe hier posten ohne minimales Grundwissen unterstütze ich nicht.
Hallo
Probier mal das hier
Import sieht soweit ich das sehe gut aus, was du dann mit dem restlichen Code noch machen willst, weiss ich nicht, deshalb kann ich auch nicht sagen, ob das so korrekt ist
Gruss
Probier mal das hier
Sub ImportiereCSVDateien()
Const CSVPFAD = "C:\Users\Brakk\Desktop\Test\Daten"
Dim wbTarget As Workbook, wbSource As Workbook, ws As Worksheet, curCell As Range
Set fso = CreateObject("Scripting.Filesystemobject")
Set wbTarget = ThisWorkbook
Application.DisplayAlerts = False
Application.ScreenUpdating = False
'Lösche alle Worksheets bevor wir alle neu anlegen
While wbTarget.Worksheets.Count > 1
wbTarget.Worksheets(1).Delete
Wend
wbTarget.Worksheets(1).Name = "Zusammenfassung"
wbTarget.Worksheets(1).Range("A:ZZ").Clear
For Each f In fso.GetFolder(CSVPFAD).Files
If LCase(fso.GetExtensionName(f.Name)) = "csv" Then
'Workbooks.OpenText Filename:=f.Path
Workbooks.Open Filename:=f.Path, local:=True
Range("A:A").TextToColumns , DataType:=xlDelimited, Semicolon:=True
Set wbSource = ActiveWorkbook
On Error Resume Next
Set ws = wbTarget.Worksheets.Add(After:=wbTarget.Sheets(wbTarget.Sheets.Count))
ws.Name = f.Name
ws.Range("A:ZZ").Clear
wbSource.Worksheets(1).Range("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Semicolon:=True, TrailingMinusNumbers:=True
wbSource.Worksheets(1).UsedRange.Copy Destination:=ws.Range("A1")
wbSource.Close False
End If
Next
With wbTarget.Worksheets("Zusammenfassung")
Set curCell = .Range("B1")
For i = 2 To wbTarget.Worksheets.Count
'Inhalt der CSV in das Zusammenfassungs-Sheet kopieren
wbTarget.Sheets(i).UsedRange.Copy Destination:=curCell
wbTarget.Sheets(i).UsedRange.Copy
'Name der Quelle in Spalte A schreiben
curCell.Offset(0, -1).Value = wbTarget.Sheets(i).Name
'Zelle für nächsten Import setzen
Set curCell = curCell.Offset(wbTarget.Sheets(i).UsedRange.Rows.Count + 2, 0)
Next
'Spaltengröße im Zusammenfassungssheet automatisch anpassen
.UsedRange.EntireColumn.AutoFit
.Select
End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox "Vorgang beendet!", vbInformation
Set fso = Nothing
End Sub
Import sieht soweit ich das sehe gut aus, was du dann mit dem restlichen Code noch machen willst, weiss ich nicht, deshalb kann ich auch nicht sagen, ob das so korrekt ist
Gruss