
94451
22.02.2016, aktualisiert um 22:48:52 Uhr
(VBA) read from TCP
Hi,
ich habe einen kleinen Arduino-Server der mir über TCP/HTTP (eine IP im localen Netz) datenzurückgibt.
Jetzt wollte ich fragen ob es möglich ist über VBA diese Daten abzurufen?
Sozusagen hätte ich gerne einen Button und der holt sich dann einfach alle Daten von 192.168.1.55
=> chrome gibt mir das zurück:
view-source:192.168.1.55
sobald das mal in Excel ist das umzuformatieren sollte kein Problem darstellen... die Frage ist wie bekomm ich das in Excel rein?
Vielen Dank
ich habe einen kleinen Arduino-Server der mir über TCP/HTTP (eine IP im localen Netz) datenzurückgibt.
Jetzt wollte ich fragen ob es möglich ist über VBA diese Daten abzurufen?
Sozusagen hätte ich gerne einen Button und der holt sich dann einfach alle Daten von 192.168.1.55
=> chrome gibt mir das zurück:
view-source:192.168.1.55
{20.81,20.87,21.31,21.12,20.69}
sobald das mal in Excel ist das umzuformatieren sollte kein Problem darstellen... die Frage ist wie bekomm ich das in Excel rein?
Vielen Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 297030
Url: https://administrator.de/forum/vba-read-from-tcp-297030.html
Ausgedruckt am: 21.04.2025 um 11:04 Uhr
5 Kommentare
Neuester Kommentar
Hallo RoadRunner777,
wenn deine Seite wirklich nur Text zurückgibt, kannst du es z.B. so machen.
Je nach dem wie die Daten zurückgeliefert werden ist eventuell Anpassung nötig.
Grüße Uwe
wenn deine Seite wirklich nur Text zurückgibt, kannst du es z.B. so machen.
Sub GetData()
dim lngTicks as Long
lngTicks = DateDiff("s",#1970/1/1#,now())
' URL angeben
Const URL = "http://192.168.1.55"
'URL abrufen (damit keine gecachte Antwort zurückgegeben wird das Anhängen eines Tick-Wertes)
MsgBox GetUrlResponse(URL & "?" & lngTicks)
End Sub
'Function zum holen der Daten per XMLHTTP-Object
Function GetUrlResponse(ByVal strURL As String) As String
On Error GoTo Error
Dim objhttp As Object
Set objhttp = CreateObject("Microsoft.XMLHTTP")
With objhttp
.Open "GET", strURL, False
.send
If .Status = 200 Then
GetUrlResponse = .responseText
Else
GetUrlResponse = ""
End If
End With
Exit Function
Error:
GetUrlResponse = ""
End Function
Grüße Uwe
Wenn du view-source verwendest dann willst du ja eigentlich den Inhalt der html Datei lesen.
Dazu findest du sicher was.
Wenn du allerdings wirklich einen interpreter brauchst vorher dann würd ich das Microsoft Web Browser Steuerelement auf eine Form setzen und dann "von hinten" anzapfen und verwenden.
Dazu findest du sicher was.
Wenn du allerdings wirklich einen interpreter brauchst vorher dann würd ich das Microsoft Web Browser Steuerelement auf eine Form setzen und dann "von hinten" anzapfen und verwenden.
Setze einfach eine globale Variable im Modulkontext welche du in deiner Prozedur auf True oder False prüfst und je nachdem Application.OnTime wieder setzt oder nicht.
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen. Merci.
Grüße Uwe
Public timerActive As Boolean
Sub GetData()
Dim lngTicks As Long
lngTicks = DateDiff("s", #1/1/1970#, Now())
' URL angeben
Const URL = "http://192.168.1.55"
If timerActive Then
'URL abrufen (damit keine gecachte Antwort zurückgegeben wird das Anhängen eines Tick-Wertes)
Sheets(1).Range("A1") = Format(Now, "hh:mm:ss")
Sheets(1).Range("B1").Value = GetUrlResponse(URL & "?" & lngTicks)
ET = Now + TimeValue("00:00:01")
Application.OnTime ET, "GetData"
End If
End Sub
'Function zum holen der Daten per XMLHTTP-Object
Function GetUrlResponse(ByVal strURL As String) As String
On Error GoTo Error
Dim objhttp As Object
Set objhttp = CreateObject("Microsoft.XMLHTTP")
With objhttp
.Open "GET", strURL, False
.send
If .Status = 200 Then
GetUrlResponse = .responseText
Else
GetUrlResponse = ""
End If
End With
Exit Function
Error:
GetUrlResponse = ""
End Function
'Prozedur zum Starten
Sub StartTimer()
timerActive = True
GetData
End Sub
'Prozedur zum Stoppen
Sub StopTimer()
timerActive = False
End Sub
Grüße Uwe