AW: Textdateien zusammenführen
03.04.2008 10:35:37
Daniel
Das zuammenführen in die Textdatei klappt gut.
Allerdings hatte ich mich wohl falsch ausgedrückt, was den Pfad und die Dateinamen angeht.
Die Texte in den Spalten A der Blätter sind bereits der komplette Dateipfad.
Es ist nur so, dass nicht jede Zeile in der einen Tabelle mit der gleichen Zeile der anderen Tabelle übereinstimmt. Ich habe mir hier nun folgende Vorgehensweise vorgestellt:
In Spalte B steht das jeweilig Datum der Dateien. Wenn nun ein Datum der einen Tabelle nicht mit dem Dateum der anderen übereinstimmt, dann soll diese Datum einfach ignoriert werden, und mit dem nächsten Datum weitergemacht werden.
Also
Datei1 Datei2 Datei3
20020502 20020502 20020503
In Datei3 fehlt das Datum der beiden anderen, daher soll das ignoriert werden.
Dadurch verschieben sich aber leider die Zeilen.
Vielleicht ist es einfach besser von Datei1 auszugehen und dann in den anderen beiden Blättern nach diesem Dateum zu suchen, und die Dateien dieser Zeilen zusammenzuführen.
Die neue Datei soll dann in den Pfad ink. Dateinamen in Tabelle "Bestandsliste" H1 & jeweiliges Datum erstellt werden.
Kannst du mir da noch helfen?
Hier noch der aktuelle Code:
Option Explicit
Public Function txt_ReadAll(ByVal sFilename As String) _
As String
Dim F As Integer
Dim sInhalt As String
' Existiert die Datei ?
If Dir$(sFilename, vbNormal) "" Then
F = FreeFile
Open sFilename For Binary As #F
sInhalt = Space$(LOF(F))
Get #F, , sInhalt
Close #F
End If
txt_ReadAll = sInhalt
End Function
Sub TestLese()
Dim NeueTXT As String, Pfad As String, sFilename As String
Dim F As Integer
'Datei 1
Pfad = Sheets("DAX").Range("A1")
NeueTXT = txt_ReadAll(Pfad)
'Datei 2
Pfad = Sheets("AEX").Range("A1")
NeueTXT = NeueTXT & vbCrLf & txt_ReadAll(Pfad)
'Datei 3
Pfad = Sheets("CAC").Range("A1")
NeueTXT = NeueTXT & vbCrLf & txt_ReadAll(Pfad)
ChDir ThisWorkbook.Path
'SpeicherPfad Neu
sFilename = Application.GetSaveAsFilename("test", "Textdateien (*.txt), *.txt")
If sFilename = "Falsch" Then Exit Sub
If LCase(Right(sFilename, 4)) ".txt" Then sFilename = sFilename & ".txt"
F = FreeFile
Open sFilename For Output As #F
Print #F, NeueTXT
Close #F
End Sub