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

csv Export per VBA für SAP

csv Export per VBA für SAP
27.03.2013 11:51:51
Andreas
Hallo zusammen,
ich habe aus dem Internet einen VBA Code in Verwendung der soweit auch gut funktioniert. Es wird der Inhalt eines Tabellenblattes als csv Datei exportiert.
Die Besonderheit ist an dieser Stelle das Trennzeichen |_|
Die Datei wird für die Weiterverarbeitung nach SAP importiert.
Das Programm das die Datei verarbeitet hat aber ein Problem, weil an jedem Zeilenende ein # steht und steigt daher aus. Wie kann ich das Program anpassen das dies dort nicht mehr vorhanden ist.
Vielen Dank
Gruß
Andreas

Sub Export()
' Speichert den Inhalt eines Arbeitsblatts als CSV-Datei
' mit wählbarem Trennzeichen und Maskierung von Einträgen
' überarbeitet von Andreas Dempewolf, 27.02.2013
' Ohne Gewähr!
Dim Bereich As Object, Zeile As Object, Zelle As Object
Dim strTemp As String
Dim strDateiname As String
Dim strTrennzeichen As String
Dim strMappenpfad As String
Sheets("ZEPP_KM_RESPONSE_UPLOAD").Select
strMappenpfad = ActiveWorkbook.Path & "\Export\ZEPP_KM_RESPONSE_UPLOAD.csv"
' strMappenpfad = Replace(strMappenpfad, ".xls", ".csv")
strDateiname = strMappenpfad
' If strDateiname = "" Then Exit Sub
strTrennzeichen = "|_|"
Set Bereich = ActiveSheet.UsedRange
Open strDateiname For Output As #1
For Each Zeile In Bereich.Rows
For Each Zelle In Zeile.Cells
If InStr(1, Zelle.Text, strTrennzeichen) > 0 Then
'Zellen, die ein Trennzeichen beinhalten in Anführungsstriche setzen
strTemp = strTemp & """" & CStr(Zelle.Text) & """" & strTrennzeichen
Else
strTemp = strTemp & CStr(Zelle.Text) & strTrennzeichen
End If
Next
If Right(strTemp, 1) = strTrennzeichen Then strTemp = Left(strTemp, Len(strTemp) - 1)
Print #1, strTemp
strTemp = ""
Next
Close #1
Set Bereich = Nothing
MsgBox "Datei wurde exportiert nach" & vbCrLf & strDateiname
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: csv Export per VBA für SAP
27.03.2013 12:41:58
Oberschlumpf
Hi Andreas
Wenn in der Datei an jedem Zeilenende ein "#" steht, dann vielleicht so:

Dim lstrZeile As String
Open "Pfad\neueDatei.txt" For Output As #1
Open "Pfad\Datei.csv" For Input As #2
Do Until Eof(2)
Line Input #2, lstrZeile
Print #1, Left(lstrZeile,Len(lstrZeile) - 1)
Loop
Close
Kill "Pfad\Datei.csv"
Name "Pfad\neueDatei.txt" As "Pfad\Datei.csv"

Hilfts?
Ciao
Thorsten

AW: csv Export per VBA für SAP
27.03.2013 13:41:42
Andreas
Hallo,
ich habe das Problem eingrenzen können.
Am Ende der Zeile kommt noch ein weiteres Trennzeichen, obwohl da keines sein sollte.
Hier im Screenshot zu sehen.
Der oberste Datensatz stimmt, der untere nicht.
Userbild

Anzeige
AW: csv Export per VBA für SAP
27.03.2013 13:29:13
Uduuh
Hallo,
weil an jedem Zeilenende ein # steht
kann ich mir nicht vorstellen.
Allerdings hast du hier einen Fehler:
     If Right(strTemp, 1) = strTrennzeichen Then strTemp = Left(strTemp, Len(strTemp) - 1)

Das Trennzeichen besteht doch aus 3 Zeichen. Ersetze also 1 durch 3.
Gruß aus’m Pott
Udo

AW: csv Export per VBA für SAP
27.03.2013 13:45:35
Andreas
Hi Udo,
genau das war es.
Danke.
Ich bin halt kein wirklicher Entwickler, sondern kann nur einigermaßen kopieren ;-))
Viele Grüße
Andreas

Anzeige
AW: csv Export per VBA für SAP
27.03.2013 14:01:27
Andreas
Noch eine Ergänzung damit es richtig perfekt für UNIX wurde.
folgende Ersetzung damit fällt auch der Carriage Return weg
Print #1, strTemp
durch
Print #1, strTemp; vbLf;

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige