Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1800to1804
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
Inhaltsverzeichnis

Excel in Txt

Excel in Txt
26.12.2020 14:45:41
Matthias
Hallo,
ich würde gerne Daten aus einer Exceldatei in eine Txt Datei schreiben lassen.
Die Daten in der Txt müssen eine bestimmte Darstellung haben.
Die Daten sollen ab einschließelich Zeile 2 in der Exceldatei in die Txt Datei übergeben werden bis in Spalte A kein Datum mehr steht.
Für jeden Datensatz in Excel soll eine neue Zeile in der Txt datei gemacht werden.
Der Export soll über eine Schaltfäche erfolgen.
Der aufbau in der Txt datei sollte so sein
"";"";87998,09;"EUR";"";"";"";-146,91;"EUR";29.06.2012;00.00.0000;"Tilgung BHW";"";"";"";"";"";"";"";"";"";"";"";"";"";"Immobilie";"Darlehen";"";;"";;"";"";;;;;;;;;;;
In der Exceldatei ist der Übergabezusammenhang farblich dargestellt.
https://www.herber.de/bbs/user/142555.xlsm
Kann mir jemand hierzu helfen. Habe keinerlei Ahnung von VBA

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel in Txt
26.12.2020 15:42:16
Nepumuk
Hallo Matthias,
teste mal:
Option Explicit

Public Sub Ausgabe()
    
    Dim intFileNumber As Integer
    Dim lngRow As Long, ialngIndex As Long
    Dim astrTemp(3) As String, strText As String
    
    Reset
    intFileNumber = FreeFile
    
    astrTemp(0) = Chr$(34) & Chr$(34) & ";"
    
    For ialngIndex = 1 To 2
        astrTemp(1) = astrTemp(1) & astrTemp(0)
    Next
    For ialngIndex = 1 To 3
        astrTemp(2) = astrTemp(2) & astrTemp(0)
    Next
    For ialngIndex = 1 To 13
        astrTemp(3) = astrTemp(3) & astrTemp(0)
    Next
    
    Open ThisWorkbook.Path & "\Ausgabe.txt" For Output As #intFileNumber
    
    For lngRow = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        
        Print #intFileNumber, astrTemp(1) & Format$(Cells(lngRow, 3).Value, "#.00") & ";" & Chr$(34) & "EUR" & Chr$(34) & _
            astrTemp(2) & Format$(Cells(lngRow, 2).Value * -1, "#0.00") & ";" & Chr$(34) & "EUR" & Chr$(34) & ";" & _
            Trim$(Cells(lngRow, 1).Text) & ";00.00.0000;" & Chr$(34) & Cells(lngRow, 4).Text & Chr$(34) & ";" & _
            astrTemp(3) & Chr$(34) & Cells(lngRow, 5).Text & Chr$(34) & ";" & Chr$(34) & Cells(lngRow, 6).Text & _
            Chr$(34) & ";" & Chr$(34) & Chr$(34) & ";;" & Chr$(34) & Chr$(34) & ";;" & Chr$(34) & _
            Chr$(34) & ";" & Chr$(34) & Chr$(34) & String$(11, ";")
        
        
    Next
    
    Close #intFileNumber
End Sub

Gruß
Nepumuk
Anzeige
AW: Excel in Txt
26.12.2020 16:31:42
Matthias
danke
habe noch eine Fehler entdeckt bei mir in den Angaben
ich habe angegeben
"";"";87998,09;"EUR
richtig muss es aber sein
;;87998,09;"EUR
Was muss man dann Anpassen?
AW: Excel in Txt
26.12.2020 16:41:44
Nepumuk
Hallo Matthias,
so?
Option Explicit

Public Sub Ausgabe()
    
    Dim intFileNumber As Integer
    Dim lngRow As Long, ialngIndex As Long
    Dim astrTemp(3) As String
    
    Reset
    intFileNumber = FreeFile
    
    astrTemp(0) = Chr$(34) & Chr$(34) & ";"
    
    For ialngIndex = 1 To 2
        astrTemp(1) = astrTemp(1) & astrTemp(0)
    Next
    For ialngIndex = 1 To 3
        astrTemp(2) = astrTemp(2) & astrTemp(0)
    Next
    For ialngIndex = 1 To 13
        astrTemp(3) = astrTemp(3) & astrTemp(0)
    Next
    
    Open ThisWorkbook.Path & "\Ausgabe.txt" For Output As #intFileNumber
    
    For lngRow = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        
        Print #intFileNumber, astrTemp(1) & ";" & Format$(Cells(lngRow, 3).Value, "#.00") & ";" & Chr$(34) & "EUR" & Chr$(34) & _
            ";" & astrTemp(2) & Format$(Cells(lngRow, 2).Value * -1, "#0.00") & ";" & Chr$(34) & "EUR" & Chr$(34) & ";" & _
            Trim$(Cells(lngRow, 1).Text) & ";00.00.0000;" & Chr$(34) & Cells(lngRow, 4).Text & Chr$(34) & ";" & _
            astrTemp(3) & Chr$(34) & Cells(lngRow, 5).Text & Chr$(34) & ";" & Chr$(34) & Cells(lngRow, 6).Text & _
            Chr$(34) & ";" & Chr$(34) & Chr$(34) & ";;" & Chr$(34) & Chr$(34) & ";;" & Chr$(34) & _
            Chr$(34) & ";" & Chr$(34) & Chr$(34) & String$(11, ";")
        
        
    Next
    
    Close #intFileNumber
End Sub

Gruß
Nepumuk
Anzeige
AW: Excel in Txt
26.12.2020 16:54:26
Matthias
Hallo
danke
nein nicht ganz
jetzt heisst es so
"";"";;87998,09;"EUR";"";"";"";
Das passt auch so weit bis auf die vier Anführüngszeichen am Anfang die müssen noch raus.
;;87998,09;"EUR";"";"";"";
AW: Excel in Txt
26.12.2020 16:59:12
Matthias
hallo noch was gefunden
und vor den
87998,09 ist ein ; zuviel
AW: Excel in Txt
26.12.2020 17:00:56
Nepumuk
Hallo Matthias,
poste bitte mal den korrekten String.
Gruß
Nepumuk
AW: Excel in Txt
26.12.2020 17:17:46
Matthias
Hallo
Habe gesehen das der Code noch den Empfänger berücksichtigen kann.
Habe diesen in der Spalte G noch ergänzt und auch im Code.
der Code sollte daher nun final lauten.
;;87998,09;"EUR";"";"";"DKB";-146,91;"EUR";29.06.2012;00.00.0000;"Tilgung BHW";"";"";"";"";"";"";"";"";"";"";"";"";"";"Immobilie";"Darlehen";"";;"";;"";"";;;;;;;;;;;
Siehe hierzu die Datei
https://www.herber.de/bbs/user/142558.xlsm
Zudem ist in der Version des Code von dir, der in der DAtei berücksichtigt wurde, der Fehler enthalten, dass zu Beginn immer in der Txt-Datei
"";"";;
geschrieben wird statt
"";"";
Hoffe du kannst mir hier noch abschließend helfen
Gruß
Anzeige
AW: Excel in Txt
26.12.2020 17:23:07
Matthias
Zudem ist in der Version des Code von dir, der in der DAtei berücksichtigt wurde, der Fehler enthalten, dass zu Beginn immer in der Txt-Datei
"";"";;
geschrieben wird statt
"";"";
sry es muss natürlich so lauen
;;
AW: Excel in Txt
26.12.2020 17:38:32
Nepumuk
Hallo Matthias,
so ok?
Option Explicit

Public Sub Ausgabe()
    
    Dim intFileNumber As Integer
    Dim lngRow As Long, ialngIndex As Long
    Dim astrTemp(2) As String
    
    Reset
    intFileNumber = FreeFile
    
    astrTemp(0) = Chr$(34) & Chr$(34) & ";"
    
    For ialngIndex = 1 To 2
        astrTemp(1) = astrTemp(1) & astrTemp(0)
    Next
    For ialngIndex = 1 To 13
        astrTemp(2) = astrTemp(2) & astrTemp(0)
    Next
    
    Open ThisWorkbook.Path & "\Ausgabe.txt" For Output As #intFileNumber
    
    For lngRow = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        
        Print #intFileNumber, ";;" & Format$(Cells(lngRow, 3).Value, "#.00") & ";" & Chr$(34) & "EUR" & Chr$(34) & _
            ";" & astrTemp(1) & Chr$(34) & "DKB" & Chr$(34) & ";" & Format$(Cells(lngRow, 2).Value * -1, "#0.00") & _
            ";" & Chr$(34) & "EUR" & Chr$(34) & ";" & Trim$(Cells(lngRow, 1).Text) & ";00.00.0000;" & Chr$(34) & _
            Cells(lngRow, 4).Text & Chr$(34) & ";" & astrTemp(2) & Chr$(34) & Cells(lngRow, 5).Text & Chr$(34) & _
            ";" & Chr$(34) & Cells(lngRow, 6).Text & Chr$(34) & ";" & Chr$(34) & Chr$(34) & ";;" & Chr$(34) & _
            Chr$(34) & ";;" & Chr$(34) & Chr$(34) & ";" & Chr$(34) & Chr$(34) & String$(11, ";")
        
    Next
    
    Close #intFileNumber
    
End Sub

Gruß
Nepumuk
Anzeige
AW: Excel in Txt
26.12.2020 17:53:03
Matthias
Perfekt es funktioniert :)
Leider brauch ich anscheinend eine laufende ID um alle Daten der Datei wirklich einlesen zu können sonst bricht er nach dem ersten Datensatz ab.
;;87998,09...
d..h. jede Zeile in der txtdatei müsste einen Wert annehemn und der erste Datensatz in der txt datei dann so lauten
1;1;87998,09...
der zweite dann
2;2;... usw
Dann laufen die Übetragungen durch.
Hast du noch eine Möglichkeit das irgendwie mit aufzunehmen?
gruß
AW: Excel in Txt
26.12.2020 17:59:39
Nepumuk
Hallo Matthias,
mühsam ernährt sich das Eichhörnchen.
Option Explicit

Public Sub Ausgabe()
    
    Dim intFileNumber As Integer
    Dim lngRow As Long, ialngIndex As Long, lngCount As Long
    Dim astrTemp(2) As String
    
    Reset
    intFileNumber = FreeFile
    
    astrTemp(0) = Chr$(34) & Chr$(34) & ";"
    
    For ialngIndex = 1 To 2
        astrTemp(1) = astrTemp(1) & astrTemp(0)
    Next
    For ialngIndex = 1 To 13
        astrTemp(2) = astrTemp(2) & astrTemp(0)
    Next
    
    Open ThisWorkbook.Path & "\Ausgabe.txt" For Output As #intFileNumber
    
    For lngRow = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        
        lngCount = lngCount + 1
        
        Print #intFileNumber, CStr(lngCount) & ";" & CStr(lngCount) & ";" & Format$(Cells(lngRow, 3).Value, "#.00") & _
            ";" & Chr$(34) & "EUR" & Chr$(34) & ";" & astrTemp(1) & Chr$(34) & Cells(lngRow, 7).Text & Chr$(34) & ";" & _
            Format$(Cells(lngRow, 2).Value * -1, "#0.00") & ";" & Chr$(34) & "EUR" & Chr$(34) & ";" & _
            Trim$(Cells(lngRow, 1).Text) & ";00.00.0000;" & Chr$(34) & Cells(lngRow, 4).Text & Chr$(34) & ";" & _
            astrTemp(2) & Chr$(34) & Cells(lngRow, 5).Text & Chr$(34) & ";" & Chr$(34) & Cells(lngRow, 6).Text & _
            Chr$(34) & ";" & Chr$(34) & Chr$(34) & ";;" & Chr$(34) & Chr$(34) & ";;" & Chr$(34) & Chr$(34) & ";" & _
            Chr$(34) & Chr$(34) & String$(11, ";")
        
    Next
    
    Close #intFileNumber
    
End Sub

Gruß
Nepumuk
Anzeige
AW: Excel in Txt
26.12.2020 17:53:19
Nepumuk
Ooooooooooooops,
die neue Spalte ist noch hart kodiert. Besser so:
Print #intFileNumber, ";;" & Format$(Cells(lngRow, 3).Value, "#.00") & ";" & Chr$(34) & "EUR" & Chr$(34) & _
    ";" & astrTemp(1) & Chr$(34) & Cells(lngRow, 7).Text & Chr$(34) & ";" & Format$(Cells(lngRow, 2).Value * -1, "#0.00") & _
    ";" & Chr$(34) & "EUR" & Chr$(34) & ";" & Trim$(Cells(lngRow, 1).Text) & ";00.00.0000;" & Chr$(34) & _
    Cells(lngRow, 4).Text & Chr$(34) & ";" & astrTemp(2) & Chr$(34) & Cells(lngRow, 5).Text & Chr$(34) & _
    ";" & Chr$(34) & Cells(lngRow, 6).Text & Chr$(34) & ";" & Chr$(34) & Chr$(34) & ";;" & Chr$(34) & _
    Chr$(34) & ";;" & Chr$(34) & Chr$(34) & ";" & Chr$(34) & Chr$(34) & String$(11, ";")

Gruß
Nepumuk
Anzeige
AW: Excel in Txt
26.12.2020 18:00:20
Matthias
danke.
hast du meine Beitrag zuvor gesehen.
Dass die zeilen in der txt datei durchnummeriert sein müssen?
Gruß
AW: Excel in Txt
26.12.2020 19:15:25
Matthias
Perfekt Danke
Läuft voll durch :9
gruß
AW: Excel in Txt
26.12.2020 17:19:32
Herbert_Grom
Hallo Matthias,
schau mal, ob es das ist, was du suchst:
Sub Ausgabe()
Dim intFileNumber As Integer
Dim lngRow As Long, iaLngIndex As Long
Dim aStrTemp(3) As String
Reset
intFileNumber = FreeFile
aStrTemp(1) = ";"
For iaLngIndex = 1 To 3
aStrTemp(2) = aStrTemp(2) & aStrTemp(0)
Next
For iaLngIndex = 1 To 13
aStrTemp(3) = aStrTemp(3) & aStrTemp(0)
Next
Open ThisWorkbook.Path & "\Ausgabe.txt" For Output As #intFileNumber
For lngRow = 3 To Cells(Rows.Count, 1).End(xlUp).Row
Print #intFileNumber, aStrTemp(1) & Format$(Cells(lngRow, 3).Value, "#.00") & ";" &  _
Chr$(34) & _
"EUR" & Chr$(34) & ";" & aStrTemp(2) & Format$(Cells(lngRow, 2).Value * -1, "#0.00") &  _
";" & _
Chr$(34) & "EUR" & Chr$(34) & ";" & Trim$(Cells(lngRow, 1).Text) & ";00.00.0000;" &  _
Chr$(34) & _
Cells(lngRow, 4).Text & Chr$(34) & ";" & aStrTemp(3) & Chr$(34) & Cells(lngRow, 5). _
Text & Chr$(34) & _
";" & Chr$(34) & Cells(lngRow, 6).Text & Chr$(34) & ";" & Chr$(34) & Chr$(34) & ";;" &  _
Chr$(34) & _
Chr$(34) & ";;" & Chr$(34) & Chr$(34) & ";" & Chr$(34) & Chr$(34) & String$(11, ";")
Next
Close #intFileNumber
Beep
End Sub
Servus
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige