Hallo zusammen,
ich bin auf der Suche nach einem Code welcher mir aus einer Excel Datei mit ca. 30.000 Zeilen jeweils nach 900 Zeilen eine separate CSV Datei erstellt. Dabei hatte ich bisher einige Stolpersteine wie z.B. das Trennzeichen "," oder ";" - also ich muss schon auf Semikolon bleiben, damit die spätere CSV die Zellentrennung beibehält. Dann soll das Makro im Prinzip die Tabelle abarbeiten bis keine Zeile mehr da ist. Immer 900 Zeilen markieren -> Export als CSV. Fertig.
Hier mal mein bisheriger (gegoogelter) Code - die Eingabefenster müssen nicht sein - die waren jetzt halt dabei:
Sub Exportiere_Bereich_in_CSV()
Dim bisZeile As Long, zeile As Long
Dim bisSpalte As Integer, Spalte As Integer
Dim Trennzeichen As String, ExportBereich As String, Ausgabe As String
Dim NewFileName
Close #1
NewFileName = Application.GetSaveAsFilename(fileFilter:="CSV Files (*.csv), *.csv")
If NewFileName <> False Then
Open NewFileName For Output As #1
' Hier Trennzeichen eingeben
Trennzeichen = InputBox("Bitte Trennzeichen wählen")
If Trennzeichen = "" Then
'Standard-Trennzeichen Semikolon
Trennzeichen = ","
End If
'Zu exportierender Bereich
ExportBereich = InputBox("Bitte den zu exportierenden bereich eingeben: ", "C:\Users\mditzel\Documents", _
ActiveSheet.UsedRange.Address(False, False))
If ExportBereich = "" Then
'Wenn leer, dann benutzten Bereich exportieren
ExportBereich = ActiveSheet.UsedRange.Address
End If
bisZeile = ActiveSheet.Range(ExportBereich).Rows.Count + ActiveSheet.Range(ExportBereich) _
.Row - 1
bisSpalte = ActiveSheet.Range(ExportBereich).Columns.Count + ActiveSheet.Range( _
ExportBereich).Column - 1
For zeile = ActiveSheet.Range(ExportBereich).Row To bisZeile
Ausgabe = ""
For Spalte = ActiveSheet.Range(ExportBereich).Column To bisSpalte
Ausgabe = Ausgabe & ActiveSheet.Cells(zeile, Spalte).Value
If Spalte <> bisSpalte Then
Ausgabe = Ausgabe & Trennzeichen
End If
Next Spalte
Print #1, Ausgabe
Next zeile
Close #1
End If
End Sub
|