Hallo Chris,
 du kannst m.E. keine einzelnen Tabellenblätter speichern. Wenn du sie trennen willst, solltest du die einzelnen Stücke nicht in Tabellenblättern, sondern einzelnen Arbeitsmappen speichern. Also nicht Sheet.Add, sondern Workbook.Add und noch einige kleinere Änderungen.
 Gruß
 Holger
 
 
 Chris schrieb am 08.04.2008 16:25:19:
 
 Hallo,
 
 habe diesen Code der mir eine CSV Datei mit beliebig vielen Datensätzen aufsplittet. D. h. ich gebe die Anzahl ein bei der gesplittet werden soll und dann werden Tabellenblätter angelegt und befüllt. Klappt auch alles super. 
 
 Nun möchte ich gerne alle vorhandenen Tabellenblätter jeweils einzeln (z. B. 1.csv, 2.csv, 3.csv usw.) als CSV in ein Verzeichnis speichern. Nur weiß ich leider nicht wie das geht. 
 
 Kann mir hier vielleicht jemand helfen?
 
 Danke schonmal und Gruß
 
 
 
 
 Public Function FileTeilen()
 On Error GoTo Hell
 Dim fso As New FileSystemObject, SR As TextStream
 Dim datenfeld, Datenzeile, Datenstring As String
 Dim rcount As Double, mcount As Integer, x As Integer
 Dim datensheet As Variant
 Dim y As String
 y = InputBox("Bitte geben Sie die Anzahl an, bei der gesplittet werden soll!", "Filetransfer")
 Set SR = fso.OpenTextFile(Application.GetOpenFilename)
 mcount = 1
 rcount = 0
 ReDim datenfeld(y, 200)
 Do
     Datenstring = SR.ReadLine
     Datenzeile = Split(Datenstring, ";")
     For x = 0 To UBound(Datenzeile)
         datenfeld(rcount, x) = Datenzeile(x)
     Next
     rcount = rcount + 1
     If rcount > y Then
        Set datensheet = Sheets.Add
         datensheet.Range("A1").Resize(UBound(datenfeld, 1), UBound(datenfeld, 2)) = datenfeld
         mcount = mcount + 1
         rcount = 0
         Erase datenfeld
         ReDim datenfeld(y, 200)
     End If
 Loop While Not SR.AtEndOfStream
 Set datensheet = Sheets.Add
 datensheet.Range("A1").Resize(UBound(datenfeld, 1), UBound(datenfeld, 2)) = datenfeld
 
 Hell:
   MsgBox Err.Description, vbCritical, "Ein Fehler ist aufgetreten!"
   Exit Function
 End Function
      |