ich möchte eine Tabelle gerne als csv exportieren, die bis zur Zeile 97 mit Formeln gefüllt ist. Es werden aber nicht immer alle 97 Zeilen genutzt. Das hängt von den eingaben in einem anderem Tabellenblatt ab. Sprich, wenn nur 10 Zahlen eingetragen wurden, werden auch nur die ersten 11 Zeilen genutzt. (Erste Zeile ist eine Überschrift)
Das Problem ist, dass die übrigen 86 Zeilen ja noch mit Formeln gefüllt sind, was beim Export dazu führt, dass in diesen Zeilen ",,,,,," exportiert wird. Dies wiederum führt zu Fehlern in der Software, in dieses ich das csv importieren möchte.
Klar, öffnen mit Notepad und manuelles löschen der überflüssigen Zeichen ist eine Lösung, aber keine sehr elegante...
Habt Ihr bessere Ideen?
Hier noch das Makro:
Sub SaveCSV()
Dim Bereich As Object, Zeile As Object, Zelle As Object
Dim strTemp As String
Dim strDateiname As String
Dim strTrennzeichen As String
Dim strMappenpfad As String
Sheets("Sequence file").Select
strMappenpfad = ActiveWorkbook.FullName
strMappenpfad = Replace(strMappenpfad, ".xls", ".csv")
strDateiname = InputBox("Wie soll die CSV-Datei heißen (inkl. Pfad)?", "CSV-Export", _
strMappenpfad)
If strDateiname = "" Then Exit Sub
strTrennzeichen = InputBox("Welches Trennzeichen soll verwendet werden?", "CSV-Export", ",")
If strTrennzeichen = "" Then Exit Sub
Set Bereich = ActiveSheet.UsedRange
Open strDateiname For Output As #1
For Each Zeile In Bereich.Rows
For Each Zelle In Zeile.Cells
If InStr(1, Zelle.Text, strTrennzeichen) > 0 Then
'Zellen, die ein Trennzeichen beinhalten in Anführungsstriche setzen
strTemp = strTemp & """" & CStr(Zelle.Text) & """" & strTrennzeichen
Else
strTemp = strTemp & CStr(Zelle.Text) & strTrennzeichen
End If
Next
If Right(strTemp, 1) = strTrennzeichen Then strTemp = Left(strTemp, Len(strTemp) - 1)
Print #1, strTemp
strTemp = ""
Next
Close #1
Set Bereich = Nothing
MsgBox "Datei wurde exportiert nach" & vbCrLf & strDateiname
End Sub