Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
1100to1104
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
Inhaltsverzeichnis

VBA - Konsolenbefehl, alternative

VBA - Konsolenbefehl, alternative
Daniel
Hallo Forum,
nach x gescheiterten Versuchen an meinem HomeNET@Excel Projekt muss ich das Ganze anders angehen.
Ich habe ein Mikroprozessorboard mit ADC-Messeingängen deren Werte ich einfach über eine Telnet Socketverbindung abrufen kann.
In der Konsole geht das mit dem Programm netCat einwandfrei mit dem Befehl.
echo getadc 1|nc 172.16.1.20 50290 -w 1
Dieser Befehl gibt mir einen Wert von 1-1023 zurück, abhängig vom Meßwert.
Bis jetzt habe ich das so gelöst, dass mir eine ständig im hintergrund laufende Batch-Datei den Wert ausgelesen und in eine Datei geschrieben hat.
Diese Datei habe ich in intervallen von einem Excel Makro auslesen und die Werte in eine Spalte schreiben lassen.
Umgekehrt hat mir das Makro die Steuerbefehle (0,1) die ich in eine Zelle getippt hab in eine Datei zurückgeschrieben und die Batch hat den Befehl beim nächsten Zyklus übertragen.
Da diese Methode mehr als **** ist dacht ich mir, dass könnte doch einfacher als NUR VBA version gelöst werden?
Kann man nicht einfach per VBA diesen Wert direkt am Gerät auslesen und in eine Zelle schreiben lassen?
Bin leider nicht übermäßig bewandert auf diesem Gebiet - Ihr schon und ich hoffe auf Hilfe.
vielen Dank
Daniel

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA - Konsolenbefehl, alternative
03.09.2009 12:23:10
fcs
Hallo Daniel,
meines Wissens kann Excel nicht direkt auf den Port zugreifen und die Daten auslesen bzw. es werden entsprechende DLL-Dateien benötigt, die den Datenaustausch zwischen Excel und den anderen Anwendungen steuern.
Du kannst aber in VBA mit der Shell-Funktion den netcat-Befehl von Excel aus starten bzw.die Batchdatei.
So kannst du dann zumindest das Lesen/Schreiben von Daten durch NetCat und die Aktivitäten der von NetCat erzeugten Daten mit dem Lesen/Schreiben der Dateien durch Excel mit zeitlich gestaffelten OnTime-Anweisungen synchronisieren.
Gruß
Franz
AW: VBA - Konsolenbefehl, alternative
03.09.2009 13:04:37
Daniel
Hallo Franz,
danke erstmal für deine Antwort.
Heisst das dann, dass ich quasi netcat im hintergrund ausführe und die Ausgabe von Netcat wieder ins Excel einbringen kann?
Wär mir ja eigentlich egal, WER die Abfrage macht, obs nun NetCat oder Excel ist.
Hast du evtl. kleine Codeschnipsel für mich? bzw. einen Tipp? Ich find mich dann schon selbst zurecht.
mfG
Anzeige
AW: VBA - Konsolenbefehl, alternative
03.09.2009 15:39:31
fcs
Hallo Daniel,
das starten einer Anwendung außerhalb von Excel sieht wie folgt aus. Siehe auch Hilfe zu Shell unter VBA.
Gruß
Franz
Sub NetCat_Aktivitaet()
Dim varProgramm
On Error GoTo Fehler
'Poolfüllstand lesen, Pumpenstatus schreiben
varProgramm = VBA.Shell(Pathname:="C:\Users\Public\Test\TestBat.bat", windowstyle:=vbHide)
'Beispiel Shell-Anwendung
varProgramm = VBA.Shell(Pathname:="C:\windows\System32\notepad.exe " _
& """C:\Users\Public\Test\Data.txt""", windowstyle:=vbNormalFocus)
Fehler:
With Err
If .Number  0 Then
Select Case .Number
Case 99999
Case Else
MsgBox "Fehler-Nr. " & .Number & vbLf & .Description & vbLf & .HelpContext
End Select
End If
.Clear
End With
End Sub

Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige