Das klingt doch schon anders :-)
17.03.2018 21:25:10
Zwenn
Hallo Thomas,
ich habe jetzt mal etwas rumprobiert und den Webserver von meinem RasPi genutzt. Probiere mal folgendes Makro aus. Das liefert jetzt nicht exakt jede Sekunde neue Werte, sollte aber für Deine Zwecke schon wesentlich besser funktionieren denke ich. Zu Testzwecken brauchst Du in einer Excel-Datei eine zweite Tabelle, in der mit meinem Makro die Uhrzeiten hinterlegt werden, an denen ausgelesen wurde. Damit kannst Du mal sehen, ob das alles in dem Zeitrahmen stattfindet, wie Du es brauchst. Manchmal liegt der halt im Bereich von 2 Sekunden, statt von 1 Sekunde. Deine IP Adresse habe ich schon eingetragen.
Das Makro spammt Dir den gesamten Text aus der HTML-Datei einfach immer wieder wie er ist in Spalte A von Tabelle1. (Im vorliegenden Makro wird nach 10 Durchläufen abgebrochen, damit Du sehen kannst, was passiert ist.)
Sub HTMLvomArduinoHolen()
Dim zeile As Long 'Aktuelle Zeile in der Urzeiten-Tabelle
Dim zeitTabelle As String 'Name der Tabelle, in der zu Testzwecken die Urzeiten der _
Auslesevorgänge geschrieben wird
Dim htmlTabelle As String 'Name der Tabelle, in die der Inhalt der HTML-Datei geschrieben _
wird
zeitTabelle = "Tabelle2" 'anpassen
htmlTabelle = "Tabelle1" 'anpassen
Do
'Nächste Zeile in der Urzeiten-Tabelle und ihr Eintrag
zeile = zeile + 1
Sheets(zeitTabelle).Cells(zeile, 1).Value = Format(Now, "hh:mm:ss")
'Einlesen der HTML-Datei in die HTML-Tabelle
Application.CutCopyMode = False
With ActiveSheet.QueryTables.Add(Connection:="URL;http://192.168.1.177", _
Destination:=Sheets(htmlTabelle).Range("$A$1"))
.Name = "192.168.1.177"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
'Hier das Verarbeitungsmakro starten
'call Verarbeitungsmakro
'Hier wird eine Pause von 1 Sekunde eingelegt.
'Um die Laufzeit des Verarbeitungsmakros auszugleichen
'wird ein Wert unter 1 Sek. benötigt. Dazu braucht man
'ein anderes Vorgehen. Mit dieser Methode ist 1 Sek.
'das kleinste was geht.
Application.Wait (Now + TimeSerial(0, 0, 1))
'Die Spalte, in die der Inhalt der HTML Datei geschrieben wird,
'muss nach jedem Durchlauf gelöscht werden. Sonst werden
'weitere Einlese-Ergebnisse in den Folgespalten abgelegt
Sheets(htmlTabelle).Columns(1).EntireColumn.Delete
'Hier wird die Schleife erneut durchlaufen
'Soll sie unendlich weiterlaufen, das
'"Until zeile = 10" löschen
'Für mehr Testdurchläufe die 10 entsprechend
'hochsetzen
Loop Until zeile = 10
End Sub
Viele Grüße,
Zwenn