rinberger
Goto Top

Erstellen einzelner .txt Dateien aus einer Excel Liste + Namensvergebung

Hallo zusammen,

ich versuche aus einer Excel Tabelle jede Zeile als einzelne .txt Datei auszugeben.
Das klappt bisher ganz gut und es werden mir alle Dateien erstellt.
Kann ich diese auch automatisch so ausgeben, dass sie als Dateinamen den jeweiligen Wert der Spalte A tragen?
In der .txt soll dann nur der Wert der Spalte B stehen wie bisher.

Beispiel:
bsp

Der Code:

Sub ErstelleDateien()
Ziel = "D:\Dein Ordner"  
Stellen = 3
Typ = ".txt"  
AbZeile = 1
Spalte = "B"  

Zeile = AbZeile
Nr = 1000001

Set fso = CreateObject("Scripting.FileSystemObject")  
If Right(Ziel, 1) <> "\" Then Ziel = Ziel & "\"  

Do While Cells(Zeile, Spalte).Value <> ""  
    fso.CreateTextFile(Ziel & Right(Nr, Stellen) & Typ).Write Cells(Zeile, Spalte).Value
    Zeile = Zeile + 1
    Nr = Nr + 1
Loop
End Sub

Viele Grüße
Rinberger

Content-ID: 487937

Url: https://administrator.de/contentid/487937

Ausgedruckt am: 16.11.2024 um 02:11 Uhr

140913
140913 23.08.2019, aktualisiert am 26.08.2019 um 09:11:57 Uhr
Goto Top
Kann ich diese auch automatisch so ausgeben, dass sie als Dateinamen den jeweiligen Wert der Spalte A tragen?
Ja, Zeile so ändern das das Right(Nr, Stellen) geändert wird in Cells(Zeile, A)
fso.CreateTextFile(Ziel & Cells(Zeile, "A") & Typ,true).Write Cells(Zeile, Spalte).Value  
Rinberger
Rinberger 23.08.2019 um 12:55:12 Uhr
Goto Top
Hi vielen Dank jetzt kommt allerdings diese Meldung.

bsp2
140913
140913 23.08.2019 aktualisiert um 13:02:12 Uhr
Goto Top
Mit F8 schrittweise durchlaufen oder Breakpoint setzen.

Wenn die Datei schon existiert, zweiten Parameter von CreateTextfile auf True setzen, s. oben .
http://www.herber.de/mailing/vb/html/vamthcreatetextfile.htm
Rinberger
Rinberger 23.08.2019 aktualisiert um 13:19:28 Uhr
Goto Top
Klappt noch nicht so.. bin da leider Anfänger. Mit F8 komme ich bis zu Zeile 16.

Sub ErstelleDateien()
Ziel = "D:\Test"  
Stellen = 3
Typ = ".txt"  
AbZeile = 1
Spalte = "B"  

Zeile = AbZeile
Nr = 1000001

Set fso = CreateObject("Scripting.FileSystemObject")  
If Right(Ziel, 1) <> "\" Then Ziel = Ziel & "\"  

Do While Cells(Zeile, Spalte).Value <> ""  
    Set fs = CreateObject("Scripting.FileSystemObject")  
    fso.CreateTextFile(Ziel & Cells(Zeile, A) & Typ, True).Write Cells(Zeile, Spalte).Value
    Zeile = Zeile + 1
    Nr = Nr + 1
    
Loop
End Sub
140913
Lösung 140913 23.08.2019, aktualisiert am 26.08.2019 um 09:09:33 Uhr
Goto Top
Sub ErstelleDateien()
Ziel = "D:\Test"  
Stellen = 3
Typ = ".txt"  
AbZeile = 1
Spalte = "B"  
Zeile = AbZeile

Set fso = CreateObject("Scripting.FileSystemObject")  
If Right(Ziel, 1) <> "\" Then Ziel = Ziel & "\"  

Do While Cells(Zeile, Spalte).Value <> ""  
    fso.OpenTextFile((Ziel & Cells(Zeile, "A").Value & Typ),2,True).Write Cells(Zeile, Spalte).Value  
    Zeile = Zeile + 1
Loop
End Sub
Strings in Zelle A müssen natürlich Dateinamenstandards erfüllen und dürfen keine Sonderzeichen die ungültig sind enthalten! Klappt hier .
Rinberger
Rinberger 26.08.2019 aktualisiert um 09:07:32 Uhr
Goto Top
Sonderzeichen wurden entfernt, keine Klammern, Punkte, Leerschritte etc. trotzdem kommt der Laufzeitfehler, woran liegt das?

Sub ErstelleDateien()
Ziel = "D:\Test"  
Stellen = 3
Typ = ".txt"  
AbZeile = 1
Spalte = "B"  
Zeile = AbZeile

Set fso = CreateObject("Scripting.FileSystemObject")  
If Right(Ziel, 1) <> "\" Then Ziel = Ziel & "\"  

Do While Cells(Zeile, Spalte).Value <> ""  
fso.OpenTextFile((Ziel & Cells(Zeile, A).Value & Typ), 2, True).Write Cells(Zeile, Spalte).Value
Zeile = Zeile + 1
Loop
End Sub
140913
Lösung 140913 26.08.2019 aktualisiert um 09:10:33 Uhr
Goto Top
Na hieran
.Value.Value
doppelt gemoppelt hält halt nicht immer face-big-smile

Und hier fehlen bei dir die Anführungszeichen um das A
Cells(Zeile, "A")  
Rinberger
Rinberger 26.08.2019 um 09:10:32 Uhr
Goto Top
Habs bemerkt... trotzdem bekomme ich den Laufzeitfehler 1004.
140913
140913 26.08.2019 aktualisiert um 09:11:26 Uhr
Goto Top
Lies die Ergänzung zu den Anführungszeichen um das A
Rinberger
Rinberger 26.08.2019 um 09:26:53 Uhr
Goto Top
Super face-smile endlich hat es geklappt vielen Dank!