*.csv-Export (Bereiche)

Nur bestimmte Bereiche als *.csv exportieren

Ein ganzes Arbeitsblatt als *.csv zu speichern, das ist ja nicht so schwer. Das geht sogar ohne VBA. Wenn allerdings nur bestimmte Bereiche exportiert werden sollen oder sonstige Einschränkungen vorliegen, dann ist ein Makro erforderlich.

Im folgenden Beispiel sollen aus dem aktuellen Arbeitsblatt nur die Spalte 1:10 exportiert werden. Als zusätzliche Einschränkung gilt, dass Zeilen, die in diesen ersten 10 Spalten keinen Inhalt haben (also leer sind), auch nicht exportiert werden sollen. Dieser Code erfüllt die Forderungen:

Option Explicit

Sub alsCSVschreiben()

Dim Ze As Long, Sp As Integer

Dim FF As Integer

Dim FullPath As String

Dim lRow As Long

Dim Zeile As String, Zelle As String

lRow = Cells.Find(what:=”*”, _

SearchOrder:=xlByRows, _

SearchDirection:=xlPrevious).Row

FullPath = “D:\DataTest.csv

FF = FreeFile

Open FullPath For Output As #FF

For Ze = 1 To lRow

If WorksheetFunction.CountA(Range(“A” & Ze & “:J” & Ze)) > 0 Then

Zeile = “”

For Sp = 1 To 9

Zelle = Cells(Ze, Sp)

If Not IsNumeric(Zelle) Then Zelle = Chr(34) & Zelle & Chr(34)

Zeile = Zeile & Zelle & “;”

Next Sp

Zelle = Cells(Ze, 10)

If Not IsNumeric(Zelle) Then Zelle = Chr(34) & Zelle & Chr(34)

Zeile = Zeile & Zelle

Print #1, Zeile

End If

Next Ze

Close #FF

MsgBox “Fertig!”

End Sub

Sie können den Code hier als *.zip (Inhalt: Text.Datei) herunterladen.

▲ nach oben …

Dieser Beitrag wurde unter Code-Schnipsel, Daten-Import / -Export, Verschiedenes abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.