Nacheinander Öffnen von *.txt* - Dateien?

rambkue

Grünschnabel
Hallo,

ich habe in einem Verzeichnis 20 *.txt* - Dateien gespeichert. Jetzt habe ich in Excel ein Makro programmiert, dass erstmal die Anzahl der Dateien erfasst (in diesem Fall 20). Nun sollen alle 20 *.txt* - Dateien einzeln und nacheinander mit Excel geöffnet, Informationen auf ein anderes Blatt übertragen und wieder geschlossen werden. Die Übertragung der Informationen ist nicht das Problem. Das Problem ist das Öffnen und Schließen der Dateien.
Kann mir da einer helfen (wenn möglich mit Code)? Das muss doch sicherlich mit einer Schleife gelöst werden, aber wie?
Danke

MfG Christian
 
Hallo,

also ich habe den Code mal an der Stelle eingefügt, hat aber nicht geklappt. Ich weiß langsam nicht mehr, wie das klappen soll. Habe schon alles probiert.

In der Variablen i ist doch die Anzahl der Dateien gespeichert (also 20). Ich habe ein Verzeichnis, in der sind alle 20 .txt-Dateien abgelegt. Diese Dateien sind nicht durchnummeriert, sondern die Namen sind unterschiedlich, aber alle im selben Format.
Nun möchte ich die 1. Txt-Datei öffnen, Zelle A1 kopieren und in einer separaten Excel-Datei einfügen. Anschließend soll die 1. Txt-Datei wieder geschlossen und die 2. Txt-Datei in diesem Ordner geöffnet werden und wiederum Zelle A1 kopiert und eingefügt werden. Und so soll das bis zur 20. Txt-Datei passieren.

Die Txt-Dateien haben alle einen langen Namen und diese sind in verschiedene Abschnitte unterteilt (werden durch Unterstrich getrennt): PQ_Objekt_RotL1_P_8282300_0.ASC
Die ersten 2 Abschnitte (PQ_Objekt) sind immer gleich, aber ab dem 2. Unterstrich ist die Bezeichnung immer anders.

Wie kann ich die 20 Txt-Dateien alle öffnen, aber nacheinander und nicht alle zur gleichen Zeit?
 
Hallo

Also erstmal nicht verzweifeln ;)

Dieses Code Bsp. zeigt dir einfach 20 (in deinem Bsp.) MsgBox'es nacheinander mit dem Filename.

Code:
Sub openFiles()

Dim path    As String
Dim pattern As String
Dim file    As String

path = "C:\Temp\"    //-> Pfad wo die Files liegen, dies musst du noch anpassen
pattern = "*.asc"      //-> Dateiende
file = Dir(path & pattern)  //-> Das erste File mit der Endung .asc
Do While file <> ""   //-> Hier macht er so lange, bis das letzte File im Verzeichnis durchgegangen ist
    MsgBox file   //-> Hier kommt dein Öffnen der Datei und kopieren Zelle A1.
    file = Dir        //-> Das nächste File im Verzeichnis
Loop

End Sub
Noch Fragen? Wenn ja, zeig mal dein Code.

Viele Grüsse
 
Hallo,

okay, danke erstmal. Werd es mal probieren. Aber vorher bräuchte ich noch die Anweisung wie ich die Files nacheinander öffne und schließe. Zelle A1 zu kopieren und woanders einzufügen ist nicht das Problem.

Gruß
 
Also wie du die Dateien nacheinander durchgehst, hab ich oben beschrieben.

Die Open & Close Funktionen, kannst du in der VB-Hilfe nachschauen oder hier im Forum, z.B. hier.

Viele Grüsse
 
Hi!

Also das klappt irgendwie alles nicht so wie ich das haben möchte. Irgendwo fehlt was oder mach ich was falsch.

Das hab ich bisher realisiert:

Function DZ(str) As Long
Dim DatNam As String
Dim n As Long

DatNam = Dir$(str & "\*.ASC")
Do While Len(DatNam) > 0
n = n + 1
DatNam = Dir$()
Loop
DZ = n
End Function

Sub openFiles()

Dim Blatt As Worksheet
Dim i As Long
Dim Zelle As Range
Const Lw = "C:\"
Const Pfad1 = "C:\Auswertung"
Const Pfad2 = "C:\Daten" 'Hier befinden sich die 20 Txt-Dateien
Const Datei = "Zusammenfassung.xls"

i = DZ(Pfad2)
MsgBox "Im Verzeichnis " & Pfad2 & " befinden sich " & i & " Dateien"

ChDrive Lw
ChDir Pfad1
On Error Resume Next
Workbooks.Open Datei 'Öffnet Zusammenfassung.xls, wo die Informationen aus den 20 Txt-Dateien eingefügt werden sollen

Range("A1:B1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents 'Bereinigt die Zellen von vorhergehenden Auswertungen
Range("A1").Select 'Zelle A1 wird selektiert, wo dann später die 1. Information abgespeichert werden soll

ChDrive Lw
ChDir Pfad2
On Error Resume Next
?
_____________________________________________________________________
Und jetzt weiß ich nicht weiter. Denn jetzt sollen alle 20 Txt-Dateien im Ordner "Daten" nacheinander geöffnet werden. Dabei soll immer die Zelle A8 kopiert und in der "Zusammenfassung.xls" eingefügt werden und zwar beginnend bei Zelle A1 und endend bei Zelle A20. Nachdem eine Txt-Datei erfolgreich geöffnet und die Information aus Zelle A8 erfolgreich übernommen wurde, soll die Datei wieder geschlossen und die nächste Datei geöffnet werden.
Verstehst Du jetzt, was ich meine? Kannst Du mir da weiterhelfen?

Gruß
 
Zurück