Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ordner mit txt-Dateien automatisch importieren

Ordner mit txt-Dateien automatisch importieren
Ben
Guten Tag,
ich habe eine Unmenge von Messdaten die im .txt-Format vorliegen und folgendermaßen aufgebaut sind:
Time,Ampl
-2.001929e-007,0.00881118
-1.991929e-007,0.0056113
-1.981929e-007,-0.00078845
-1.971929e-007,0.00881118
...
Zur vernünftigen Darstellung möchte ich die Datensätze in Excel2007 importieren. Ein Makro, was dieses tut, habe ich schon erstellt.
Hier das Makro:
----------------------------------------------------

Sub LII_Datenimport()
ChDir "D:\Eigene Dateien\TiRe-LII\Flammenreaktor\TiRe-LII-Experimente\Fe2O3"
' Auswahlmaske vorbelegen
FileFilter = "Textdateien (*.txt), *.txt, Alle Dateien (*.*), *.*"
' Standarddialog Öffnen aufrufen
fname = Application.GetOpenFilename(FileFilter, 1, "Zu importierende txt-Datei...")
If fname = False Then Exit Sub
' Hier was wie WorkBooks.Open oder WorkBooks.OpenText anfügen, z.B.:
Workbooks.OpenText Filename:=fname, Origin:=xlMSDOS, StartRow:=6, DataType:=xlDelimited,  _
TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, _
Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1), Array(4, 1)), DecimalSeparator:=".", ThousandsSeparator _
:=" ", TrailingMinusNumbers:=True
End Sub

----------------------------------------------------
Allerdings muss man es für jede txt-Datein neu ausführen...Pro Messkampagne kommen schnell hundert
Messdateien zusammen, so dass das ziemlich mühselig ist!
Am leibsten wäre es mir, wenn ich nur den Ordner auswählen müsste, in dem sich die txt-files befinden, und es wird in einem excel-sheet in Spalte A die Zeitspalte (time) und ,daneben (Spalte B, C, D, ...) die Ampl-Spalte der txt-files eingelesen, da die time-Spalte meist für alle Dateien identisch ist! Wenn dann noch in Zeile 1 des neu angelegten Excel-Sheets über der Ampl-Spalte der jeweilige Dateiname des txt-files stehen würde, wäre es perfekt!!!
Ist es möglich das Speichern des neuen Excel-Sheets über den "Speichern unter"-Dialog zu vollziehen?
Über Eure Tips wäre ich mehr als dankbar!!!
Grüße,
Ben
AW: Ordner mit txt-Dateien automatisch importieren
13.11.2009 10:35:26
Oberschlumpf
Hi Ben
Kannst du uns ne Bsp-Textdatei und deine Exceldatei, in die alles rein soll, zeigen?
Bitte im xls-Format
Ciao
Thorsten
AW: Ordner mit txt-Dateien automatisch importieren
13.11.2009 10:59:17
Ben
Hallo Thorsten,
das ist ja mal ne schnelle Antwort...
Die Excel-Datei, in die die Daten reinsollen, ist beliebig. Also einfach eine neue Mappe.
Zu dem Dateiname, der über jeder Spalte stehen soll, ist es möglich nur einen Teil des Dateinamens (die ersten 9 Zeichen) dort zu importieren? Die txt-files sind alle derart benannt (M001_PMT1_...)., demnach sollte dann in Zeile 1 stehen: time | M001_PMT1 | M001_PMT2 | M002_PMT2 | M002_PMT2 usw.
Ich kann dir mal 4 Beispieldateien zuschicken (per File-Upload?)!
https://www.herber.de/bbs/user/65855.txt (M001_PMT1_35mbar_200mm_2,0sccm_532_50mJ_360mV.txt)
https://www.herber.de/bbs/user/65856.txt (M001_PMT2_35mbar_200mm_2,0sccm_532_50mJ_360mV.txt)
https://www.herber.de/bbs/user/65857.txt (M002_PMT1_35mbar_200mm_2,0sccm_532_50mJ_360mV.txt)
https://www.herber.de/bbs/user/65858.txt (M002_PMT2_35mbar_200mm_2,0sccm_532_50mJ_360mV.txt)
Besten Dank schonmal!
Ben
Anzeige
AW: Ordner mit txt-Dateien automatisch importieren
13.11.2009 15:09:02
Oberschlumpf
Hi Ben
Hier meine Interpretation deiner "Wunschliste" :-)
https://www.herber.de/bbs/user/65872.xls
Anhand deiner Bsp-Dateien wird nach (deiner) Verzeichnisauswahl die erste TXT-Datei eingelesen.
Erst, wenn der Code in der txt-Datei die Zeile "Time,Ampl" findet, wird in der Excel-Datei in
Zeile1/Spalte2 der Name der txt-Datei geschrieben (9 Zeichen)
Zeile2/Spalte1 "Time" geschrieben
Zeile2/Spalte2 "Ampl" geschrieben
alle weiteren Zeilen/Spalte1 die Werte für "Time" geschrieben
alle weiteren Zeilen/Spalte2 die Werte für "Ampl" geschrieben
bei allen weiteren txt-Dateien wird nur in
Zeile1/nächste freie Spalte der Name der txt-Datei geschrieben (9 Zeichen)
Zeile2/nächste freie Spalte "Ampl" geschrieben
alle weiteren Zeilen/nächste freie Spalte die Werte für "Ampl" geschrieben
So, und ab jetzt gilt für dich der Code:

If "ich hab alles richtig gemacht" = True Then
"starte die Datei, guck, achte und staune :-)"
End
Else
"zähle langsam bis 10 :-), " & _
"warte noch weitere 3x 1-10 zählen..grins.." & _
"beschreib hier, was noch nicht passt"
OpenEnd :-)
End If

Hilfts denn?
Ciao
Thorsten
Anzeige
AW: Ordner mit txt-Dateien automatisch importieren
13.11.2009 15:24:27
Ben
Hallo Thorsten,
habs ausprobiert und es funzt...fast so wie ich es mir vorstelle! ;-)
Leider passiert beim Einlesen ein Fehler, so dass bei der time-Spalte
aus -2.001929e-007 wird -0,2001929 und in der ampl-Spalte
aus 0.00881118 wird 881118 !
Kann man die komplette 2. Zeile weglassen und dafür time in A(1,1) schreiben lassen?
Sonst funktioniert dein Code sehr gut!
Danke...
Alternativ:was muss man ändern, um anstatt einer Ordnerauswahl, eine Dateiauswahl (mit mehreren Dateien) zu bekommen? Falls in einem Ordner Messsignale mit verschiedenen Zeitachsen aufgenommen wurden.
Besten Dank!
Anzeige
AW: Ordner mit txt-Dateien automatisch importieren
13.11.2009 16:13:39
Ben
Ich nochmal...
Das Problem mit Zeile 2 ( Löschen dieser Zeile) hab ich behoben, jetzt fehlt nur noch der Rest! ;)
Gruß,
Ben
AW: Ordner mit txt-Dateien automatisch importieren
13.11.2009 22:23:35
Oberschlumpf
Hi Ben
Deine erste Antwort kam leider "zu spät" :-) (ich war weg)
Und ja...mist...hast Recht. Zumindest, was die Ampl-Spalte bedeutet. Es war mir schlicth nich aufgefallen, dass aus 0,000... auf einmal 1000er-Zahlen wurden.
Aber die erste Spalte war eigtl OK. Denn
-2.001929e-007
ist eigtl dasselbe wie
-0,2001929
da e-007 "nur" die wissenschaftliche Schreibweise für 7 Stellen hinter dem Komma bedeutet.
Na ja, den Unterschied merkte ich in der Darstellung schon, hatte mich aber nich weiter drum gekümmert, da ich dachte, der Wert aber nicht die Darstellung sei wichtig.
Nur eben die Ampl-Spalte...tztztz
Aber ok.
Hier mein 2. Versuch
https://www.herber.de/bbs/user/65887.xls
Passt es diesemal besser?
Ciao
Thorsten
Anzeige
AW: Ordner mit txt-Dateien automatisch importieren
16.11.2009 11:19:07
Ben
Hi Thorsten,
passt diesmal viel viel besser, bis auf ein paar Kleinigkeiten (die ich aber vorher auch nicht beschrieben hatte)! Hier meine Wuschliste... ;)
- ein Änderungswunsch wäre noch den Ordner-Auswahl-Dialog durch einen Datei-Auswahl-Dialog zu
ersetzen, mit dem auch mehrere Dateien ausgewählt werden können.
- eine Spalte B einfügen, die die time-Spalte mit 10^9 multipliziert, damit ich direkt die Einheit ns habe
- am besten von Anfang an, ein neues Excel-Sheet öffnen, damit ich das Dokument mit dem Makro nicht
immer neu öffnen muss...
- alle Spalten, die einen Messwert von PMT2 enthalten, in hellgrau einfärben
So, und jetzt genug des Wunschkonzertes! ;)
Übrigens noch einmal vielen Dank, du ersparst mir einen Haufen Arbeit...und graue Haare!
Grüße,
Ben
Anzeige
AW: Ordner mit txt-Dateien automatisch importieren
16.11.2009 12:08:49
Oberschlumpf
Hi Ben
Erst mal, ob ich die Zeit und das Wissen habe, um deine Wunschliste abarbeiten zu können, weiß ich nicht.
Dann habe ich noch einige Fragen:
"...- ein Änderungswunsch wäre noch den Ordner-Auswahl-Dialog durch einen Datei-Auswahl-Dialog zu
ersetzen, mit dem auch mehrere Dateien ausgewählt werden können...."

Verstehe ich nicht, denn mit meinem Code werden aus dem gewählten Verzeichnis ALLE gefundenen txt-Dateien eingelesen.
Wie soll es also gehen, dass "mehrere Dateien" noch mehr als ALLE sind? :)
Außerdem setzt der Code voraus, dass eben alle zu verarbeitenden Dateien den gleichen Aufbau besitzen.
"...- am besten von Anfang an, ein neues Excel-Sheet öffnen, damit ich das Dokument mit dem Makro nicht
immer neu öffnen muss..."

Verstehe ich vielleicht gar nicht. Du musst ja auf jeden Fall die Datei öffnen, in der sich das Makro befindet.
Oder meinst du, das Makro soll eine ganz neue Excel-Datei erstellen, in der dann die Daten aus den txt-Dateien eingelesen werden? Also außerhalb der Excel-Datei, in der sich das Makro befindet?
Nützt ja nix, manche Wünsche muss man sich eben erst erarbeiten :-P :)
Ciao
Thorsten
Anzeige
AW: Ordner mit txt-Dateien automatisch importieren
16.11.2009 12:24:55
Ben
Hi Thorsten,
mit dem Datei-Auswahl-Dialog meine ich Folgendes: es kann sein, dass während eines Messtages Messsignale mit verschiedenen Zeitachsen gemessen werden und alle in einem Ordner abgespeichert werden. Wenn ich dann den Ordner auswähle und die Dateien importieren lasse, werden dann ja nur die Zeitwerte der ersten Datei genommen... Also, wenn ich dann anstatt aller Dateien über die Ordnerauswahl nur bestimmte Dateien auswählen könnte, würde mir erspart bleiben, vorher noch Ordner für die jeweiligen Zeitachsen anzulegen! Dein Code tut auch genau das, was ich eigentlich am Anfang wollte, bis mir das Problem mit den verschiedenen Zeitachsen aufgefallen ist!
Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt?
Die Sache mit dem neuen Excel-Sheet kannst du getröst vergessen, war nicht wirklich durchdacht von mir gewesen...
Danke für deine Mühen!
Anzeige
AW: Ordner mit txt-Dateien automatisch importieren
16.11.2009 12:43:12
Oberschlumpf
Hi Ben
Noch verstehe ich es nicht :-)
...werden dann ja nur die Zeitwerte der ersten Datei genommen...
Ja, genau so wolltest du es ja auch zu Beginn.
Und auch, wenn du jetzt verschiedene Dateien mit unterschiedlichen Zeitachsen auswählen könntest, dann würde doch der Code auch weiterhin nur die Zeitachse der ersten gefundenen Datei anzeigen.
? (soll das widerspiegeln, was gerad in meinem Kopf vorgeht :-) )
Ahhhhhhh!!!..ich glaub, ich habs! :-)
- im selben Ordner werden ALLE txt-Dateien mit unterschiedlichen Zeitachsen gespeichert
- anhand der Dateinamen weißt du schon, in welchen Dateien die gleiche Zeitachse vorhanden ist
- und deshalb lieber Dateiauswahl und nicht nur Ordnerauswahl, damit eben NICHT alle Dateien, sondern nur DIE eingelesen werden, bei denen du weißt, sie haben die gleiche Zeitachse
Wenns nun auch bei mir "Klick" gemacht hat, dann...ok, das krieg ich hin.
Aber es gibt noch ne andere Frage (war mir in meiner ersten Fragerunde noch nicht bewusst)
Wie sieht es aus mit der Darstellung in der neuen Spalte B?
Bisher sieht es so aus:
Userbild
oder soll es so aussehen:
Userbild
Beide Darstellungen bedeuten zwar den selben Wert, aber das Problem mit oder ohne E-Anzeige hatten wir ja schon mal ;-)
Ciao
Thorsten
Anzeige
AW: Ordner mit txt-Dateien automatisch importieren
16.11.2009 12:56:47
Ben
Ganz genau! Alle txt-files sind in einem Ordner!
Mit der Darstellung der ns-Zeitwerte ist nur eine Formatierungsache. So wie es in dem unterem Screenshot ist, sollte es aussehen!
Bekommst du das auch mit dem grau-hinterlegen der PMT2-Spalten hin? Das wären quasi ab Spalte C jede zweite (also C, E, G, ...)!?
Schankedön!
Gruß,
Ben
AW: Ordner mit txt-Dateien automatisch importieren
16.11.2009 14:53:06
Oberschlumpf
so..da bin ich wieder...und auch die neue Datei:
https://www.herber.de/bbs/user/65946.xls
wie gewünscht:
- Ordner-Auswahl-Dialog wurde durch Datei-Auswahl-Dialog ersetzt
- eine "neue" Spalte B wurde eingefügt, die die time-Spalte mit 10^9 multipliziert, und somit die Einheit ns darstellt
- alle Spalten, die einen Messwert von PMT2 enthalten, wurden in hellgrau eingefärbt
(was bedeutet, wenn nur Dateien mit nicht PMT2 ausgewählt wurden, dass dann gar keine hellgraue Einfärbung durchgeführt wird)
Hilfts?
Ciao
Thorsten
Anzeige
AW: Ordner mit txt-Dateien automatisch importieren
16.11.2009 15:39:26
Ben
Perfekt!!!
Funzt ideal!
Den Rest (falls mir noch was einfällt), versuche ich dann zunächst mal alleine.
Im Moment brauch ich allerdings nicht mehr...damit werde ich erstmal sehr gut arbeiten können!
Und wenn doch, dann kenn ich ja jetzt jemanden kompetenten! ;)
Vielen Dank für deine Mühen!
Grüße,
Ben
P.S.: Der nächste Schritt wird dann die automatische Erstellung von Diagrammen sein, aber jetzt noch
nicht, da ich mir noch nicht klar darüber bin, ob ich diese mit Excel oder mit Origin machen werde.
AW: Ordner mit txt-Dateien automatisch importieren
16.11.2009 17:11:00
Ben
Hallo Thorsten,
*Nervmodus an*...hab mich an einer Änderung versucht und kläglich gescheitert.
Ich hätte gerne die Messbedingungen, die in dem Dateinamen der txt-files sind, im Excel-Sheet übertragen.
Das Ganze soll folgendermaßen aussehen: https://www.herber.de/bbs/user/65953.xlsx
Ich habe deinen Code schon etwas bearbeitet: Zellen A1 bis A8 werden eingefügt und formatiert. NUr hapert es jetzt an dem Auffüllen mit Informationen! ;)
Der abgeänderte Code sieht bis jetzt so aus: https://www.herber.de/bbs/user/65954.txt
Eine Idee hätte ich mittels der Funktion mid den gewünschten Teil des Dateinamens auszulesen, aber, dass der dann an der richtigen Stelle eingefügt wird, bleibt das große (für mich zumindest) Problem... :(
Ne Idee?
*Nervmodus aus*
Gruß,
Ben
AW: Ordner mit txt-Dateien automatisch importieren
16.11.2009 17:24:22
Oberschlumpf
Hi Ben
*Erinnerungsmodus an*
Ich hab noch immer kein Excel 2007. Daher bitte die Datei im xls-Format ;-)
*Erinnerungsmodus aus*
Ciao
Thorsten
AW: Ordner mit txt-Dateien automatisch importieren
16.11.2009 20:58:14
Ben
Mist...da war ja so was!
Also hier nochmal als .xls-Datei, aber gepackt.
https://www.herber.de/bbs/user/65960.zip
Gruß,
Ben
AW: Ordner mit txt-Dateien automatisch importieren
17.11.2009 08:19:44
Oberschlumpf
Moin Ben
Hab die Datei nun fast so weit geändert.
Nur zur neuen Spalte C hast du gar nix geschrieben.
Ich weiß leider nich, aus welchen Daten/Formeln sie sich zusammen setzt.
Alles andere ist schon fertig.
Ciao
Thorsten
AW: Ordner mit txt-Dateien automatisch importieren
17.11.2009 08:34:00
Ben
Morgen,
Spalte C ist wie gehabt die Ampl.-Spalte der ersten .txt-Datei. Sollte zumindest so sein...also genau so, wie der Code die Dateien vorher eingelesen hat!
Gruß,
Ben
AW: Ordner mit txt-Dateien automatisch importieren
17.11.2009 08:46:10
Oberschlumpf
hmmmmm.....
Hi
Ja, du hast recht.
In deiner Datei (die als Zip ankam) siehts so aus:
Userbild
und in meiner so:
Userbild
Ich war nur irritiert, dass in deiner Datei die Messbedingungen erst in Spalte D beginnen (bei mir in C), hatte aber nicht bemerkt, dass meine Datei zuerst mit den Daten für M002_PMT2 und nicht wie bei dir mit M001_PMT1 beginnt...hmmmm...(ich sollte mal "Urlaub" machen :-) )
Ok...hier dann mein nächster Versuch:
https://www.herber.de/bbs/user/65968.xls
Is denn nun alles ok?
Ciao
Thorsten
AW: Ordner mit txt-Dateien automatisch importieren
17.11.2009 08:52:43
Ben
Scheint alles wunschgemäß zu funktionieren!
Werde es jetzt gleich (nach dem Frühstück) ausgiebig testen und dir nochmaöl Bescheid geben!
Danke erstmal und überhaupt! ;)
AW: Ordner mit txt-Dateien automatisch importieren
17.11.2009 15:06:04
Ben
Hi Thorsten,
funktioniert alles so, wie ich es mir vorgestellt habe!
Vielen, vielen Dank nochmal für deine Mühen!
Gruß,
Ben
AW: Ordner mit txt-Dateien automatisch importieren
13.11.2009 10:45:30
Luschi
Hallo ben,
mit einer Schleife, die alle txt-Dateien eines Ordners abruft ist das kein großes Problem.
Muß man aber beim Einlesen eine gewisse Reihenfolge der txt-Dateien beachten?
Enthält zum Beispiel der Name der Datei eine Datums- und/oder Zeitsangabe, wann die Messungen erfolgten?
fragt sich Luschi
aus klein-Paris
AW: Ordner mit txt-Dateien automatisch importieren
13.11.2009 11:02:11
Ben
Hallo Luschi,
die Reihenfolge der Textdateien ergibt sich aus den Benennung der Dateien!
Sie sind alle derart fortlaufend nummeriert.
M001_PMT1_....txt
M001_PMT2_....txt
M002_PMT1_....txt
M002_PMT2_....txt
Gruß,
Ben

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige