Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
784to788
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
784to788
784to788
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Diagramm automatisch erstellen

Diagramm automatisch erstellen
28.07.2006 19:11:54
Heinz
Hallo erstmal!
Ich werte mit einem selbstgeschriebenen Programm Logfiles aus.
Bei den Logfiles handelt es sich um Textdateien mit Tabulator als Trennzeichen.
Excel öffnet sie Problemlos.
Wenn darin Aufffalligkeiten vorkommen, soll die Datei geladen und verschiedene Werte in einem Diagramm dargestellt werden.
Was ich nun verzweifelt suche ist eine Möglichkeit, Excel irgendwie mitzuteilen, das es die Datei öffnen und z.B. die Werte in der zweiten Spalte als Diagramm darstellen soll.
Kann man das z.B. als Parameter übergeben?
Es ist ziemlich lästig, jedes Mal eine Spalte zu markieren und den Diagrammdialog durchzugehen.

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm automatisch erstellen
28.07.2006 19:57:59
Ralf
Hi Heinz,
als Parameter...:)
wieviele willst Du denn da übergeben? Datei, Blatt, Spalte(n), Zeilen, Diagrammart... Dazu wird sich selbst MS nicht hinreißen lassen. Allerdings kannst Du Dir ein Makro erstellen, in dem Du die Parameter selbst festlegst und dieses Makro beim Start ausführen lassen. Wenn Du mal eine Bsp.Datei hast und ein paar genauere Aussagen dazu triffst, kann ich ja mal schauen was sich da machen läßt.
Ciao, Ralf
AW: Diagramm automatisch erstellen
28.07.2006 21:00:49
Heinz
Also die Dateien haben die endung .log
Es handelt sich um normale ASCII Textdateien mit einem Tabulator als Trennzeichen.
Die erste Spalte ist ein Zeitstempel, dann kommen 6 Spalten mit Messwerten
01:01:2001 00:00:01 TABULATOR 255 TABULATOR 45 TABULATOR 235 TABULATOR 28 TABULATOR 108 TABULATOR 355
Die Datei hat genau 1000 Zeilen.
Excel kan sie ohne Probleme per Doppelklick öffnen.
Es kommt aber leider nicht in Frage, die Dateien irgendwie zu modifizieren.
Wie soll das mit dem Makro funktionieren?
Anzeige
AW: Diagramm automatisch erstellen
28.07.2006 21:20:02
Ralf
...Es kommt aber leider nicht in Frage, die Dateien irgendwie zu modifizieren.
Wie jetzt? Darf sie nicht geändert werden, oder kannst Du nicht?
Lade mal so ein Logfile hoch. Und ein Diagramm für Spalte B? Sonst nix? Und alles ohne zu speichern?
Ciao Ralf
AW: Diagramm automatisch erstellen
28.07.2006 22:57:52
Heinz
Die Logdatei DARF nicht verändert werden, da es sich um eine Messdatenaufzeichnung handelt.
Ich habe leider keine Datei auf diesem Rechner, nur eine Dummyfile zum testen.
https://www.herber.de/bbs/user/35429.txt
Mein C# Programm erkennt Unregelmäßigkeiten in den Logfiles (unzulässige Werte) und listet die Dateien dann auf und per Mausklick kann man diese dann mit Excel anschauen.
Dazu wird derzeit noch der Verlauf der betroffenen Spalte markiert, und der ganze Diagrammdialog durchgegangen, um die Grafik als neues Blatt einzufügen (sonst erkennt man nicht viel)
Nun wäre es eben schön, wenn man nicht jedes Mal ein Diagramm erstellen müsste, sondern wenn die Datei geöffnet würde und das Diagramm gleich miterstellt, ohne Benutzereingriff o.ä.
Gespeichert wird im Normalfall nichts.
Anzeige
AW: Diagramm automatisch erstellen
29.07.2006 00:12:32
Ralf
Hi Heinz,
hier: https://www.herber.de/bbs/user/35431.xls
findest Du mal eine Beispieldatei. Immer, wenn Du so ein txt-File bearbeiten willst, öffnest Du diese Datei. Du wirst beim Start aufgefordert die Textdatei auszuwählen. Anschließend wird das Diagramm mit den Werten aus Spalte B von Zeile 1 bis zur letzten Eintragung erstellt.
Nebenbei bemerkt, bei 10.000 Zeilen wird das aber schön unübersichtlich...
Beim Schliessen, wenn Du gefragt wirst ob Du speichern willst, immer auf Nein klicken.
Ciao, Ralf
AW: Diagramm automatisch erstellen
29.07.2006 11:25:52
Heinz
Danke Ralf!
Funktioniert hervorragend.
Ich muss nur leider zugeben, das ich von VBA nicht viel Ahnung habe, da ich immer in C# oder C programmiere.
Hast du einen Vorschlag, wie ich mir das Auswählen der Textdatei in Excel ersparen könnte?
Also zuerst die Datei mit dem Makro starten und dann irgendwie den Datei öffnen Dialog fernbedienen oder Parameter übergeben?
Anzeige
AW: Diagramm automatisch erstellen
29.07.2006 13:22:01
Ralf
Hi Heinz,
"Hast du einen Vorschlag, wie ich mir das Auswählen der Textdatei in Excel ersparen könnte?
Also zuerst die Datei mit dem Makro starten und dann irgendwie den Datei öffnen Dialog fernbedienen oder Parameter übergeben?"
Wieso? Öffnest Du denn immer nur die gleiche Datei? Wenn das so ist, dann ändere das:
***********************************************************************************
Sub DatOpen()
Dim Pfad$
'Die nächsten 3 Zeilen rausschmeissen...
Pfad = Application.GetOpenFilename("Textdateien (*.txt), *.txt", 1, "Dateiauswahl", "Öffnen", False)
If Pfad = "Falsch" Then Exit Sub
************************************************************************************
so ab:
***********************************************************************************
Sub DatOpen()
Dim Pfad$
Pfad = "C:\Logdateien\Logfile.txt" 'Diesen Pfad natürlich anpassen
************************************************************************************
Den Rest, also ab 'Workbooks.OpenText...' so lassen.
Dann wird allerdings immer nur diese Datei geöffnet. Eine Auswahlmöglichkeit besteht dann nicht mehr.
Ciao, Ralf
Anzeige
Zusatz
29.07.2006 13:32:33
Ralf
...ach ja, falls Du doch jedesmal andere Dateien auswählen willst, Dir aber nur die Klickerei durch die Dialogbox zu mühselig ist weil die Textdateien in einem anderen Verzeichnis liegen und Du gleich das Stammverzeichnis der Textdateien sehen willst, dann mach es so:
Sub DatOpen()
Dim Pfad$
'nachfolgende Zeile einfügen
ChDir "F:\Tests\" 'Hier das Verzeichnis für die Textdateien anpassen
'dann alles wie gehabt...
Pfad = Application.GetOpenFilename("Textdateien (*.txt), *.txt", 1, "Dateiauswahl", "Öffnen", False)
...
...
Ciao, Ralf
AW: Zusatz
29.07.2006 14:10:22
Heinz
Dieser Ansatz geht leider nicht besonders gut.
Mein Programm soll nämlich die Logdateien von Versuchen die ein anderes Programm in ein Verzeichniss schreibt untersuchen und eben nur die auffälligen Dateien öffnen.
Pro Tag wird ein neuer Ordner mit Logdateien erstellt. In diesem werden dann alle Minuten eine durchgehend numerierte Datei mit 1000 Zeilen geschrieben. Es sind also sehr viele Dateien.
Wenn es nun in einer dieser Dateien einen deutlichen Temperaturanstieg gibt, muss die Logfile manuell ausgewertet werden.
Bislang zeigt mein Programm z.B. an, dass in der Logfile Nr. 524 der Maximalwert überschritten wurde. Per Mausklick kan man nun diese Datei öffnen.
Praktisch wäre eben nun, das wen man draufklickt die datei geöffnet und das Diagramm erstellt wird.
Diagramm erstellen klappt ja wunderbar, aber es ist eben unpraktisch, sich den Dateinamen zu merken, die Makrodatei zu starten undd dieser zu sagen, das man diese Datei öffnen will.
Gibt es hierfür eine passende Lösung?
Momentan fällt mir nur ein, in der Makrodatei den Dateinamen von Auswerteprogramm suchen und durch den aktuellen Dateinamen ersetzen zu lassen.
Das würde aber zweifellos Probleme mit beschädigten oder geöffneten Dateieen geben.
Anzeige
AW: Zusatz
29.07.2006 15:22:12
fcs
Hallo Heinz,
hab jetzt auch mal etwas experimentiert auf der Basis des Vorschlags von Ralf.
Wenn du von der Auswerteanwendung die LOG-Files in Excel öffnen kannst, dann sollte es auch möglich sein, die Exceldatei zum Erzeugen des Diagramms von dort mit zu starten.
Von einer Verknüpfung auf dem Desktop funktioniert z.B. folgendes wenn als Ziel
"C:\Programme\Microsoft Office\Office\EXCEL.EXE" "C:\Test\HeinzDaten.log" "C:\Test\Diagramm.xls"
angegeben wird.
1. Excel wird gestartet
2. log-Datei wird geöffnet
3. Diagramm.xls wird geöffnet
Die Workbook_Open Prozedur muß dann angepasst werden.
In der angehängten Datei hab ich es jetzt so umgesetzt, dass zunächst nach einer geöffneten Datei mit der Erweiterung "log" gesucht wird. Die Tabelle aus dem Log-File wird dann in die Diagramm.xls kopiert und das Log-File sofort geschlossen. Dadurch ist ein versehentliches ändern der Log-Datei praktisch ausgeschlossen. Dann wird in der Diagramm.xls das Diagramm erzeugt. Das Diagramm bzw. die LOG-Daten-Tabelle wird, falls von der vorherigen Aktion noch vorhanden, beim Öffnen gelöscht.
Zum Probieren in Excel zunächst eine LOG-Datei (mit Dateinamenserweitung log !) öffnen und dann meine Beispieldatei.
https://www.herber.de/bbs/user/35440.xls
Falls der Start meiner xls-Datei von deiner Anwendung aus nicht klappt. Dann zur Vebesserung des Bedienkomfort in einer Symbolleiste in Excel ein Makro integrieren, das meine Diagramm.xls startet oder auch Makro per Tastenkombination starten.
Dann, nachdem du wie bisher die Log-Datei aus deiner Anwendung heraus per Mausklick öffnest, in Excel per Buttonklick meine Datei starten.
Evtl. macht es auch Sinn meine Datei mit kleinen Modifikationen als Mustervorlage abzulegen und per Makro immer eine Datei auf Basis dieser Mustervorlage zu kreieren, aber schau erst einmal, ob du mit meiner Datei etwas anfangen kannst.
gruss Franz
Anzeige
AW: Zusatz
29.07.2006 15:42:49
Heinz
Bingo!
Danke!
Das ist die Lösung für unser Probem!
Du hast der Wissenschaft (oder zumindest ein paar Studenten) weitergeholfen ;-)
AW: Zusatz
29.07.2006 15:35:40
Ralf
...ach so meinst Du das.
Du halst also ein in C# geschriebenes Programm, das kontrolliert die Logfiles und gibt bei Auffälligkeiten den Dateinamen des Files zurück. Jetzt möchtest Du, dass dieser Dateiname an Excel übergeben wird und Excel den Rest automatisch ausführt.
Nun kenne ich mich in C# leider zuwenig aus, aber meines Wissens sollte es damit möglich sein, auch Excelfiles zu manipulieren.
Vorstellbar wären folgende Szenarien:
1. Du bringst Dein Programm dazu, dass es den kompletten Dateinnamen (incl. Pfad) in die Exceltabelle, z.Bsp. in Zelle A1, schreibt. Das ließe sich dann per VBA auswerten. Oder
2. (wahrscheinlich einfacher) Du lässt den Wert in eine separate Textdatei schreiben. Bsp.
Dateiname: Quelle.txt
Inhalt: F:\Logfiles\524.txt
Dabei sicherstellen, dass die alten Werte gelöscht werden, also nur der aktuell ausgewählte Wert drin steht. Anschließend den Befehl zum Start der Auswertung.xls geben. Ich sag Excel dann, dass es beim Öffnen diesen Wert der Textdatei auslesen soll und genau diese Datei öffnen soll.
Was anderes fällt mir auf die Schnelle auch nicht ein. Wäre das akzeptabel für Dich?
Zusätzlich, weil das Diagramm bei den vielen Werten ja doch ziemlich unübersichtlich ist, könnte man nur die Werte anzeigen lassen, die einen bestimmten Grenzwert überschreiten.
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige