Ich bin neu hier, und habe nicht viel VBA Erfahrung.
Wir benutzen in unserer Firma eine Vorlage für den Import aller *.csv Files aus dem gleichen Ordner. Wir haben nun eine neue Verpackungsanlage erhalten, wo der Lieferant das Format oder besser gesagt die Anordnung geändert der csv Files geändert hat.
Im früheren File waren es nur Zahlen, welche durch ein Semikolon getrennt waren. Nun ist da auch noch Text mit dabei, welcher teilweise Kommas beinhaltet.
Ich habe das Makro nun so hinbekommen, dass der Text importiert wird, und auch das Datum am richtigen Ort hingeschrieben wird.
Leider stoppt das Makro, sobald im Text ein Komma vorhanden ist.
Kann mir da Jemand eine Tipp geben?
Ich verwende dieses Makro:
Sub DatenErfassen()
VorhandeneDatenLoeschen
Dateiname = Dir(ThisWorkbook.Path & "\*.CSV")
ErsteDatei = Dateiname
abschliessen = False
If Dateiname = ThisWorkbook.Name Then
Dateiname = Dir
If Dateiname = ThisWorkbook.Name Then
abschliessen = True
End If
End If
Zeile2 = 8
While (Dateiname "" And Not abschliessen)
If (Not Dateiname = ThisWorkbook.Name) Then
Set Datei = Workbooks.Open(ThisWorkbook.Path & "\" & Dateiname)
Zeile = 9
Text = ActiveSheet.Cells(4, 1).Value
Stelle1 = InStr(Text, ";")
Datum = Mid(Text, Stelle1 + 1, 10)
Do While ActiveSheet.Cells(Zeile, 1).Value ""
Zeile2 = Zeile2 + 1
Text = ActiveSheet.Cells(Zeile, 1).Value
Stelle1 = 0
For Spalte = 1 To 5
Stelle2 = InStr(Stelle1 + 1, Text, ";")
If Stelle2 = 0 Then
Stelle2 = Len(Text) + 1
End If
ThisWorkbook.Worksheets("Daten").Cells(Zeile2, Spalte).Value = Mid(Text, Stelle1 + 1, _
_
_
Stelle2 - Stelle1 - 1)
Stelle1 = Stelle2
Next Spalte
ThisWorkbook.Worksheets("Daten").Cells(Zeile2, 5).Value = Datum
Zeile = Zeile + 1
Loop
Datei.Close
End If
Dateiname = Dir
If Dateiname = ErsteDatei Then
abschliessen = True
End If
Wend
End Sub
das alte csv:
Alarm number;Activated;Deactivated;Time alarm active
368;00:38:36;00:38:40;00:00:04;
7;00:46:27;00:48:18;00:01:51;
das neue csv:
Alarm number;Description;Activated;Deactivated;Time alarm active
199;0199) Karton Aufsetzer: Kein Karton i Befüllposition.| (sensor S4.7);19:31:25;10:56:17;15:24:52;
1;0001) Comm.: Sicherheitskreis ist nicht zurückgesetzt.;10:56:16;10:56:17;00:00:01;
240;0240) Pick und Place: Rahmen nicht.| (sensor S5.9, Ventil Y12.3);10:56:23;10:57:35;00:01:12;
Bei den Komma S5.9, stoppt der Import.
Beim Debug wird diese Zeile gelb markiert:
ThisWorkbook.Worksheets("Daten").Cells(Zeile2, Spalte).Value = Mid(Text, Stelle1 + 1, Stelle2 - Stelle1 - 1)
Ich verwende Excel 365
Ich hoffe ihr könnt mir da weiterhelfen.
Viele Grüße,
Patrik