erste Zeile leerzeile mit Platzhalter
27.01.2016 16:35:47
Erik
Habe folgendes Makro
Sub csv_umwandeln ()
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
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
Es müsste noch in der fertigen csv Datei
eine Leere Zeile 1 mit Platzhalter (ein X genügt) eingefügt werden.
Kenne den Befehl aber dazu nicht.
Gruß Erik