Print Zeile bei anzuhängender Datei nicht anhängen
11.02.2016 13:25:28
Erik
Ich habe folgendes Macro:
Sub csv_umwandeln_EFA()
Dim strTemp As String
Dim strDateiname As String
Dim strTrennzeichen As String
Dim wie As Integer
Dim aB As Variant ' Bereich als ARRAY
Dim r() As Variant
Dim z As Long, s As Long ' zeile/Spalte im Array aB
' Spalte E, Spalte G, Spalte D und Splate F.
r = Array(2, 4, 1, 3) ' Index in r geht von 0 bis 3, siehe Schleife unten
If Selection.Columns.Count 4 Or Selection(1).Column 4 Then
MsgBox "Es wurde nicht D-G selektiert"
Exit Sub
End If
' strDateiname = ActiveWorkbook.FullName
' strDateiname = Replace(strDateiname, ".xls", ".csv")
strDateiname = "D:\Bestellung EFA.csv" '& Replace(ActiveWorkbook.Name, ".xls", ".csv")
strDateiname = InputBox("Datei", "Datei Wählen", strDateiname)
If strDateiname = "" Then Exit Sub
wie = vbNo
If Dir(strDateiname) "" Then
wie = MsgBox("Daten anhängen?", vbYesNo, strDateiname & "Datei bereits vorhanden")
If wie = vbCancel Then Exit Sub
End If
strTrennzeichen = InputBox("Welches Trennzeichen soll verwendet werden?", "CSV-Export", ";") _
_
_
If strTrennzeichen = "" Then Exit Sub
aB = Selection ' hier von 1 bis 4, also D=1 .. G=4
' bzw. wegen r: 2,4,1,3 = E,G,D,F
If wie = vbNo Then
Open strDateiname For Output As #1
Else
Open strDateiname For Append As #1
End If
Print #1, "0000000;1;Kennzeichen;Bezeichnung"
For z = 1 To UBound(aB, 1)
strTemp = ""
' dann aus den Spalten D-G:
For s = 0 To 3
If InStr(1, aB(z, r(s)), strTrennzeichen) > 0 Then
strTemp = strTemp & """" & aB(z, r(s)) & """"
Else
strTemp = strTemp & CStr(aB(z, r(s)))
End If
' immer Trennzeichen, außer beim Letzten...
If s
Aber das Problem das beim anhängen einer vorhandenen *csv Datei die Zeile:Print #1, "0000000;1;Kennzeichen;Bezeichnung"
auch mit angehängt wird. Das soll aber nur bei einer neu erstellten csv Datei passieren.
Kann mir jemand die Änderung schreiben, da ich von VBA leider nicht so den Plan hab !