Excel – Export als CSV-Datei ohne Header / Tabellenkopf

Excel wird häufig als sogenannte Schnittstellendatei, um Daten für andere Programme relativ einfach zur Verfügung stellen zu können, verwendet. Diese aufbereiteten Daten werden anschließend über eine CSV-Datei in die Applikation importiert.

Verwendet man in diesem Prozess allerdings die standardmäßige Dateityp-Umwandlung vom Excel- in das CSV-Format, wird natürlich auch der Header beziehungsweise Tabellenkopf in der Import-Datei angezeigt. Das kann beim Import durchaus für Fehlermeldungen sorgen und sieht gerade für Endanwender eher störend aus.

Um dieser Problematik zu entgehen, bietet es sich an eine CSV-Datei über einen Button in Excel zu generieren und dabei den Header abzuschneiden. Wie das genau funktioniert, soll nachfolgend erklärt werden:

1)
Erstellt zunächst die Excel-Datei mit dem Header / Tabellenkopf sowie den Daten, die in das CSV-Format exportiert werden sollen.

Microsoft Excel – Beispiel für exportiende Daten in das CSV-Format

2)
Betätigt nun die Tastenkombination Alt + F11, um den Visual Basic for Application – Editor für die Makro-Erstellung zu wechseln. Im neuen Fenster anschließend in den linken Bereich gehen und mit Rechtsklick auf Einfügen -> Modul drücken.

Microsoft Excel – VBA-Editor – Modul öffnen

3)
Es öffnet sich das Modul1, indem der nachfolgende Code eingegeben wird:

Sub CSVFileCreation()
     
    Dim fs As Object, a As Object, s As String
    Const strFileNamePrefix = "CSV-Import"
    
    Set fs = CreateObject("Scripting.FileSystemObject")
    
    Do
    saveFile = Application.GetSaveAsFilename(InitialFileName:=strFileNamePrefix & Format(Now(), " yyyy-mm-dd"), _
    filefilter:="Comma Separated Text (*.CSV), *.CSV")
    
    If saveFile = False Then
        Exit Sub
    Else
    
    If Dir(saveFile) <> "" Then
    result = MsgBox("Die Datei " & Dir(saveFile) & " existiert schon! Soll sie überschrieben werden?", vbYesNo)
        If result = vbNo Then
            Exit Sub
        Else
            Kill (saveFile)
        End If
    End If
    
    End If
    
    Loop Until saveFile <> False
   
    
    Set a = fs.CreateTextFile(saveFile, ForAppending, TristateFalse)
     
    For r = 2 To Range("A65536").End(xlUp).Row 'Beginne in Zeile 2, da 1 der Header ist.
        s = ""
        c = 1
        While c <= 3 'Anzahl der Spalten in einer Tabelle, die ausgelesen werden!
            s = s & Cells(r, c) & ";"
            c = c + 1
        Wend
        a.writeline s 'Schreibe Zeile in Datei.
    Next r
     
End Sub

Hinweis:

Unter While c <= 3 stellt ihr die Spalten ein, die pro Zeile ausgelesen werden sollen. In unserem Fall lesen wir also drei Spalten aus. Anschließend wird in die nächste Zeile gewechselt.

Der Code liest alle in Excel vorhandenen Zeilen mit Werten aus! Nur die erste Zeile (Tabellenkopf) wird nicht beachtet.

Microsoft Excel - CSV-Export Makro als Code

4)
Ist die Codeeingabe erfolgt, wechselt in das Datenblatt von Excel zurück und legt einen Button an einer gewünschten Position an. Dazu geht in den Reiter Entwicklertools und wählt unter Einfügen den Button aus (Unter Umständen müssen zunächst die Entwicklertools in Excel aktiviert werden.).

Microsoft Excel - Entwicklertools - Button einfügen

5)
Nachdem der Button von euch erstellt wurde, sollte sich bereits automatisch das Fenster zur Makro-Zuordnung öffnen. Wählt also das erstellte Makro aus und klickt auf OK. Voilà, euer komfortabler Export-Button sollte nun funktionstüchtig sein!

Microsoft Excel - Makro zuweisen