Microsoft Excel

Herbers Excel/VBA-Archiv

Ordner mit txt-Dateien automatisch importieren | Herbers Excel-Forum


Betrifft: Ordner mit txt-Dateien automatisch importieren von: Ben Tribalet
Geschrieben am: 13.11.2009 10:24:31

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

  

Betrifft: AW: Ordner mit txt-Dateien automatisch importieren von: Oberschlumpf
Geschrieben am: 13.11.2009 10:35:26

Hi Ben

Kannst du uns ne Bsp-Textdatei und deine Exceldatei, in die alles rein soll, zeigen?
Bitte im xls-Format

Ciao
Thorsten


  

Betrifft: AW: Ordner mit txt-Dateien automatisch importieren von: Ben Tribalet
Geschrieben am: 13.11.2009 10:59:17

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


  

Betrifft: AW: Ordner mit txt-Dateien automatisch importieren von: Oberschlumpf
Geschrieben am: 13.11.2009 15:09:02

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


  

Betrifft: AW: Ordner mit txt-Dateien automatisch importieren von: Ben
Geschrieben am: 13.11.2009 15:24:27

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!


  

Betrifft: AW: Ordner mit txt-Dateien automatisch importieren von: Ben
Geschrieben am: 13.11.2009 16:13:39

Ich nochmal...
Das Problem mit Zeile 2 ( Löschen dieser Zeile) hab ich behoben, jetzt fehlt nur noch der Rest! ;)

Gruß,

Ben


  

Betrifft: AW: Ordner mit txt-Dateien automatisch importieren von: Oberschlumpf
Geschrieben am: 13.11.2009 22:23:35

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


  

Betrifft: AW: Ordner mit txt-Dateien automatisch importieren von: Ben
Geschrieben am: 16.11.2009 11:19:07

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


  

Betrifft: AW: Ordner mit txt-Dateien automatisch importieren von: Oberschlumpf
Geschrieben am: 16.11.2009 12:08:49

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


  

Betrifft: AW: Ordner mit txt-Dateien automatisch importieren von: Ben
Geschrieben am: 16.11.2009 12:24:55

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!


  

Betrifft: AW: Ordner mit txt-Dateien automatisch importieren von: Oberschlumpf
Geschrieben am: 16.11.2009 12:43:12

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:



oder soll es so aussehen:



Beide Darstellungen bedeuten zwar den selben Wert, aber das Problem mit oder ohne E-Anzeige hatten wir ja schon mal ;-)

Ciao
Thorsten


  

Betrifft: AW: Ordner mit txt-Dateien automatisch importieren von: Ben
Geschrieben am: 16.11.2009 12:56:47

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


  

Betrifft: AW: Ordner mit txt-Dateien automatisch importieren von: Oberschlumpf
Geschrieben am: 16.11.2009 14:53:06

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


  

Betrifft: AW: Ordner mit txt-Dateien automatisch importieren von: Ben
Geschrieben am: 16.11.2009 15:39:26

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.


  

Betrifft: AW: Ordner mit txt-Dateien automatisch importieren von: Ben
Geschrieben am: 16.11.2009 17:11:00

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


  

Betrifft: AW: Ordner mit txt-Dateien automatisch importieren von: Oberschlumpf
Geschrieben am: 16.11.2009 17:24:22

Hi Ben

*Erinnerungsmodus an*
Ich hab noch immer kein Excel 2007. Daher bitte die Datei im xls-Format ;-)
*Erinnerungsmodus aus*

Ciao
Thorsten


  

Betrifft: AW: Ordner mit txt-Dateien automatisch importieren von: Ben
Geschrieben am: 16.11.2009 20:58:14

Mist...da war ja so was!
Also hier nochmal als .xls-Datei, aber gepackt.
https://www.herber.de/bbs/user/65960.zip

Gruß,

Ben


  

Betrifft: AW: Ordner mit txt-Dateien automatisch importieren von: Oberschlumpf
Geschrieben am: 17.11.2009 08:19:44

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


  

Betrifft: AW: Ordner mit txt-Dateien automatisch importieren von: Ben
Geschrieben am: 17.11.2009 08:34:00

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


  

Betrifft: AW: Ordner mit txt-Dateien automatisch importieren von: Oberschlumpf
Geschrieben am: 17.11.2009 08:46:10

hmmmmm.....

Hi

Ja, du hast recht.

In deiner Datei (die als Zip ankam) siehts so aus:




und in meiner so:




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


  

Betrifft: AW: Ordner mit txt-Dateien automatisch importieren von: Ben
Geschrieben am: 17.11.2009 08:52:43

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! ;)


  

Betrifft: AW: Ordner mit txt-Dateien automatisch importieren von: Ben
Geschrieben am: 17.11.2009 15:06:04

Hi Thorsten,
funktioniert alles so, wie ich es mir vorgestellt habe!
Vielen, vielen Dank nochmal für deine Mühen!
Gruß,
Ben


  

Betrifft: AW: Ordner mit txt-Dateien automatisch importieren von: Luschi
Geschrieben am: 13.11.2009 10:45:30

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


  

Betrifft: AW: Ordner mit txt-Dateien automatisch importieren von: Ben Tribalet
Geschrieben am: 13.11.2009 11:02:11

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


Beiträge aus den Excel-Beispielen zum Thema "Ordner mit txt-Dateien automatisch importieren"