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

CSV mit Anführungszeichen bei Texten

CSV mit Anführungszeichen bei Texten
09.12.2022 13:50:17
Dominik
Hallo zusammen,
ich bin leider ein wenig am verzweifeln und komme nicht wirklich weiter. Habe mich dumm und dusselig gegoogelt aber auch irgendwelche Makros durch die ich nicht durchgestiegen bin haben mir wenig geholfen. Als Info, ich benutze Office365 Business (Excel Desktop App natürlich).
Nun benötige ich Hilfe bei der Umsetzung folgendes Problems.
Folgendes Szenario:
Wir bekommen von einem Kunden eine Liste, diese Liste muss dann als CSV im UTF-8 Format gespeichert werden.
Jetzt kommt der Clue. In dieser Liste sind Zahlen, Datumsangaben und Texte, damit das WMS (Warenwirtschaftssystem) das am Ende diese Datei verarbeiten soll, die Daten richtig auslesen kann, müssen alle Textwerte mit "" versehen werden und Zahlenformate sowie Datumsformat ohne "".
Wenn ich die Datei in Notepad öffne sollte es folgenderweise aussehen:
"Line Status","Picking Ticket No","SOLine","Warehouse","Item Code", (usw)
"SHIP",517659,1,"PLWHSE","F5_SL713_DKY", (usw)
Ich habe in der angehängten Excel Datei "test inbound file generator" im Tab "transform to csv" die Spaltenüberschriften Rot markiert, wo die Daten als Text formatiert sind und somit mit "" versehen werden müssen. Die Überschriften müssen immer als Text formatiert sein unabhängig von den Daten die darunter folgen.
Ich hoffe ich habe mein Problem gut genug dargestellt und das mir vielleicht jemand helfen kann.
Zu speichernde CSV Datei:
https://www.herber.de/bbs/user/156624.xlsx

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CSV mit Anführungszeichen bei Texten
09.12.2022 13:53:59
Dominik
Vergessen zu erwähnen, die Daten müssen durch ein , und nicht durch ; getrennt werden.
Das Problem habe ich für den Moment umschifft indem ich die Regioneinstellung auf US gestellt habe.
Wenn es dafür eine bessere Lösung gibt, ebenfalls gerne her damit.
AW: sehe keine rot markierten Spalten owT
09.12.2022 14:09:21
neopa
Gruß Werner
.. , - ...
AW: sehe keine rot markierten Spalten owT
09.12.2022 14:13:16
Dominik
Hm, weiß nicht wieso es nicht in übernommen wurde in der Datei.
Es geht um folgende Spalten die "rot" markiert waren und die Daten als Text formatiert sein sollen.
Spalten: A, D, E, F, G, H, I, L, M, N, Q, R, U, V, W, X, AC
AW: nun noch nachgefragt ...
09.12.2022 14:20:54
neopa
Hallo Dominik,
... wie sollen denn die 0-Datenwerte (z.B. die in der Spalte I) ausgegeben werden?
Gruß Werner
.. , - ...
Anzeige
AW: nun noch nachgefragt ...
09.12.2022 14:29:20
Dominik
In Spalte I, die Text ist, sollte dann auch die "0" ein Text sein.
In Spalte J, die eine Zahl ist, sollte dann die 0 eine Zahl sein.
Wenn die Zelle leer ist, muss je nachdem ob Text ist per ,"", getrennt werden oder bei Zahlenformat ,,
Ich hoffe ich habe es verständlich genug ausgedrückt :D
AW: hmmm ...
09.12.2022 15:04:34
neopa
Hallo Dominik,
... sorry, erkenne erst jetzt richtig das Problem.
Weder mit Formeln noch mit PQ gelingt es mir momentan auch nicht ein " vor und nach einen Textwert hinzu zufügen. Sollte zwar trotzdem möglich sein. Ich würde mir da wie folgt helfen. Anstelle eines " würde ich z.B.: # (bzw. ein Zeichen was ansonsten in Deinen Original nicht vorkommt) den Textwerten hinzufügen. Danach diese Datei in CSV -Datei ausgeben und dort mit einem Standardeditor das # durch ein " ersetzen. Ist zwar umständlich aber zumindest eine Möglichkeit.
Mit VBA sollte es jedoch einfacher möglich sein. Doch mit VBA beschäftige ich mich nicht. Ein VBAler könnte Dir hier sicherlich eine bessere Hilfe sein.
Gruß Werner
.. , - ...
Anzeige
AW: CSV mit Anführungszeichen bei Texten
09.12.2022 15:09:35
ChrisL
Hi Dominik
Die Lösung kommt ohne Zusatztabelle aus.
Kleiner Unklarheiten gibt es noch u.a. ob Datum als Text oder Zahl behandelt werden soll. Aber schau einfach mal ob es passt.

Sub t()
Dim arSpaltenTitel() As Variant
Dim lngZeile As Long, i As Integer
Dim strTemp As String
arSpaltenTitel = Array("Line Status", "Picking Ticket No", "SOLine", "Warehouse", "Item Code", "Description", "Colour", _
"Description", "Fit/Dim", "md3", "md5", "Lading Note Number", "Size Code", "Brand Code", "Unit Qty", "EANUPC", "Customer Code", _
"CustName", "PKQTY", "SELLQ", "Container Code", "Container Type", "Shipping Ref", "Deliver To Comp", "TODAYS", "SHIP date", _
"Completion Date", "PO date", "CLRSEAS")
Open "C:\Pfad\DemoFile.csv" For Output As #1
With Tabelle1
'Spaltentitel schreiben
Print #1, """" & Join(arSpaltenTitel, """,""") & """"
For lngZeile = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
For i = 1 To UBound(arSpaltenTitel) + 1
Select Case i
' erste Spalte ohne Komma
Case 1: strTemp = """" & .Cells(lngZeile, i) & """"
' Ausnahme Spaltennummer mit Text ignore
Case 12, 22, 24, 29: strTemp = strTemp & ",""ignore"""
' Spalten mit Datumsformatierung
Case 25, 26, 27: strTemp = strTemp & ",""" & Format(.Cells(lngZeile, i), "dd\/mm\/yyyy") & """"
' Ausnahme Spalte AB, welche den Wert von AA bekommt
Case 28: strTemp = strTemp & ",""" & Format(.Cells(lngZeile, 27), "dd\/mm\/yyyy") & """"
' restliche Spalten
Case Else
' wenn nummerisch
If IsNumeric(.Cells(lngZeile, i)) And .Cells(lngZeile, i)  "" Then
strTemp = strTemp & "," & .Cells(lngZeile, i).Text
' wenn text
Else
strTemp = strTemp & ",""" & .Cells(lngZeile, i).Text & """"
End If
End Select
Next i
Print #1, strTemp
Next lngZeile
End With
Close #1
End Sub
cu
Chris
Anzeige
AW: CSV mit Anführungszeichen bei Texten
09.12.2022 15:39:21
Dominik
Hi Chris,
das sieht erstmal richtig gut aus. Ich würde hier intern Rücksprache halten und mich ggfs nochmal melden.
Danke aber bis hierher schonmal!
AW: CSV mit Anführungszeichen bei Texten
12.12.2022 08:01:53
Dominik
Hi Chris,
was müsste ich im Modul ändern damit das Datum nicht mehr in Anführungszeichen gesetzt wird?
AW: CSV mit Anführungszeichen bei Texten
12.12.2022 08:34:52
Dominik
Und die Spalte "Completion Date" wird rausfliegen. Wie könnte ich diese ebenfalls entfernen?
AW: CSV mit Anführungszeichen bei Texten
12.12.2022 09:01:23
ChrisL
Hi
Nachfolgend mal die Anpassung betr. Datum.
Den Spaltentitel löschen und dann die Spaltennummern im Code anpassen. Verschiebt sich halt alles und du müsstest die Nummern anpassen.

Sub t()
Dim arSpaltenTitel() As Variant
Dim lngZeile As Long, i As Integer
Dim strTemp As String
arSpaltenTitel = Array("Line Status", "Picking Ticket No", "SOLine", "Warehouse", "Item Code", "Description", "Colour", _
"Description", "Fit/Dim", "md3", "md5", "Lading Note Number", "Size Code", "Brand Code", "Unit Qty", "EANUPC", "Customer Code", _
"CustName", "PKQTY", "SELLQ", "Container Code", "Container Type", "Shipping Ref", "Deliver To Comp", "TODAYS", "SHIP date", _
"Completion Date", "PO date", "CLRSEAS")
Open "C:\Pfad\DemoFile.csv" For Output As #1
With Tabelle1
'Spaltentitel schreiben
Print #1, """" & Join(arSpaltenTitel, """,""") & """"
For lngZeile = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
For i = 1 To UBound(arSpaltenTitel) + 1
Select Case i
' erste Spalte ohne Komma
Case 1: strTemp = """" & .Cells(lngZeile, i) & """"
' Ausnahme Spaltennummer mit Text ignore
Case 12, 22, 24, 29: strTemp = strTemp & ",""ignore"""
' Spalten mit Datumsformatierung
Case 25, 26, 27: strTemp = strTemp & "," & Format(.Cells(lngZeile, i), "dd\/mm\/yyyy")
' Ausnahme Spalte AB, welche den Wert von AA bekommt
Case 28: strTemp = strTemp & "," & Format(.Cells(lngZeile, 27), "dd\/mm\/yyyy")
' restliche Spalten
Case Else
' wenn nummerisch
If IsNumeric(.Cells(lngZeile, i)) And .Cells(lngZeile, i)  "" Then
strTemp = strTemp & "," & .Cells(lngZeile, i).Text
' wenn text
Else
strTemp = strTemp & ",""" & .Cells(lngZeile, i).Text & """"
End If
End Select
Next i
Print #1, strTemp
Next lngZeile
End With
Close #1
End Sub
cu
Chris
Anzeige
AW: CSV mit Anführungszeichen bei Texten
12.12.2022 10:53:33
Dominik
Klasse, habs hinbekommen. Ich danke dir vielmals!!
AW: CSV mit Anführungszeichen bei Texten
09.12.2022 15:17:23
Daniel
Hi
ich würde mir hier für den CSV-Export über Textverketten bzw einfaches & und TEXT per Formel die Daten einer Zeile in Spalte A zusammensammeln und dieses Blatt mit der einen Spalte dann als CSV speichern.
solange also kein Datum und keine Dezimalzahlen vorkommen, kannst du so eine Zeile zu einem Text zusammenführen.

=Textverketten(",";falsch;Wenn(Isttext(Tabelle1!A2:X2;""""&Tabelle1!A2:X2&"""";Tabelle2!A2:X2)) 
wenn dann Datumswerte folgen, bindest du die so an:

=Textverketten(...)&","&Textverketten(",";falsch;Text(Tabelle1!X2:AB2; "--hier der Formatstring für dein Datum---")) 
und so weiter halt für weitere Spalten mit speziellen formaten.
So kannst du dann selber bestimmen, wie der Text ausgegeben wird (Trennzeichen, mit/ohne AnfZ., Datumsschreibweise) und bist nicht von den Einstellungen oder Automatiken deines Excels abhängig.
Gruß Daniel
Anzeige

30 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige