Einsteiger braucht Hilfe bei einer Routineabfrage

rambkue

Grünschnabel
Hallo Leudz!

Bin ganz neu auf dem Gebiet Visual Basic und habe mal ein paar Fragen.
Folgende Ausgangssituation:
Ich habe ein Programm, welches Messungen durchführt. Die Messungen kann ich mir in einem y(t)-Diagramm anschauen. Nun gibt es in diesem Programm die Möglichkeit die Messdaten in ein ASCII-File zu exportieren. Diese ASCII-Files bestehen dann aus einen Deskriptor-Teil und einen Datenteil. Bis hier hin noch nichts wichtiges. Das kommt jetzt.
Im Laufwerk C: habe ich mir ein Verzeichnis angelegt "Messungen". In diesem Verzeichnis werden alle exportierten ASCII-Files abgelegt (gehen wir davon aus, dass es 500 Dateien sind). Jedes ASCII-File hat einen bestimmten Dateinamen.
Folgendes möchte ich realisieren:
Ich möchte mir mit Excel eine automatisierte Messdatenauswertung schaffen, die wie folgt ablaufen soll. Nachdem ich Excel geöffnet habe, soll ein Makro gestartet werden, was folgende Schritte ausführen soll. Leider weiß ich nicht so richtig, wie ich diese Schritte umsetzen kann, d.h. was ich für Befehle, Funktionen, Anweisungen,etc brauche. Deshalb hoffe ich, dass mir jemand helfen kann.
Schritte:
1. Es soll ein Eingabe-Fenster erscheinen, wo man ein Stichwort eingeben kann, das im Dateinamen enthalten ist (z.B. Der Dateiname heißt: Messung1_U_25052003.ASC und ich gebe als Stichwort "U" ein.)
2. Es soll das Verzeichnis "Messungen" mit seinen 500 Dateien untersucht werden.
3. Dann sollen alle ASCII-Files im Verzeichnis "Messungen" die etwas mit dem Stichwort "P" zu tun haben, in einer Auswahlliste aufgelistet werden mit der Option das man mehrere Einträge auswählen/markieren kann.
4. Es sollen die ausgewählten ASCII-Files mit Excel geöffnet werden, so dass man dann die Messdaten weiterverarbeiten kann.
Aber die Weiterverarbeitung ist dann nicht das Problem. Das würde ich hinkriegen.

Also, ich hoffe, dass mir jemand helfen kann. Vielleicht hat ja irgendwann jemand was ähnliches gemacht.

MfG rambkue
 
Hi!

Was für "Messungen" sind das denn?
Kommst du aus der Analytik?

Wie sehen die Rohdaten im ASCII-File denn aus?
Sind die Daten untereinander geordnet oder in Spalten (siehe Anhang)?
Gibt es in der Messsoftware (neue Rechtschreibung.. "grr") die Möglichkeit das ganze als Excel zu exportieren?

Das Eingabefenster ist kein Problem, nur die Suche wie du sie beschrieben hast,
ist etwas schwerer. Wenn du nach einem "u" suchst und der File immer mit "Messung ..." beginnt, findet er alle. Denn Messung hat ebenfalls ein u.
(Messung1_U_25052003.ASC) Man könnte nach der Numer direkt suchen.
Ist das eine laufende Nummer?

Vielleicht wäre hier auch eine Access-Datenbank, in dem die Daten schon einmal
importiert und konvertiert werden können, ratsam.

Dir jetzt an dieser Stelle den genauen Code aufzuzeigen sprenkt aber den Rahmen.
Bei excel-inside.de gibt es unter VBA/sonstiges
eine nette "Broschüre" (125 Seiten) zu Excel/VBA Grundlagen.

Zu empfehlen sind auch die Bücher von Bernd Held.
Wenn du spezielle Code-Fragen hast, kannst du die natürlich hier im Forum posten.

Grüße,
Jacka
 

Anhänge

  • Chrom.jpg
    Chrom.jpg
    29,8 KB · Aufrufe: 57
Hi Jacka,

Danke erstmal für die Antwort. Das sind Messungen aus der Elektrotechnik (Strom, Spannung, Leistung, Energie,...). In der Messsoftware gibt es nur die Möglichkeit die Daten in ein ASCII-File zu exportieren und nicht als Excel. Aber ein ASCII-File kann man ja ohne Probleme mit Excel öffnen. Das ist ja auch das Ziel, allerdings müssen die richtigen (d.h. die gewünschten) ASCII-Files geöffnet werden von den insgesamt 500 Dateien. Und das soll halt über eine Abfrage (Suchmaske) erfolgen.

Wie die Rohdaten im ASCII-File aussehen, siehst du im Anhang (allerdings nur der Datenteil; gibt noch einen Kopfteil, indem z.B. das Datum und die Uhrzeit der Messung steht). Die reinen Messdaten sind also untereinander und in Spalten angeordnet.

Kommen wir nochmal zu der Suche. Das mit dem U war ein schlechtes Beispiel. Das würde so nicht gehen. Schauen wir uns nochmal den Dateinamen an: "Messung1_U_25052003.ASC". Das U steht für Spannung, parallel dazu gibt es I,P,W,etc. In der Nummer steckt das Datum der Messung, d.h. die Sekunden seit 1970. Hört sich vielleicht komisch an, ist aber vom Hersteller der Messsoftware so gemacht wurden. Kann man auch nicht ändern. Damit ist das auch keine fortlaufende Nummer. Nun kann es sein, dass es für die Spannung mehrere Messungen gibt, d.h. an verschiedenen Tagen. Somit würde die Nummer immer unterschiedlich sein.

Ziel ist es, dass man über ein Eingabefenster ein Datum eingibt und dass dann alle ASCII-Files angezeigt werden, die die Messdaten dieses Tages beinhalten.
Ich sehe 2 Möglichkeiten, wie man es machen könnte:
1. Man öffnet alle 500 ASCII-Files und sucht nach der Zeile und Spalte, in der das Datum der Messung steht.
2. Man probiert es über den Dateinamen, d.h. man müsste irgendwie die Nummer auslesen bzw. umwandeln in ein Datumsformat.
Oder siehst Du noch eine andere Möglichkeit? Wie könnte man es am besten machen?
Kann mir jemand den Code für das Eingabefenster geben?

Übrigens, habe mir ein Buch von Bernd Held gekauft. Bin gerade am lesen.

Grüße,
rambkue
 

Anhänge

  • ASCII.jpg
    ASCII.jpg
    26,6 KB · Aufrufe: 48
Hi!

Sekunden seit 1970.. du meine Güte!
Ich überlege mir was und melde mich noch mal!

Der Code für eine Eingabebox ist recht einfach.
In dem Beispiel wird über eine Inputbox eine Eingabeaufforderung erstellt.
Der eingetragene Wert wird in der Variable "Eingabe" gespeichert.
Über die MsgBox wird diese wieder ausgegeben.

Code:
Sub Eingabe()

Dim Eingabe As String    ' bei Textsuche 
    Eingabe = InputBox("Bitte geben Sie einen Suchbegriff ein!")

' Textausgabe

   MsgBox (Eingabe)

End sub


Grüße,
Jacka
 
Zurück