23.11.2020, 01:56
Hallo!
hab ne Frage zum Thema .csv.
Ich möchte eine Excel-Tabelle als csv exportieren. Jedoch muss das mit Semikolon als Trennzeichen passieren und alle Formatierungen der Tabelle übernommen werden. Gleichzeitig soll nur der gefilterte Bereich exportiert werden. Ich habe nun folgenden Code gefunden:
Er funktioniert soweit ganz gut, nur wird die ganze Tabelle exportiert und nicht nur den gefilterten Bereich. Hat jemand eine Idee wie man das realisieren kann.
hab ne Frage zum Thema .csv.
Ich möchte eine Excel-Tabelle als csv exportieren. Jedoch muss das mit Semikolon als Trennzeichen passieren und alle Formatierungen der Tabelle übernommen werden. Gleichzeitig soll nur der gefilterte Bereich exportiert werden. Ich habe nun folgenden Code gefunden:
Code:
Sub Sheet_Nach_CSVDatei()
'hierbei bleibt die Formatierung der Zellen so wie sie angezeigt wird.
'Es muss alles so formatiert sein wie es später In der CSV sein soll.
Dim vntFileName As Variant
Dim lngFn As Long
Dim rngRow As Excel.Range
Dim rngCell As Excel.Range
Dim strDelimiter As String
Dim strText As String
Dim strTextCell As String
Dim bolErsteSpalte As Boolean
Dim rngColumn As Excel.Range
Dim wksQuelle As Excel.Worksheet
strDelimiter = ";" 'deutsches CSV-Format: ";", Englisches CSV-Format: ","
vntFileName = Application.GetSaveAsFilename("Test.csv", _
FileFilter:="CSV-File (*.csv),*.csv")
If vntFileName = False Then Exit Sub
Set wksQuelle = ActiveSheet 'Beispiel oder: = ActiveWorkbook.Worksheets("Tabelle1")
lngFn = FreeFile
Open vntFileName For Output As lngFn
For Each rngRow In wksQuelle.UsedRange.Rows
strText = ""
bolErsteSpalte = True
For Each rngCell In rngRow.Columns
strTextCell = rngCell.Text 'Text! inclusive dem NumberFormat der Zelle
If InStr(1, strTextCell, strDelimiter, 0) Then '## wenn alle Zellen mit " " eingeschlossen _
_
_
werden sollen zeile auskommentieren
'bewirkt das Werte die den Delimiter enthalten (was eigentlich nicht sein sollte) mit " " _
_
_
eingeschlossen werden
strTextCell = Chr(34) & strTextCell & Chr(34)
End If '##
If bolErsteSpalte Then
strText = strTextCell
bolErsteSpalte = False
Else
strText = strText & strDelimiter & strTextCell
End If
Next
Print #lngFn, strText
Next
Close lngFn
End Sub
Er funktioniert soweit ganz gut, nur wird die ganze Tabelle exportiert und nicht nur den gefilterten Bereich. Hat jemand eine Idee wie man das realisieren kann.