Collapse column

Autor Thema: Office 2003: Arbeitsblatt mit Schnittstelle verbinden  (Gelesen 1844 mal)

Offline mexico67

  • Newbie
  • *
  • Beiträge: 24
    • Profil anzeigen
  • Office-KnowHow: Anfänger
  • VBA-KnowHow- : Ohne
Office 2003: Arbeitsblatt mit Schnittstelle verbinden
« am: April 09, 2012, 11:15:48 Vormittag »
Hallo Office-Gemeinde,
da man ja Excel auch "Zweckentfremden" ( Schaltpläne erstellen)kann, wende ich mich mit meinem Projekt vertrauendsvoll an Euch und hoffe, daß Ihr mit helfen könnt.
Projekt: Habe mit mehreren Arbeitsblättern Schaltpläne erstellt ( Hausinstallation )
Nun habe ich gedacht, daß es doch möglich sein sollte, daß sich eine gezeichnete Linie sich farblich( z.B. von blau nach rot) verändert, wenn an Com1 oder altem Druckerport (Zentronix) oder auch eventuell über einen RS 232-USB-Adapter) an einem PIN "high"=rot(12V+) und "low"= blau(0Volt) anliegt.
Habe schon mehrere Versuche unternommen, die führten aber leider zu keinem Ergebnis.
Wäre sehr Dankbar, wenn ich zu einem positiven Ergebnis kommen könnte.

Viele Grüße

Mexico67

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline Officer

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 59.503
    • Profil anzeigen
    • Excel-Inside Solutions
  • Office-KnowHow: Profi
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2019 / Office 365
Antw:Office 2003: Arbeitsblatt mit Schnittstelle verbinden
« Antwort #1 am: April 09, 2012, 12:09:17 Nachmittag »
Hallo mexico67,

wie du Deine Daten über die Schnittstellen nach Excel bekommst, kann ich dir an dieser Stelle leider nicht sagen.
Wie Du aber abhänig von einem Wert in einer Zelle (im Beispiel Zelle E4) eine Linie einfärben kannst, habe ich in der beigefügten Beispieldatei kurz erläutert. Wenn Du in Zelle E4 entweder rot oder blau auswählst wird die Linie entsprechend eingefärbt. Wenn du etwas anderes in die Zelle eingibst, wird die Linie schwarz eingefärbt.

Dieser Code muss in das Code-Modul des jeweiligen Arbeitsblatts, im Beispiel Tabelle1:

Code: Visual Basic
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Target.Address = "$E$4" Then einfaerben
  3. End Sub
  4.  

Diesen Code zum einfärben der Linien kommt in ein Code-Modul.

Code: Visual Basic
  1. Sub einfaerben()
  2.  
  3. With ActiveSheet.Shapes("Line 1")
  4.   If ActiveSheet.Range("E4").Value = "rot" Then
  5.     .Line.ForeColor.SchemeColor = 10
  6.   ElseIf ActiveSheet.Range("E4").Value = "blau" Then
  7.     .Line.ForeColor.SchemeColor = 12
  8.   Else
  9.     .Line.ForeColor.SchemeColor = 0
  10.   End If
  11. End With
  12.  
  13. End Sub
  14.  

Das komplette Beispiel findest du in der beigefügten Beispieldatei.

Gruß

Officer
Weitere Informationen, Tipps & Tricks findest du auf Excel-Inside.de
Bitte erfolgreich beantwortete Fragen als gelöst kennzeichnen -  zur Anleitung

Ricco

  • Gast
Antw:Office 2003: Arbeitsblatt mit Schnittstelle verbinden
« Antwort #2 am: April 09, 2012, 13:12:29 Nachmittag »
Hallo mexico67,

Officer hat schon gezeigt, wie man die gewünschten Linien produziert. Fehlen tut nur noch die Hardwareanbindung, d. h. wie liest man denn nun Signale vom seriellen Port / Parallelport ein.

Nehmen wir den Parallelport LPT1. Windows bietet - wie so oft, wenn's ins Eingemachte geht -, keine bordeigenen Mittel an. Du brauchst eine externe DLL, die Du auf http://logix4u.net/parallel-port findest. Sie wurde ehedem von Jan Axelson für Windows 95 geschrieben, dann aber für neuere Betriebssysteme bis Windows XP angepasst. Die Datei sollte im Windows Systemverzeichnis abgelegt werden. (Auf die Bitversion achten!) Sie sollte auch unter Windows 7 laufen, - falls man denn überhaupt noch einen Parallelport am Rechner hat.

Als nächstes musst Du die Basisadresse des Parallelports auf Deinem Rechner finden. Normalerweise ist das &H378, aber sicherheitshalber bitte im Gerätemanager unter den Eigenschaften des Ports nachsehen.

Die DLL bietet nur zwei Prozeduren an, Inp und Out:

Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer
Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)

Du benötigst nur Inp, die zu Beginn des Projekts wie oben deklariert werden muss. Danach kann sie wie eine normale Funktionsprozedur aufgerufen werden.

Der Eingabewert ergibt sich dann wie folgt:

Dim inpval as Integer, iPortAddress as Integer, iStatus as Integer
iPortAddress=CInt(&H378)
inpval = Inp(iPortAddress)

Der Status der i-ten Datenleitung ergibt sich aus der iStatus = (inpval and 2^i), also etwa für Pin 13 das Bit 4.

Abfragen tut man das im geeigneten/gewünschten Tabellen-Event.

MfG,
Ricco.

Offline mexico67

  • Newbie
  • *
  • Beiträge: 24
    • Profil anzeigen
  • Office-KnowHow: Anfänger
  • VBA-KnowHow- : Ohne
Office 2003: Antw:Office 2003: Arbeitsblatt mit Schnittstelle verbinden
« Antwort #3 am: April 09, 2012, 14:46:01 Nachmittag »
hallo Officer & Ricco,

recht herzlichen Dank für Eure Hilfe. Werde demnächst alles ausprobieren.


Viele Grüße

Mexico67

Wenn du dich noch intensiver mit Excel beschäftigen möchtest, dann empfiehlt sich ein Online-Kurs,
in dem du sehr viel über Excel erfährst und das gelernte umgehend in der Praxis anwenden kannst.