Hallo,
ich versuche mich gerade an einem Button mit dem ich die aktuelle Mappe als CSV-Datei speichere. Die Werte sollen in Anführungszeichen stehen und mit einem Komma getrennt werden. Habe bisher das im Netz gefunden:
Funktioniert auch, hätte aber gerne das ohne die Menüs, da ich nur eine Formatierung brauche. Habe da ein bisschen rumprobiert (bin VBA-Anfänger), hat aber nicht funktioniert.
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
Dim blnAnfuehrungszeichen As Boolean
Dim lngMaxSpalte As Long
strMappenpfad = ActiveWorkbook.FullName
strDateiname = InputBox("Bitte den Namen der CSV-Datei angeben.", "CSV-Export", strMappenpfad)
If strDateiname = "" Then Exit Sub
strTrennzeichen = InputBox("Welches Trennzeichen soll verwendet werden?", "CSV-Export", ",")
If strTrennzeichen = "" Then Exit Sub
If MsgBox("Sollen die Werte in Anführungszeichen exportiert werden?", vbQuestion + vbYesNo, "CSV-Export") = vbYes Then
blnAnfuehrungszeichen = True
Else
blnAnfuehrungszeichen = False
End If
Set Bereich = ActiveSheet.UsedRange
Open strDateiname For Output As #1
For Each Zeile In Bereich.Rows
' Hier wird die letzte ausgefüllte Spalte der aktuellen Zeile ermittelt
lngMaxSpalte = Bereich.Cells(Zeile.Row, Columns.Count).End(xlToLeft).Column
For Each Zelle In Zeile.Cells
' Ist die aktuelle Zellennummer kleiner / gleich die letzte ausgefüllte Zelle?
' Wenn ja, dann in csv-Datei schreiben
If Zelle.Column <= lngMaxSpalte Then
If blnAnfuehrungszeichen = True Then
strTemp = strTemp & """" & CStr(Zelle.Text) & """" & strTrennzeichen
Else
strTemp = strTemp & CStr(Zelle.Text) & strTrennzeichen
End If
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 "Export erfolgreich. Datei wurde exportiert nach" & vbCrLf & strDateiname
End Sub
|