Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1224to1228
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
TXT Datei erstellen
chris58
Hallo !
Ich habe eine Frage bezüglich der Erstellung von Txt.Dateien. Der u.a Code, erzeugt mir für alle Spalten eines Excel Dokumentes eine Txt.Datei. Wie kann ich es erreichen, das in dieser Txt.Datei als Inhalt die Spalten B,C und D aufscheinen und als Dateiname das was in der Spalte A steht, so abspeichert.
Danke
chris

Sub ErstelleDateien()
Ziel = "C:\Dokumente und Einstellungen\Test"
Stellen = 3
Typ = ".txt"
AbZeile = 1
Spalte = "A"
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

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: TXT Datei erstellen
05.08.2011 16:35:23
Tino
Hallo,
teste mal so
Sub Test()
Dim F%, n&, rngRange As Range
Dim strPath$, sFullName$, strInhalt$

Const Trennzeichen$ = " " 'Trennzeichen evtl. anpassen 

strPath = "C:\Dokumente und Einstellungen\Test\" 'Pfad Textdatei 

With Tabelle1 'Tabelle evtl. anpassen 
    'ab A2 bis zur letzten gefüllten in A, evtl. anpassen 
    Set rngRange = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 4)
End With

With rngRange
    For n = 1 To .Rows.Count
        sFullName = strPath & .Cells(n, 1) & ".txt"
        strInhalt = .Cells(n, 2) & Trennzeichen & .Cells(n, 3) & Trennzeichen & .Cells(n, 4)
        F = FreeFile
        Open sFullName For Output As #F
        Print #F, strInhalt
        Close #F
    Next n
End With

End Sub
Gruß Tino
Anzeige
AW: TXT Datei erstellen
05.08.2011 17:12:26
chris58
Hallo !
Danke, ja das geht bestens. Eines ist allerdings noch. Kann man bei dem Code noch einen Zeilenumbruch bei 200 einbauen, da wenn ich die Datei im Internet öffne (wird in einem Popup Fenster geöffnet), dann ist der Text nicht im Fenster, sondern geht immer über die Breite von 250 hinaus. Dann würde es perfekt passen.
Danke
chris
AW: TXT Datei erstellen
05.08.2011 17:27:05
Tino
Hallo,
was meinst Du mit "einen Zeilenumbruch bei 200 einbauen"?
Soll wenn der Text länger als 200 Zeichen ist bei 200 ein Zeilenumbruch eingebaut werden?
Gruß Tino
AW: TXT Datei erstellen
05.08.2011 17:36:57
chris58
Hallo,
das Fenster ist ein Popup und öffnet sich............und das Fenster hat im Code, der das Fenster öffnet, eine Weite von 250 (wie genau das definiert ist, kann ich nicht sagen, spiele mich immer damit herum)
Kannst es dir eventuell anschauen........
hier der link, wo ich das einbauen will:
http://members.aon.at/fotoglan/
unter Alfa Romeo/ Edelstahlanlagen ............ klick auf eine ArtNr.
chris
Anzeige
AW: TXT Datei erstellen
05.08.2011 18:11:49
Tino
Hallo,
meine Frage hast Du aber nicht beantworten!
Die drei Zellen werden zusammengeführt und nun ist der Text &gt 200 Zeichen
und da soll ein Umbruch eingebaut werden?
Gruß Tino
AW: TXT Datei erstellen
05.08.2011 18:18:34
chris58
Hallo !
Doch, hab ich, das Fenster wird mit einem Javascript geöffnet. Dieses Javascript hat eine Weite von 250. Da nun der Text aus den drei zeilen zusammengeszogen wird, wird der Text also über die 250 hinausgeschrieben und kann nicht mehr gelesen werden, also wäre ein Zeilenumbruch bei 200 (was auch immer dies aussagt.....glaube aber das sind pixel) gut um den Text lesen zu können. Noch eine Zusatzfrage: Das Feld 4 ist ein Zahlenwert (Preis zb. 150,23) kann man da in den VBA Code das ganze als Zahl definieren.
Danke
chris58
Anzeige
AW: TXT Datei erstellen
05.08.2011 18:18:20
Tino
Hallo,
teste mal ob es so geht.
Option Explicit

Sub Test()
Dim F%, n&, rngRange As Range
Dim strPath$, sFullName$, strInhalt$

Const Trennzeichen$ = " " 'Trennzeichen evtl. anpassen 
Const MaxLenRow& = 200 'Max Zeichen/Zeile 

strPath = "C:\Dokumente und Einstellungen\Test\"  'Pfad Textdatei 

With Tabelle1 'Tabelle evtl. anpassen 
    'ab A2 bis zur letzten gefüllten in A, evtl. anpassen 
    Set rngRange = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 4)
End With

With rngRange
    For n = 1 To .Rows.Count
        sFullName = strPath & .Cells(n, 1) & ".txt"
        strInhalt = .Cells(n, 2) & Trennzeichen & .Cells(n, 3) & Trennzeichen & .Cells(n, 4)
        Call Splitt_Text(strInhalt, MaxLenRow)
        F = FreeFile
        Open sFullName For Output As #F
        Print #F, strInhalt
        Close #F
    Next n
End With

End Sub

Sub Splitt_Text(strText$, MaxRowLen&)
Dim ArrTeil, TextNeu$, varTeil, Teiler&, strTmp$
If Len(strText) > MaxRowLen Then
    ArrTeil = Split(strText, " ")
    Teiler = MaxRowLen
    For Each varTeil In ArrTeil
        strTmp = Trim$(TextNeu & " " & varTeil)
        If Len(strTmp) > Teiler Then
            Teiler = Len(TextNeu) + MaxRowLen
            TextNeu = TextNeu & vbCrLf & varTeil
        Else
            TextNeu = strTmp
        End If
    Next varTeil
    strText = TextNeu
End If
End Sub
Gruß Tino
Anzeige
AW: TXT Datei erstellen
05.08.2011 18:42:26
chris58
Hallo !
Es wird geteilt, jedoch nicht so richtig. Kann man nicht nach einer gewissen Anzahl von Buchstaben den Text zerlegen (ist egal, ob dann keine nach ortogrphischen Gesichtspunkten es stimmt).
chris58
AW: TXT Datei erstellen
05.08.2011 18:47:57
Tino
Hallo,
ändere doch mal den Wert bei
Const MaxLenRow& = 200
Gruß Tino
AW: TXT Datei erstellen
05.08.2011 19:01:43
chris58
Hallo Tino !
Danke, ich habe das Fenster nun größer gemacht und die 200 auf 50 gestellt. Dánke nochmals, nun läuft das bestens. Kann man noch vor dem 4 Feld ein Eurozeichen (€) einauen, dann geht alles.
Besten Danke
chris
AW: TXT Datei erstellen
05.08.2011 19:17:33
Tino
Hallo,
versuch mal und mach aus der Zeile
strInhalt = .Cells(n, 2) & Trennzeichen & .Cells(n, 3) & Trennzeichen & .Cells(n, 4)
diese
strInhalt = .Cells(n, 2) & Trennzeichen & .Cells(n, 3) & Trennzeichen & "€ " & .Cells(n, 4)
Gruß Tino
Anzeige
AW: TXT Datei erstellen
05.08.2011 19:34:34
chris58
Hallo,
danke, funktioniert bestens. (wie kann ich die Kommastellen begrenzen, auf z.B. 124,23 und nicht 124,234567)
Jedenfalsl danke für deine Hilfe.
chris
AW: TXT Datei erstellen
05.08.2011 19:59:31
Tino
Hallo,
müsste man so machen können.
strInhalt = .Cells(n, 2) & Trennzeichen & .Cells(n, 3) & Trennzeichen & Format(.Cells(n, 4), "€ #,##0.00")
Gruß Tino
AW: TXT Datei erstellen
05.08.2011 20:15:03
chris58
Hallo Tino !
Danke, jetzt bin ich für WE zufrieden. Das paßt hervorragend.
Gruß
chris58

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige