Hallo, ich suche eine Möglichkeit Daten, die über die serielle Schnittstelle (COM-Port) kommen, in MS Excel automatisch zu importieren. - Über den Com-Port kommen diese Daten hintereinnder: Bis zu 4100 Zeilen und 19 Spalten. Spalten jeweils mt TAB getrennt Zeilenvorschub/neue Zeile werden mit CR und LF übertragen - Meine Versuche: Mit Hyperterminal Text aufzeichnen starten -> alle Zeichen Empfangen -> Text aufzeichnen beenden können die empfangenen Werte in eine TXT Datei abgespeichert werden. In Excel lässt sich diese TXT Datei "Externe Daten aus Text abrufen" mit mehreren Klicks importieren. Das funktioniert auch alles. Mein Ziel ist es aber, diesen obigen Versuch direkt aus Excel zu machen ohne umständliches Hyperterminal, TXT Datei speichern, mehrere Importklicks in Excel. D.h. einfach: Excel öffnen, "einen Button" betätigen, Daten werden eingelesen und importiert. Als Schmankerl noch: Wenn Excel beim drücken des Button vor dem Empfang ein 'U' auf dem COM-Port sendet wäre grandios. Denn darauf reagiert mein µC und sendet die Daten daraufhin ohne dass man am µC nicht extra den Uebertragen-Taster drücken muss. Kann mir jemand weiterhelfen? Oder könnt Ihr mir bitte Quellen nennen wo ich zu Ziel komme? Gern auch hinreichende Literatur mit Schritt-für-Schritt Erklärung. Vielen Dank
:
Verschoben durch User
Moin, VBA ist das Stichwort. Damit lässt sich Excel sogar programmieren. Einmal googlen: http://dev.emcelettronica.com/serial-port-communication-in-excel-vba Bitte. Gruß Jonas
ich habe mal Excel über AutoIT gesteuert, war auch ziemlich leicht. Es gibt sogar fertige Implementierungen(UDF in AutoIT) dafür.
Bist du dir sicher, dass die Daten überhaupt in Excel gehören und nicht in eine richtige Datenbank? Das hier klingt nämlich wieder mal nach: "Ich kenn nur Excel"
Ernstgemeinte Frage: Warum will man sowas überhaupt in Excel machen?
Ich plädiere für Access und DDC. Da braucht man nur eine einfach Windowssoftware, die ODBC kann. Daraus kann man dann leicht Excel-Sheets erzeugen,
Hallo und vielen Dank der Antworten. Die Links schaue ich mir genauer an. Ich habe ein Messgerät onstruiert das kontinuierlich misst und die Daten im internen Speicher ablegt. Die Daten sollen dann am Laptopausgelesen werden so dass diese dann in Excel weiterverarbeiten kann. Excel bietet für mich mehr Vorteile da es auf Rechner mehr verbreitet ist. Die Daten können leichter ausgetauscht, abgespeichert werden. Ich kenn niemanden, außer IT-Experten, die mit Datenbanken arbeiten - eher werden diese nur vom Anwender "angewendet". Mit Excel kennen sich die Leute mehr aus so dass auch vom Anwender eigene Sachen/Auswertungen/Anpassungen in Excel gemacht werden können. Zudem möchte ich die Messwerte auswerten können, grafisch, Höhendiagramme, vergleichen etc... Ja, und selbst wenn es alles mit Access geht.....ehe ich mich da eingearbeitet habe ist viel Zeit vergangen - und Zeit ist momentan mein großes Problem. Da muss ich dann leider die Variante "Ich kenn nur Excel" ausweichen.
Ich werfe hier jetzt mal einen anderen Gedanken ein: Wieso nicht über Java/.net eine kleine Applikation (grafisch, oder auch nur textbasiert) entwickeln, die die Daten über die serielle Schnittstelle reinholt und zyklisch in ein .csv speichert. Diese können wunderbar in bereits bestehende Excel-Sheets importiert werden, man spart sich (eklige) VB-Makros und muss nicht auf hochgestochene Datenbanksysteme zurückgreifen.
Benjamin A. schrieb: > Ich werfe hier jetzt mal einen anderen Gedanken ein: > > Wieso nicht über Java/.net eine kleine Applikation (grafisch, oder auch > nur textbasiert) entwickeln, die die Daten über die serielle > Schnittstelle reinholt und zyklisch in ein .csv speichert. .... Ja, auch eine schöne Methode......aber ich kann keine Java-Sprache. Diese zu erlernen wäre für mich noch zu Zeitaufwendig. Minimal C kann ich noch....im begrenzen Umfang. Damit würde ich mich noch anfreunden wollen....solang ich nicht da auch noch viel Zeit investieren muss.
>Ja, auch eine schöne Methode......aber ich kann keine Java-Sprache. >Diese zu erlernen wäre für mich noch zu Zeitaufwendig. >Minimal C kann ich noch....im begrenzen Umfang. Es muss nicht immer Java sein ;) .net bietet hier mit dem Visual Studio auch die Möglichkeit C#, C++ oder VB zu verwenden. VB also ähnlich zum Excel, mit dem Unterschied, dass der Code hier nicht erst zur Laufzeit compiliert wird (So denke ich). Dass man wegen so einer Applikation nicht gleich eine ganze Programmiersprache lernt ist mir auch klar, ich muss allerdings anmerken, dass es hier im www schon ziemlich viel zu finden gibt. Dazu wäre vielleicht noch interessant, in welcher Form die Daten aus diesem Messgerät über den COM-Port daher kommen. Eine Alternative bietet dann sicher auch noch Python, damit habe ich persönlich zwar eher wenig Ahnung, aber soweit ich das in Erinnerung habe, braucht man bei Python keine Ahnung über Datentypen etc. zu haben und es gibt Librarys mit denen man mehr oder weniger alles in kurzer Zeit programmieren kann, ohne sich davor stundenlang damit zu beschäftigen ;)
Hi! Also der Post ist schon alt, aber da ich leider auch zu der "ich kann nur Excel" Partei gehöre, muss ich hier einfach mal antworten, da ich selbst derzeit vor einem ähnlichen Problem stehe. Ich sende Daten derzeit über R232 an ein Arduino. Hierzu habe ich mir eine .bat Datei gebastelt, die über VBA erstellt wird, ausgeführt wird und sich anschließend über ein anderes vba modul nach einer bestimmten Zeit (2s) wieder löscht. Wenn man nach der sende Routine aus der .bat heraus Daten sammeln würde und wieder eine Datei erstellen würde, die sich Excel dann wieder über ein VBA Modul ausliest, wäre das vielleicht ne einfache Variante für uns "ich kann leider nur Excel Leute :) Frage an erfahrene Programmierer: wäre das ein eleganter Weg?? Wenn der Microkontroller z.B. zusätzlich einen kleinen SD Speicher o.ä. besitzt, könnte man die Datei mit den Daten direkt dort abholen.
@TO Schau mal hier http://www.herber.de . Das ist eigentlich der Excel Guru. Da bin ich selbst auch schon oft fündig geworden.
Henn schrieb: > Variante für uns "ich kann leider nur Excel Leute :) Frage an erfahrene > Programmierer: wäre das ein eleganter Weg?? Nein. Die optimale Lösung habe ich noch nicht umgesetzt. Elegant ist, aus Excel heraus Fragen an die Schnittstelle zu senden und die Antworten wieder einzusammeln. Dazu nutzt man dieselben Betriebssystemroutinen, die auch Hyperterminal verwendet. Die meisten Lösungen basieren auf der Integration von VBA-Code, der einfach die Betriebssystemroutinen für VBA deklariert, so dass sie in VBA verwendet werden. Typischerweise muss nach Abfrage einer seriellen Schnittstelle eine gewisse Zeit gewartet werden, bevor eine Antwort verfügbar ist. Die Umsetzung dieses Antwortverhaltens führt leicht zu einer Art "busy waiting"-Programmcode in VBA. Mutmaßlich entfällt dieses Problem bei Verwendung des kommerziellen MSComm?-AddIns von Microsoft, das aber auf dem Rechner auch installiert bzw. registriert werden muss, bevor es verwendbar ist. Die oben beschriebenen Wrapper-Lösungen in VBA haben nicht dieses Problem. Des Weiteren gibt es noch eine Reihe von kommerziellen Lösungen dafür. Mit der Forensuche findest Du zahlreiche Beitragsfäden mit VBA-Code dazu. Schreib' auch hier, wenn Du das Problem gelöst hast!
:
Bearbeitet durch User
Peter M. schrieb: >> Wenn der Microkontroller z.B. zusätzlich einen kleinen SD Speicher o.ä. >> besitzt, könnte man die Datei mit den Daten direkt dort abholen. Wenn, wenn, wenn ich schon einen PC mit im Aufbau habe, lege ich die Daten dort mit allem Komfort ab. Und ich quäle nicht den kleinen embedded Controller, sondern lasse in die harte Arbeit machen: Ports, A/D, PWM, usw.
embedded controller heger schrieb: > Peter M. schrieb: >>> Wenn der Microkontroller z.B. zusätzlich einen kleinen SD Speicher o.ä. >>> besitzt, könnte man die Datei mit den Daten direkt dort abholen. Bitte richtig lesen und/oder richtig zitieren! Erstens ist der zitierte Satz nicht von mir, sondern von "Henn": Henn schrieb: > Wenn der Microkontroller z.B. zusätzlich einen kleinen SD Speicher o.ä. > besitzt, könnte man die Datei mit den Daten direkt dort abholen. Zweitens verstehe ich auch nicht, was mit "direkt dort abholen" gemeint sein soll.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.