Sub CSVExportieren(strExporttabelle As String, strTitel As String)
Dim strDateiname As String
Dim lngZeilen As Long, lngSpalten As Long
Dim lngZeile As Long, lngSpalte As Long
Dim Data
Dim rngExportbereich As Range
Set rngExportbereich = ThisWorkbook.Worksheets(strExporttabelle).UsedRange
lngSpalten = rngExportbereich.Columns.Count
lngZeilen = rngExportbereich.Rows.Count
strDateiname = Application.GetSaveAsFilename(FileFilter:="csv-Dateien (*.csv), *.csv", Title:=strTitel)
Open strDateiname For Output As #1
For lngZeile = 1 To lngZeilen
For lngSpalte = 1 To lngSpalten
Data = rngExportbereich.Cells(lngZeile, lngSpalte).Value
If IsDate(Data) Then
Else: If IsNumeric(Data) Then Data = Val(Data)
End If
If IsEmpty(rngExportbereich.Cells(lngZeile, lngSpalte)) Then Data = ""
If lngSpalte <> lngSpalten Then
Write #1, Data;
Else
Write #1, Data
End If
Next lngSpalte
Next lngZeile
Close #1
End SubIch weiß, das hört sich sarkastisch an:, entspricht aber fast immer den Tatsachen:
Wenn ich irgendwelchen Code aus dem Internet abschreibe ohne ihn zu verstehen oder nachvollziehen zu können, dann kommt so etwas dabei heraus.
Umsonst ist nun ab und zu auch umsonst (im doppelten Sinne). Wenn ich mein Problem in fachkundige Hände (eines Dienstleisters) gebe, dann hat der a) mehr Wissen als ich (zumindest meistens) und b) hat der auch die Verantwortung. Klar, der kostet etwas, aber wenn dir (oder deinem Chef) deine Arbeit nichts Wert ist ...
Btw: VBA ist ein US-Produkt und da ist das Komma nun einmal das Trennzeichen für CSV, wie auch schon der Name sagt. Also hat das etwas mit den localen Gegebenheiten zu tun.
Hallo,
anbei ein Code, wie man beispielsweise sowas machen kann. Anpassen an Deine Bedürfnisse musst Du es aber schon selber.
Der Code, den Du, wie von Günther vermutet, wohl irgendwo kopiert hast, ist zu umständlich.