Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.04.2024 20:05:21
28.04.2024 18:33:31
28.04.2024 18:25:12
Anzeige
Archiv - Navigation
1916to1920
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

Kursabfrage funktioniert nur einmal

Kursabfrage funktioniert nur einmal
04.02.2023 18:46:13
Andreas
Hallo,
ich habe ein Problem, welches die VBA-Kursabfrage von Kryptowährungen von der BISON-Website mit Excel 2010 unter WIndows 10 betrifft.
Prinzipiell funktioniert der Code, allerdings nur beim ersten Durchlauf. Die korrekten Daten werden im Tabellenblatt 4 abgelegt. Die Kurswerte verändern sich alle paar Sekunden auf der Website, allerdings wird die Tabelle auf Tabellenblatt 4 ab dem 2. Durchlauf immer nur mit den Werten aus dem 1. Abruf "aktualisiert". Die Kurswerte verändern sich also nach dem 2. Durchlauf nicht mehr, obwohl auf der Website ganz andere Werte angezeigt werden.
Eingebunden in die Arbeitsmappe wurde der JsonConverter von T. Hall und die Bibliotheken Microsoft XML v6.0 und Microsoft Scripting Runtime.
Die Messageboxen dienten nur zur Prüfung und auch die versuchsweise Neutralisierung der Objekte "http" und "JSON" am Ende ändert nichts am Ergebnis des Codes....
Danke für eure Hilfe....
Andreas
Code "Diese Arbeitsmappe"
_________________________
Private Sub Workbook_Open()
   Application.OnTime Now() + TimeValue("00:00:20"), "Kursabfrage"
End Sub
Code "Module"
_____________
Sub Kursabfrage()
MsgBox "Start der Kursabfrage..."
Dim http As Object, JSON As Object, i As Integer
Set http = CreateObject("MSXML2.XMLHTTP")
MsgBox ("Daten werden von BISON-Website geholt...")
http.Open "GET", "https://bisonapp.com/ajax/read.php", False
http.send
Set JSON = ParseJson(http.responseText)
MsgBox ("Inhalt von http = " & http.responseText & " ....")
i = 2
For Each item In JSON
Sheets(4).Cells(i, 2).Value = item("baseEntity")
Sheets(4).Cells(i, 3).Value = item("price")
Sheets(4).Cells(i, 4).Value = item("buyPrice")
Sheets(4).Cells(i, 5).Value = item("sellPrice")
i = i + 1
Next
MsgBox ("Schleife wird verlassen - i = " & i)
Application.OnTime Now() + TimeValue("00:00:20"), "Kursabfrage"
Set http = Nothing
Set JSON = Nothing
End Sub

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

Betreff
Datum
Anwender
Anzeige
Das wird die Webseite mit Sicherheit unterbinden
04.02.2023 21:54:26
lupo1
... denn sonst gäbe es Millionen Zugriffe darauf, wenn jeder wüsste, dass man kostenlos irgendwo praktisch Real-Time-Kurse bekommen kann.
Banken (und Webseiten) zahlen dafür entsprechend.
AW: Das wird die Webseite mit Sicherheit unterbinden
05.02.2023 21:14:38
Andreas
Die Website zeigt die Kurswerte im Klartext an und hat sogar eine Kopierfunktion. Die URL wird zwar nicht von BISON öffentlich bekanntgegeben (soweit ich das überblicke...), aber wenn niemand darauf (unentgeltlich) zugreifen soll, würde man solch eine Seite sicherlich mit kundenspezifischen Zugangsdaten (zur Identifikation und Abrechnung) sichern.
Der Code funktioniert mit wiederholter Aktualisierung, wenn man statt der Zeile - Set http = CreateObject("MSXML2.XMLHTTP") - die Syntax - Set http = CreateObject("MSXML2.serverXMLHTTP") - verwendet, wie ich jetzt herausgefunden habe....
Gruß
Andreas
Anzeige
So schafft man es als Antworter mit einer ...
05.02.2023 21:48:09
lupo1
... vermuteten, aber nicht bewiesenen Information, den Frager zu mehr Eigenleistung zu bewegen.
Muss ich mir für die Zukunft merken ;-)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige