myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

[Frage] Daten zwischen Excel und VB.net Programm austauschen

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 05.10.11, 18:48   #1
sivro
VB - VBA - Python
 
Benutzerbild von sivro
 
Registriert seit: Feb 2010
Beiträge: 29
Bedankt: 11
sivro ist noch neu hier! | 0 Respekt Punkte
Standard [Frage] Daten zwischen Excel und VB.net Programm austauschen

Hallo miteinander,

Ich habe folgende Herausforderung;

von einem Datenloggerprogramm werden Temperaturen an eine Excel-Tabelle gesendet.

Ich möchte gerne mit einem Makro die Temperaturen an ein eigen gebasteltes Programm in vb.net senden. Dass dann die Steuerung für die sämtliche Temperaturabhängigen Maschinen übernimmt!.


So jetzt nochmal im Klartext.

Mir wäre geholfen, wenn ein Makro in Excel folgendes kann:

Einen X Beliebigen Satz oder Zahlen an ein geöffnetes Programm in ein Label oder Textbox schreibt.
Dann kann mein Programm die Daten verarbeiten.

Ich habe schon probiert mit FindWindow; FindWindowEx; SendMessage,,,
aber irgendwie scheitert es wahrscheinlich an meiner Begabung / Erfahrung

Was muss ich beachten bzw. Was muss ich in dem .net Programm beachten; dass es die Daten überhaupt annimmt??


Mir wäre wirklich sehr geholfen

Vielen Dank.
sivro ist offline   Mit Zitat antworten
Ungelesen 05.10.11, 19:05   #2
haze303
xor eax, eax
 
Benutzerbild von haze303
 
Registriert seit: Sep 2009
Beiträge: 596
Bedankt: 466
haze303 ist noch neu hier! | 1 Respekt Punkte
Standard

Kannst du dir nicht direkt die Werte vom Datalogger holen? Wie sind die Datalogger mit dem Rechner verbunden? RS232, USB oder sogar netzwerkfähig?

Warum ist ein Zwischenschritt über ein Excel Makro von nöten? Alles was ein Excel Marko kann (VBA), kann (VB).NET schon lang und 2x besser.

Viele Grüße,
haze303
__________________
Desktop: Arch Linux | Laptop: Arch Linux
VM: Windows 7, Windows XP, Fedora 14, Arch, Windows Server 2008 R2 Enterprise
haze303 ist offline   Mit Zitat antworten
Ungelesen 05.10.11, 19:39   #3
sivro
VB - VBA - Python
 
Benutzerbild von sivro
 
Registriert seit: Feb 2010
Beiträge: 29
Bedankt: 11
sivro ist noch neu hier! | 0 Respekt Punkte
Standard

Das ganze läuft über eine RS232 Schnittstelle.

Es ist sogar viel leichter einfach das Gerät abzufragen, aber wir haben da ein sehr Professionelles Tool das verschiedene Diagramme; Tabellen; usw. anzeigen kann; es ist fähig Rechenkanäle zu verarbeiten usw.

Mein Problem ist das diese Software abgespeckt ist und leider nicht als DatenServer funktioniert.

Es kann aber eine Verbindung zu Excel aufbauen und die Daten da abspeichern.

Da die Steuerung die ich Basteln möchte eher Sekundär von der Priorität ist ist es unbedingt notwendig die Daten mit diesem Programm aufzuzeichnen wir ermitteln damit verschiedene Werte usw. sozusagen ein Prüfstand der Daten speichert.

Ich möchte mir nur ein Paar Temperaturen rausholen und an mein Programm senden, leider weiß ich mir nicht anders zu helfen oder du hast einen Tip wie man eine Com Schnittstelle abhören kann oder auch anders auf die Daten zugreifen kann ohne zusätzlich Geld zu investieren

Vielen Dank
sivro ist offline   Mit Zitat antworten
Ungelesen 05.10.11, 20:51   #4
haze303
xor eax, eax
 
Benutzerbild von haze303
 
Registriert seit: Sep 2009
Beiträge: 596
Bedankt: 466
haze303 ist noch neu hier! | 1 Respekt Punkte
Standard

Hier hat sich jemand die Mühe gemacht, eine Klasse bereitzustellen, um Daten von einer RS232 Schnittstelle mit Hilfe von VB.Net abzufragen.

[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]

Viele Grüße,
haze303

PS: Scheint sogar wirklich sehr sehr einfach zu sein, damit Daten abzufragen. Im Mikrocontroller Forum schwören die VB-Jungs auch darauf.
__________________
Desktop: Arch Linux | Laptop: Arch Linux
VM: Windows 7, Windows XP, Fedora 14, Arch, Windows Server 2008 R2 Enterprise
haze303 ist offline   Mit Zitat antworten
Ungelesen 05.10.11, 23:31   #5
Epeos
Ist öfter hier
 
Benutzerbild von Epeos
 
Registriert seit: Nov 2010
Beiträge: 198
Bedankt: 96
Epeos ist noch neu hier! | 0 Respekt Punkte
Standard

Wenn haze303's Möglichkeit ausscheidet: Es ist einfacher, von VB.Net aus Excel anzusprechen. Excel stellt einen Haufen COM-Klassen zur Verüfung, die Du mit wenig Aufwand in VB.Net benutzen kannst. Das ist dann aber ein anderer Workflow.
__________________
On a long enough timeline, the survival rate for everyone drops to zero. (Fight Club)
Epeos ist offline   Mit Zitat antworten
Ungelesen 06.10.11, 05:00   #6
sivro
VB - VBA - Python
 
Benutzerbild von sivro
 
Registriert seit: Feb 2010
Beiträge: 29
Bedankt: 11
sivro ist noch neu hier! | 0 Respekt Punkte
Standard

Vielen Dank für die Mühe,

aber die Möglichkeit scheidet leider aus, da ich nicht mit zwei Geräten den COM Port ansprechen kann.

Wie oben gesagt ich benötige das andere Programm als Primären Datenlogger. Das heißt erste Verbindung


Leider ist es jetzt nicht mehr möglich mit meinem anderen Tool auf die COM Schnittstelle zuzugreifen.


Also bleibe ich nach wie vor auf meiner Frage hängen.

Ich habe von interkommunikation zwischen zwei Prozessen gehört sog. IPC oder auch mit Named Pipes arbeiten?

Hat da schon iregendwer Erfahrung mit diesen?
sivro ist offline   Mit Zitat antworten
Ungelesen 06.10.11, 06:14   #7
Epeos
Ist öfter hier
 
Benutzerbild von Epeos
 
Registriert seit: Nov 2010
Beiträge: 198
Bedankt: 96
Epeos ist noch neu hier! | 0 Respekt Punkte
Standard

Oh, sorry. Ich meinte nicht die COM-Schnittstelle. COM ist ein bestimmter Objekttyp, um in eigenen Programmen Komponenten aus anderen Programmen zu verwenden. [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
__________________
On a long enough timeline, the survival rate for everyone drops to zero. (Fight Club)
Epeos ist offline   Mit Zitat antworten
Ungelesen 06.10.11, 10:06   #8
Erebos76
Ist öfter hier
 
Benutzerbild von Erebos76
 
Registriert seit: Sep 2010
Beiträge: 276
Bedankt: 280
Erebos76 leckt gerne myGully Deckel in der Kanalisation! | 332975 Respekt PunkteErebos76 leckt gerne myGully Deckel in der Kanalisation! | 332975 Respekt PunkteErebos76 leckt gerne myGully Deckel in der Kanalisation! | 332975 Respekt PunkteErebos76 leckt gerne myGully Deckel in der Kanalisation! | 332975 Respekt PunkteErebos76 leckt gerne myGully Deckel in der Kanalisation! | 332975 Respekt PunkteErebos76 leckt gerne myGully Deckel in der Kanalisation! | 332975 Respekt PunkteErebos76 leckt gerne myGully Deckel in der Kanalisation! | 332975 Respekt PunkteErebos76 leckt gerne myGully Deckel in der Kanalisation! | 332975 Respekt PunkteErebos76 leckt gerne myGully Deckel in der Kanalisation! | 332975 Respekt PunkteErebos76 leckt gerne myGully Deckel in der Kanalisation! | 332975 Respekt PunkteErebos76 leckt gerne myGully Deckel in der Kanalisation! | 332975 Respekt Punkte
Standard

Das erste, das mir einfällt, ist: abspeichern und in VB.net via FileStream auslesen.

Alternativ wäre, wie schon genannt, ein direkter Zugriff auf Excel möglich.

Code:
Dim objXLApp As Excel.Application
Dim objXLWB As Excel.Workbook
Dim objXLWS As Excel.Worksheet
Dim objXLCell As Excel.Range

Set objXLApp = New Excel.Application()
Set objXLWB = objXLApp.Workbooks.Open(Dateiname)
usw.
Erebos76 ist offline   Mit Zitat antworten
Ungelesen 06.10.11, 21:22   #9
sivro
VB - VBA - Python
 
Benutzerbild von sivro
 
Registriert seit: Feb 2010
Beiträge: 29
Bedankt: 11
sivro ist noch neu hier! | 0 Respekt Punkte
Standard [ Erfolgreich gelöst ]

Also ich habe es jetzt gelöst etwas Kompliziert aber gelöst



Ich arbeite mit der SendMessage API

Mein Datenlogger schreibt die Daten in eine Excel Tabelle.
Der Datenlogger hat einen Messzyklus von ca. 10 sec.

Meine Steuerung braucht so ein kurzes Intervall nicht.
Ich arbeite mit der Application.OnTime Methode und
Sende alle 60 sec den aktuellen Messwert an eine Textbox in
meinen VB.Net Programm.

'''''''Ganz harte Nuß für mich war den Klassennamen des Controls abzufragen.
Aber nach ewiger Bastelei ist es mir dann geglückt'''''

Und die regelt dann je nach Hysterese
und Anforderung meine Maschine.

''''''' Benutzte API FindWindow / FindWindowEx / SendMessage / GetWindowText ''''''''

Wenn einer Infos braucht

Ich stehe gerne zur Verfügung. Vielen Dank für Eure Mühen.


Achja und wenn wirklich einer Erfahrung hat mit der NAMED_PIPE hat... ich würde gern noch einiges darüber Wissen. Speziell zwischen Excel VBA und VB,Net
sivro ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:38 Uhr.


Sitemap

().