Thema Datum  Von Nutzer Rating
Antwort
08.04.2008 16:25:19 Chris
NotSolved
09.04.2008 11:34:57 Holger
NotSolved
Rot Aw:Aw:CSV Teiler - Datenblätter in einzelne CSV Da
09.04.2008 12:25:20 Chris
NotSolved
10.04.2008 13:23:20 Holger
NotSolved

Ansicht des Beitrags:
Von:
Chris
Datum:
09.04.2008 12:25:20
Views:
1393
Rating: Antwort:
  Ja
Thema:
Aw:Aw:CSV Teiler - Datenblätter in einzelne CSV Da
Hallo,

vielen Dank für die Antwort,

könnte ich das nicht so ungefähr machen:

Dim i as integer
for i = i + 1
sheet(i).activate
sheet(i).saveas(i.csv)
next i


oder hab ich da einen Denkfehler drin.

Gruß



Holger schrieb am 09.04.2008 11:34:57:

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

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
08.04.2008 16:25:19 Chris
NotSolved
09.04.2008 11:34:57 Holger
NotSolved
Rot Aw:Aw:CSV Teiler - Datenblätter in einzelne CSV Da
09.04.2008 12:25:20 Chris
NotSolved
10.04.2008 13:23:20 Holger
NotSolved