Hallo Leute,
habe noch nie was in VBA gemacht. Nun habe ich eine Excel Mappe, aus der 2 Spalten selektiert werden sollen (F,G), dabei ist die Anzahl der Zeilen dynamisch und Leerzeilen solle nicht ausgegeben werden. Habe es schon so versucht:
Sub csvExport()
On Error Resume Next
Dim Exportdatei As String
Dim Trennzeichen As String
Dim Zellbereich As Range
Dim Zeile As Object
Dim Zelle As Object
Dim TempZeile As String
Exportdatei = ThisWorkbook.path & Application.PathSeparator & "Datei.csv"
Trennzeichen = ";"
Set Zellbereich = ActiveSheet.UsedRange
Open Exportdatei For Output As #1
' Zeile für Zeile abarbeiten...
For Each Zeile In Zellbereich.Rows
' in der Zeile Zelle für Zelle...
For Each Zelle In Zeile.Cells
TempZeile = TempZeile & Zelle & Trennzeichen
Next Zelle
' Letztes Trennzeichen entfernen und Zeile in Datei schreiben
Print #1, Left(TempZeile, Len(TempZeile) - 1)
TempZeile = ""
Next Zeile
Close #1
End Sub
Dies klappt ja ganz gut, es werden alle Zeilen ausgegeben. Da allerdings der Bereich erst bei Zeile 5 anfängt und dazwischen noch Leerzeilen sind, schreibt er logischerweise nur Semikoli hin. Das soll nicht sein.
Vielleicht kann jemand helfen. Müsste wahrscheinlich nur eine Abfrage, ob Zeile gefüllt ist und Spaltenname = "Freigabe" oder "Rechnungsnummer" ist, rein. Aber leider habe ich keine Ahnung, wie man so etwas in VBA definiert.
Vielen Dank!
habe noch nie was in VBA gemacht. Nun habe ich eine Excel Mappe, aus der 2 Spalten selektiert werden sollen (F,G), dabei ist die Anzahl der Zeilen dynamisch und Leerzeilen solle nicht ausgegeben werden. Habe es schon so versucht:
Sub csvExport()
On Error Resume Next
Dim Exportdatei As String
Dim Trennzeichen As String
Dim Zellbereich As Range
Dim Zeile As Object
Dim Zelle As Object
Dim TempZeile As String
Exportdatei = ThisWorkbook.path & Application.PathSeparator & "Datei.csv"
Trennzeichen = ";"
Set Zellbereich = ActiveSheet.UsedRange
Open Exportdatei For Output As #1
' Zeile für Zeile abarbeiten...
For Each Zeile In Zellbereich.Rows
' in der Zeile Zelle für Zelle...
For Each Zelle In Zeile.Cells
TempZeile = TempZeile & Zelle & Trennzeichen
Next Zelle
' Letztes Trennzeichen entfernen und Zeile in Datei schreiben
Print #1, Left(TempZeile, Len(TempZeile) - 1)
TempZeile = ""
Next Zeile
Close #1
End Sub
Dies klappt ja ganz gut, es werden alle Zeilen ausgegeben. Da allerdings der Bereich erst bei Zeile 5 anfängt und dazwischen noch Leerzeilen sind, schreibt er logischerweise nur Semikoli hin. Das soll nicht sein.
Vielleicht kann jemand helfen. Müsste wahrscheinlich nur eine Abfrage, ob Zeile gefüllt ist und Spaltenname = "Freigabe" oder "Rechnungsnummer" ist, rein. Aber leider habe ich keine Ahnung, wie man so etwas in VBA definiert.
Vielen Dank!