Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

csv export mit semikolon
#1
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:


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.
Antwortento top
#2
Moin!
Gehe den Umweg über eine neue Mappe und kopiere nur den gefilterten Bereich:
ActiveSheet.Cells.SpecialCells(xlCellTypeVisible).Copy
  Workbooks.Add.ActiveSheet.Cells(1).PasteSpecial xlPasteAll

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antwortento top
#3
Danke Ralf.
Wo in meinem Code muss ich den Codeschnipsel unterbringen? Huh
Antwortento top
#4
Hallöchen,

wenn Du die kopierten Daten weiter verarbeiten willst dann würde ich es vor der "Übernahme" des aktiven Blattes tun. Die neue Mappe hat es nämlich anschließend Smile

Das ist übrigens genau genommen nicht möglich
Zitat:alle Formatierungen der Tabelle übernommen werden
Die csv enthält reinen Text und nicht mal Schriftart und -größe werden mit geliefert ...
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste