30.09.2016, 14:00
Hallo liebe Community,
bisher habt ihr mir gut helfen können.
Ich habe erneut ein Anliegen.
Ich habe mehrere Ordner in denen immer 9 txt-Dateien sind die immer gleich aufgebaut sind.
Dazu habe ich folgenden Code erstellt.
So weit so gut.
Das Mako funktioniert, jedoch habe ich aktuell ca.100 Ordner, d.h. ich müsste 900 Text-Dateien auswählen.
Dies ist nicht nur zeitaufwendig sondern auch extrem nervig.
Wie schaffe ich es, dass ich zumindest ersteinmal alle Textdateien innerhalb eines Ordners, den ich auswähle in das Tabellenblatt "Zwischenspeicher" kopieren kann. Dann könnte ich wenigsten die relevanten Spalten der 9 Text-dateien auf einen Schlag auf das Tabellenblatt "Datenspeicher" verteilen. Dann hätte ich schonmal die Anzahl der Klick von 900 auf 100 reduziert.
Noch besser wäre es natürlich wenn Excel immer einen Pfad zurückspringt und dann die Ordner 1,2,3,4,....,100 durchgeht und die Textdateien pro Schleifendurchlauf kopiert und demnach 100 mal eine Schleife durchläuft.
D.h. 1 klick, und Excel geht so vor (Modellierung):
Ordnerpfad festlegen in denen alle 100 Unterordner liegen: (Beispiel: C:\...\Hier die 100 Ordner\
Steuerelement klicken
Schleife startet (Bedingung ist, solange Ordner vorhanden sind)
Schleife 1:
C:\...\Hier die 100 Ordner\Ordner 1
Textdatei 1 - 9 kopieren in "Zwischenspeicher"
relevanten Spalten auf "Datenspeicher" verteilen
wieder zurück zum Überordner C:\...\Hier die 100 Ordner\ springen
order = nächster order (hier fehlt mir die Variable, ich weiß nicht wie ich die Ordner variabel machen soll)
Schleife 2:
C:\...\Hier die 100 Ordner\Ordner 2
Textdatei 1 - 9 kopieren in "Zwischenspeicher"
relevanten Spalten auf "Datenspeicher" verteilen
wieder zurück zum Überordner C:\...\Hier die 100 Ordner\ springen
order = nächster order
......
Ich hoffe ihr könnte nachvollziehen was ich vor habe :D
Wenn jemand Anregungen, Lösungsvorschläge oder sonstige Idee hat wie man das Problem vielleicht anders/ besser lösen kann dann wäre ich euch sehr verbunden.
mfg
Christian
bisher habt ihr mir gut helfen können.
Ich habe erneut ein Anliegen.
Ich habe mehrere Ordner in denen immer 9 txt-Dateien sind die immer gleich aufgebaut sind.
Dazu habe ich folgenden Code erstellt.
Code:
Sub TextDateienImportieren()
For n = 1 To 9
Sheets("Zwischenspeicher").Select
Dim zahl As Integer
zahl = Cells(1, 2) 'hier wird festgelegt in welche Zeile auf dem Tabellenblatt "Daten" die Spalte kopiert wird
Range("A4").Select 'hier wird der Inhalt reinkopiert bzw. der Startpunkt festgelegt
Selection.QueryTable.Refresh BackgroundQuery:=False 'hier importiere ich nach und nach die 9 textdateien
Range("G4").Select 'Diese Spalte wird kopiert
Range(Selection, Selection.End(xlDown)).Select
Range("G4:G130").Select
Selection.Copy
Sheets("Datenspeicher").Select
Range("z" & zahl).Select 'und hier der Zeile ("zahl") entsprechend eingefügt
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Sheets("Zwischenspeicher").Select
zahl = zahl + 1 'danach soll die spalte aus der neuen text datei in die nächste zeile kopiert werden.
Cells(1, 2) = zahl
Next n
End Sub
Das Mako funktioniert, jedoch habe ich aktuell ca.100 Ordner, d.h. ich müsste 900 Text-Dateien auswählen.
Dies ist nicht nur zeitaufwendig sondern auch extrem nervig.
Wie schaffe ich es, dass ich zumindest ersteinmal alle Textdateien innerhalb eines Ordners, den ich auswähle in das Tabellenblatt "Zwischenspeicher" kopieren kann. Dann könnte ich wenigsten die relevanten Spalten der 9 Text-dateien auf einen Schlag auf das Tabellenblatt "Datenspeicher" verteilen. Dann hätte ich schonmal die Anzahl der Klick von 900 auf 100 reduziert.
Noch besser wäre es natürlich wenn Excel immer einen Pfad zurückspringt und dann die Ordner 1,2,3,4,....,100 durchgeht und die Textdateien pro Schleifendurchlauf kopiert und demnach 100 mal eine Schleife durchläuft.
D.h. 1 klick, und Excel geht so vor (Modellierung):
Ordnerpfad festlegen in denen alle 100 Unterordner liegen: (Beispiel: C:\...\Hier die 100 Ordner\
Steuerelement klicken
Schleife startet (Bedingung ist, solange Ordner vorhanden sind)
Schleife 1:
C:\...\Hier die 100 Ordner\Ordner 1
Textdatei 1 - 9 kopieren in "Zwischenspeicher"
relevanten Spalten auf "Datenspeicher" verteilen
wieder zurück zum Überordner C:\...\Hier die 100 Ordner\ springen
order = nächster order (hier fehlt mir die Variable, ich weiß nicht wie ich die Ordner variabel machen soll)
Schleife 2:
C:\...\Hier die 100 Ordner\Ordner 2
Textdatei 1 - 9 kopieren in "Zwischenspeicher"
relevanten Spalten auf "Datenspeicher" verteilen
wieder zurück zum Überordner C:\...\Hier die 100 Ordner\ springen
order = nächster order
......
Ich hoffe ihr könnte nachvollziehen was ich vor habe :D
Wenn jemand Anregungen, Lösungsvorschläge oder sonstige Idee hat wie man das Problem vielleicht anders/ besser lösen kann dann wäre ich euch sehr verbunden.
mfg
Christian