Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1848to1852
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

Benzinpreise auslesen

Benzinpreise auslesen
08.10.2021 07:46:13
Christian
Hallo,
Gibt es eine Formel, die die Benzinpreise, welche ich jetzt von Hand in Spalte I geschrieben habe aufgrund der Daten in Tabelle2 berechnet?
Ganz wichtig ist auch, dass die Formel erkennt wenn eine Tankstelle zur Zeit geschlossen ist, wie in meinem Beispiel die Tankstellen im Gudenauer Weg 17 und in der Marktstr. 109 und dann nichts ausgibt.
Vielen Dank für eure Unterstützung.
Christian
https://www.herber.de/bbs/user/148500.xlsx

53
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
SVERWEIS? Kopf kratz
08.10.2021 07:54:40
Jenny
Hallo Werner,
danke für die schnelle Antwort. Ich kenne den SVERWEIS, nur bis grad dachte ich der funktioniert nur nach rechts, wenn der auszugebende Text rechts des Suchtextes steht. In meinem Fall steht er aber oberhalb des Suchtextes.
Außerdem wandelt der SVERWEIS allein nicht den als Text in Tabelle2 stehenden Benzinpreis in eine Zahl mit 3 Nachkommstellen um.
Gruß
Christian
Anzeige
AW: gemäß Deiner Fragestellung ...
08.10.2021 08:01:26
neopa
Hallo Jenny oder Christian,
... sowie Deine Angaben in Tabelle 1 veranlasste mich zur vorherigen getroffenen Antwort. Wenn Du was anders suchst, dann erkläre es bitte so, dass man eindeutig erkennen kann, was Du genau anstrebst.
Gruß Werner
.. , - ...
AW: sorry, hatte etwas überlesen ...
08.10.2021 08:07:34
neopa
Hallo nochmal,
... meine Augen waren wohl noch verklebt.
Dann z.B. für Gudenauer Weg 17 so:
=INDEX(Tabelle2!A:A;VERGLEICH(F45;Tabelle2!A:A;0)+2)/1000
Gruß Werner
.. , - ...
AW: sorry, hatte etwas überlesen ...
08.10.2021 08:21:13
Christian
Hallo Werner,
sorry Jenny ist meine Frau. Der Name stand noch von einem Eintrag von ihr im Formular.
Hatte es bei einem selbst Versuch auch mit der Index Formel probiert, auch mit XVERWEIS, WVERWEIS. Aber auf die Vergleichs Formel war ich nicht gekommen.
Allerdings der Vollständigkeit halber, hab noch eine Wennfehler Formel drumgepackt, damit an den geschlossenen Tankstellen nichts ausgegeben wird.
Und das zweite, der Preis stand in Tabelle2 oberhalb der Adresse, nicht unterhalb. Hab also noch die +2 in -7 geändert.
Aber trotzdem danke, du hast mir sehr geholfen.
Christian
Anzeige
AW: bitteschön, gerne owT
08.10.2021 08:22:52
neopa
Gruß Werner
.. , - ...
sorry es gibt doch noch ein Problem
08.10.2021 09:06:09
Christian
Hallo Werner,
die Tankstelle im Gudenauer Weg meldet die Preise nicht an die MTS-K, somit fehlt an dieser Tankstelle, wenn sie denn geöffnet hat der Vermerk "Preis von MTS-K" in Tabelle2.
Das heißt wenn diese eine Zeile fehlt, steht an der betroffenen Tankstelle der Preis nicht 7 Zeilen oberhalb der Adresse, sondern nur 6 Zeilen oberhalb.
Habe das Problem selbst versucht zu lösen in dem ich statt:
=WENNFEHLER(INDEX(Tabelle2!A:A;VERGLEICH(F1;Tabelle2!A:A;0)-7)/1000;"")
folgende Formel genommen habe
=WENNFEHLER(WENNFEHLER(INDEX(Tabelle2!A:A;VERGLEICH(F1;Tabelle2!A:A;0)-7)/1000;INDEX(Tabelle2!A:A; VERGLEICH(F1;Tabelle2!A:A;0)-6)/1000);"")
Aber es hätte mich doch mal interessiert, wie das ein Excel Profi gelöst hätte.
Hier nochmal die aktualisierte Datei
https://www.herber.de/bbs/user/148501.xlsx
Gruß und danke
Christian
Anzeige
AW: sorry es gibt doch noch ein Problem
08.10.2021 10:00:20
Daniel
Hi
da der Wert von Texten umgeben ist, könnte man die Summe aus beiden Zellen bilden um das ganze zu vereinfachen:

=WENNFEHLER(Summe(INDEX(Tabelle2!A:A;VERGLEICH(F1;Tabelle2!A:A;0)-7):INDEX(Tabelle2!A:A;VERGLEICH(F1; Tabelle2!A:A;0)-6))/1000;"") 
die weitere Vereinfachung wäre, die mehrfach benötigte Berechnung mit VERGLEICH in eine Hilfsspalte auszulagen und dann in der Berechnung diese Hilfsspalten zu verwenden.
also in

H1: =Vergleich(F1;Tabelle2!A:A;0)
I1: =Wenn(IstZahl(F1;Summe(Index(Tabelle2!A:A;H1-7):Index(Tabelle2!A:A;H1-6))/1000;"")
wenn dir die Hilfsspalte nicht zusagt, dann schau dir mal die neue Excelfunktion LET an.
Damit kann man innerhalb einer Formel quasi Variablen bestimmen und verwenden, so dass die komplexe Berechnung nicht wiederholt werden muss.
(ich kann dir da nicht weiterhelfen, da ich noch ne alte Excelversion habe)
Das wäre dann die Profi-Lösung.
Alternativ könnte man die Formel auch so vereinfachen:

=WENNFEHLER(SUMME(BEREICH.VERSCHIEBEN(Tabelle2!$A$1;VERGLEICH(F1;Tabelle2!A:A;0)-7-1;0;2))/1000;"") 
allerdings ist das durch das Bereich.Verschieben volatil, dh du müsstest mal prüfen, ob die Perfomance der Datei noch passt.
Gruß Daniel
Anzeige
AW: sorry es gibt doch noch ein Problem
08.10.2021 10:16:58
Christian
Hallo Daniel,
danke für die Vorschläge.
Es funktionieren alle 3. Werde aber den ersten aus folgenden Gründen nehmen.
1. ich bin kein Freund von Hilfsspalten
2. Ich kenne mich mit der Formel Bereich.Verschieben so wenig aus, dass ich bei dieser Lösung befürchte, bei jedem noch so kleinen Änderungswunsch wieder eure Hilfe zu brauchen. Das Selbe mit der LET Formel.
Performanceprobleme gab es keine.
Danke
Christian
AW: sorry es gibt doch noch ein Problem
08.10.2021 10:48:37
Daniel
naja, mal ne neue Funktion zu lernen, könnte nicht schaden.
Bereich.Verschieben arbeitet relativ einfach.
im ersten Parameter gibst du einen Zellbereich an.
diesen kannst du dann in Zeilen und Spalten verschieben (Parameter 2 und 3) sowie falls erforderlich in der Größe ändern (Parameter 4 und 5)
also nicht kompliziert.
einziges Problem ist die Volatilität.
Normalerweise berechnet Excel eine Formel nur dann, wenn sich eine Zelle ändert, die von der Formel auch verwendet wird.
Da hier aber die verwendeten Zellen erst in der Formel berechnet werden, muss Excel eine Formel mit Bereich.Verschieben immer berechnen, egal was auf dem Blatt geändert wird und das kann unangenehm sein, wenn diese Berechnung eine spürbare Berechnungszeit hat.
Gruß Daniel
Anzeige
AW: Benzinpreise auslesen
08.10.2021 09:47:48
Peter
Hi Christian,
Ich habe ein xlsm geschrieben, dass die Preise automatisch aus dem Internet runterlädt und in eine Grafik einträgt. Wenn du Interesse hast, kann ich es dir am frühen Naxhmittag hier reinstellen...
Lädt aber über IE - funzt also nicht mehr in Win11! :-(
AW: Benzinpreise auslesen
08.10.2021 09:59:48
Christian
Hallo Peter,
vielen lieben Dank für dein Angebot. Aber genau das war die Ursache meines Anliegens, bin auf Windows 11 / Office 2021 umgestiegen und meine Makrolösung hat nicht mehr funktioniert.
Hab dann aus meinem alten Fundus die Uraltlösung (von 2010) ohne Makro wieder ausgekramt und gemerkt, dass die damals genutzten Formeln nicht mehr funktionieren, weil sich der Aufbau der Internetseite, von der die Daten stammen, sich geändert hat.
Daher dann meine Bitte um eine Ersatzformel hier.
Viele Grüße
Christian
Anzeige
AW: Benzinpreise auslesen
08.10.2021 10:37:54
Peter
"Das einzig konstante im Leben ist die Veränderung..." :-)
AW: zu Deiner Zusatzinfo ...
08.10.2021 12:09:15
neopa
Hallo Christian,
... diese hat mir bestätigt, dass ich ich heute morgen obwohl unausgeschlafen mich offensichtlich wenigstens richtig erinnert hatte. Mir kam nämlich da Deine Datenstruktur bekannt vor und meinte für mich, dafür schon mal bei einer ähnlichen Excel-Auswertung mit geholfen zu haben. Wie lang das her ist, kann ich mich allerdings nicht erinnern, geschätzt wohl ca. 5 Jahre, oder?
Gruß Werner
.. , - ...
AW: zu Deiner Zusatzinfo ...
08.10.2021 19:54:34
Christian
Hallo Werner,
nicht schlimm, ich bin auch nicht immer ausgeschlafen. Die Tabelle ist noch viel älter, von 2010. Nur hin und wieder mal geändert worden. Stammt noch aus Jennys und meiner Studienzeit als jeder gesparte cent an der Tankstelle benötigt wurde. Kann also durchaus sein dass du da mal mitgeholfen hast.
Die Tabelle geht ja noch danach mit Berechnungen viel weiter, wenn mal die Preise da sind. (aber die funktionieren alle, bei diesen Berechnungen brauchen wir in diesem Fall keine Hilfe
Gruß
Christian
Anzeige
AW: Benzinpreise auslesen
08.10.2021 14:42:54
Peter
Hallo Christian,
DEN Teil meines Tankstellenprogramms hatte ich schon vor einem Jahr geschrieben und vergessen, dass ich es da NICHT mit dem typischen IE-Aufruf mache, sondern mit

Declare Function InternetCheckConnection Lib "wininet.dll" Alias _
"InternetCheckConnectionA"
Ich weiß allerdings nicht, ob diese API doch irgendwie den IE braucht...
Das Modul "LadeDateiAusInternet" siehr bei mir wie folgt aus:

Option Explicit
Const INTERNET_OPEN_TYPE_PRECONFIG = 0
'Const INTERNET_FLAG_EXISTING_CONNECT = &H20000000
Const INTERNET_FLAG_HYPERLINK = &H400&
Const FLAG_ICC_FORCE_CONNECTION = &H1
Private Declare Function InternetCheckConnection Lib "wininet.dll" Alias _
"InternetCheckConnectionA" (ByVal lpszUrl As String, ByVal dwFlags As Long, _
ByVal dwReserved As Long) As Long
Private Declare Function InternetOpen Lib "wininet.dll" Alias _
"InternetOpenA" (ByVal lpszAgent As String, ByVal dwAccessType As Long, _
ByVal lpszProxyName As String, _
ByVal lpszProxyBypass As String, _
ByVal dwFlags As Long) As Long
Private Declare Function InternetOpenUrl Lib "wininet.dll" Alias _
"InternetOpenUrlA" (ByVal hInternetSession As Long, _
ByVal lpszUrl As String, _
ByVal lpszHeaders As String, _
ByVal dwHeadersLength As Long, _
ByVal dwFlags As Long, _
ByVal dwContext As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet.dll" _
(ByVal hInet As Long) As Integer
Private Declare Function InternetReadFile Lib "wininet.dll" _
(ByVal hFile As Long, ByVal lpBuffer As String, _
ByVal dwNumberOfBytesToRead As Long, _
lNumberOfBytesRead As Long) As Integer
Function DownloadURL(ByVal URL As String, A$) As String
'Lädt Daten aus der URL aus Internet in A$.
'Funktioniert hier auch für große Datenmengen, eine Zerlegung mit Mid$ aber nur bis 32767 Zeichen!
Const TimeOut As Single = 3 'Timeout nach x Sekunden
Dim hInternetSession As Long, hURL As Long, DatNum As Integer, ByteAnz As Long
Dim Buffer As String * 4096, DatInhalt As String, TimerStart As Single, StatusT$
Dim ii As Integer
DoEvents 'Mal kurz Screen updaten lassen
'Open an Internet session, and retrieve its handle
On Error GoTo ErrInternetOpen
hInternetSession = InternetOpen("dummy", INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
On Error GoTo 0
If hInternetSession = 0 Then GoTo ErrInternetOpen
'Open the file and retrieve its handle
On Error GoTo ErrInternetOpenUrl
hURL = InternetOpenUrl(hInternetSession, URL, vbNullString, 0, INTERNET_FLAG_HYPERLINK, 0)
On Error GoTo 0
If hURL = 0 Then GoTo ErrInternetOpenUrl
'Jetzt Inhalt der URL in Blöcken von 4096 Byte einlesen
StatusT$ = "Downloading from """ & URL & """ - Bytes: "
Application.StatusBar = StatusT$ & "0"
Do
TimerStart = Timer 'Warte maximal TimeOut, dass sich die URL wieder meldet
Do While InternetCheckConnection(URL, FLAG_ICC_FORCE_CONNECTION, 0) = False
DoEvents
If Timer > TimerStart + TimeOut Or Timer  0 Then
A$ = DatInhalt
DownloadURL = vbNullString 'Alles OK
Else
DownloadURL = "Konnte von URL nichts Laden"
End If
Raus:
InternetCloseHandle hURL
Raus2:
On Error Resume Next
InternetCloseHandle hInternetSession
On Error GoTo 0
Application.StatusBar = False
Exit Function
ErrInternetOpen:
DownloadURL = "Fehler beim Öffnen des Internets."
GoTo Raus2
ErrInternetOpenUrl:
DownloadURL = "Fehler beim Öffnen der URL" & vbLf & "  """ & URL & """."
GoTo Raus2
ErrReadFromURL:
DownloadURL = "Fehler beim Laden von der URL" & vbLf & "  """ & URL & """."
GoTo Raus
ErrWriteFile:
DownloadURL = "Fehler beim Schreiben der URL-Inhalte in Datei" & vbLf & "  """ & A$ & """."
If Err Then DownloadURL = DownloadURL & vbLf & "Fehler " & Err.Number & ": " & Err.Description
GoTo Raus
End Function
Schau' mal, ob das bei dir auf Win11 noch funktioniert! Ein Feedback würde mich freuen, da hätte ich dann was über Win11 gelernt (das ich nicht habe)!
Anzeige
AW: Benzinpreise auslesen
08.10.2021 19:59:48
Christian
Hallo Peter,
ich weiß nicht, in wiefern die das jetzt hilft. Aber habe als erstes mal den langen Textteil in ein Modul kopiert.
Da war dann bereits folgender Teil rot geschrieben. Alle weiteren tests bitte ich dich, genauer mit mir abzustimmen, was ich genau machen soll, bevor wir da aneinander vorbeireden.

Private Declare Function InternetCheckConnection Lib "wininet.dll" Alias _
"InternetCheckConnectionA" (ByVal lpszUrl As String, ByVal dwFlags As Long, _
ByVal dwReserved As Long) As Long
Private Declare Function InternetOpen Lib "wininet.dll" Alias _
"InternetOpenA" (ByVal lpszAgent As String, ByVal dwAccessType As Long, _
ByVal lpszProxyName As String, _
ByVal lpszProxyBypass As String, _
ByVal dwFlags As Long) As Long
Private Declare Function InternetOpenUrl Lib "wininet.dll" Alias _
"InternetOpenUrlA" (ByVal hInternetSession As Long, _
ByVal lpszUrl As String, _
ByVal lpszHeaders As String, _
ByVal dwHeadersLength As Long, _
ByVal dwFlags As Long, _
ByVal dwContext As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet.dll" _
(ByVal hInet As Long) As Integer
Private Declare Function InternetReadFile Lib "wininet.dll" _
(ByVal hFile As Long, ByVal lpBuffer As String, _
ByVal dwNumberOfBytesToRead As Long, _
lNumberOfBytesRead As Long) As Integer

Anzeige
Nachtrag
08.10.2021 20:02:02
Christian
Beim Schließen des Editors bekam ich dann die Meldung, der Code müsse für die Verwendung auf 64 Bit Versionen aktualisiert werden.
AW: Benzinpreise auslesen
08.10.2021 15:34:00
Peter
Hallo Christian,
ich habe mal deine ersten 5 Tankstellen in mein xlsm-Proggy eingetragen und kurz gestartet (checkt alle 5 Minuten die Preise - kann man einstellen) - funktioniert bei mir auf meinem alten Windows:
https://www.herber.de/bbs/user/148511.xlsm
Das Programm fragt im Moment die Dieselpreise ab, weil ich Diesel fahre...
Musst erst links mit Button die alten Daten löschen und rechts oben mit Min/Max und von bis (z. B. 26 Stunden) neu skalieren - sonst siehst du nichts in den Diagrammen...
Läuft es bei dir auf Win11?
AW: Benzinpreise auslesen
08.10.2021 20:03:59
Christian
Hier bekomme ich dieselbe Meldung, muss auf Verwendung von 64 Bit Systemen aktualisiert werden.
AW: Benzinpreise auslesen
08.10.2021 20:55:00
Peter
Jo, du hast die 64 Bit Officeversiob installiert... Api-Aufrufe haben da eine andere Syntax.
Das kannst du dir aber ergoogeln wie man das "übersetzt"..
Office 64 Bit braucht man nicht. Ist nur sinnvoll, wenn man Dateien größer 2 GB hat...
AW: Benzinpreise auslesen
09.10.2021 13:44:45
Christian
Hallo Peter,
wir haben ja inzwischen dank Zwenn eine funktionierende Lösung.
Ich habe kein Problem damit, dir zu helfen, wenn du herausfinden möchtest, ob dein Makro noch unter Win11/O21 funktioniert. Aber ich fange jetzt nicht an mir selbst beizubringen, wie man das umprogrammiert.
Wir können uns vielleicht darauf einigen, dass ich nächste Woche (bin im Moment nicht zuhause) mal die 32bit Version installiere und es teste.
Gruß
Christian
AW: Benzinpreise auslesen
09.10.2021 14:34:37
Peter
Danke, das wäre prima!
Du solltest dir ggf. überlegen, ob du dann nicht bei der 32 Bit Version bleiben willst... keine Nachteile aber mit allen Makros kompatibel...
Da ich keinen Zugang zu einer installierten Office 64 Bit Version habe, kann ich nicht testen, ob ein Adaptieren der Api-Funktionen gelungen ist...
AW: Benzinpreise auslesen
09.10.2021 18:55:47
Christian
Hallo Peter, wie gesagt, mache ich sehr gerne. Aber halt erst nächste Woche wenn wir wieder daheim sind, mangels Installationsdatei.
AW: Benzinpreise auslesen
13.10.2021 08:15:58
Peter
Hallo Christian, gibt es noch Hoffnung, dass du das unter Win11 und Office 32 Bit noch testest? Wäre toll!
mache ich noch, versprochen, oWT
13.10.2021 10:32:27
Christian
.
Testergebnisse
13.10.2021 17:36:43
Christian
Hallo Peter
erstmal zu dem VBA Code den du mir zuerst geschickt hattest. Den hab ich in ein Modul gepackt, ohne dass eine Fehlermeldung kam, wusste dann aber nicht weiter was ich damit weiter machen soll.
Zu der Datei, habs getestet, ohne Fehlermeldung, hier das Ergebnis:
https://www.herber.de/bbs/user/148606.xlsm
Ich denke, ob alles so funktioniert hat, wie es sollte kannst du besser beurteilen als ich. Fehlermeldungen kamen wie gesagt keine.
Viele Grüße
Christian
in Gedanken das Häkchen gesetzt owT
13.10.2021 17:38:18
Christian
.
AW: in Gedanken das Häkchen gesetzt owT
13.10.2021 18:53:40
Peter
Hattest du dir nicht durchgelesen, was ich darüber geschrieben hatte?
Du hast nur einen Datenpunkt ausgelesen - was aber zeigt, dass die Internetabfrage unter Windows 11 funktioniert! Sehr gut!!
Außerdem musst du die Grafiken mit der Box auf der ersten Seite skalieren (Datum/Uhrzeit von/bis), sonst siehst du ja kein Ergebnis!! Dann mal ein paar Stunden laufen lassen...
Das Programm holt sich alle 5 Minuten (für so viele Tankstellen aus einer Region, wie du willst) die Preise und stellt den Verlauf grafisch dar.
Du hattest doch geschrieben, dass wg Windows11 deine Makros nicht mehr funktioniert hatten. Ich habe das so interpretiert, dass du davor auch die Daten direkt aus dem Internet geholt hattest - das genau macht diese Subroutine. Das macht auch mein Excel-Programm, allerdings mit einer anderen Seite für Benzinpreise.
Also anstatt die Benzinpreisseite mit copy/paste in deine Mappe zu übertragen lädst du sie direkt in eine Stringvariable mit der Subroutine. und kannst sie dann auswerten.
Naja, wenn du Lust hast kannst du ja mal damit experimentieren...
AW: in Gedanken das Häkchen gesetzt owT
13.10.2021 19:30:56
Christian
Hallo Peter,
gelesen habe ich es, aber offensichtlich falsch verstanden. Deshalb habe ich es dir ja geschickt, dass du mal draufschaust.
Möchtest du denn noch dass ich es ein paar Stunden laufen lasse?
Gruß
Christian
AW: in Gedanken das Häkchen gesetzt owT
13.10.2021 20:57:46
Peter
Das ist dann nur für dich. Vielleicht gefällt dir ja das Ergebnus...
Benzinpreise auslesen über xhr
08.10.2021 17:01:33
Zwenn
Hallo Christian,
prizipiell würde ich die richtigen Daten direkt von der Seite in die richtigen Zellen in der Tabelle schreiben. Da kann man dann so ziemlich machen was man will. Mit xhr geht das wie unten im Makro angegeben und sollte auch unter Deiner neuen Umgebung laufen, da unabhängig vom IE. Die URL-Parameter sind da noch hart reingeschrieben. In der Praxis würde man die aus einer Tabelle einlesen, wo sie dann auch bequem für die jeweilige Abfrage angepasst werden können.
Die Do Loop Schleife Ist etwas hingepfuscht. Ich war für das Beispiel zu faul die Anzahl der vorhandenen Seiten auszulesen und als Abbruchbedingung zu verwenden. Wird eine Seitenzahl erreicht, die es nicht gibt, gibt es keinen Container und die Abfrage auf jenen führt in den Else-Zweig, wo die Schleife verlassen wird. Wie gesagt, das ist schlechter Stil. Mir geht es hier nur darum zu zeigen, wie man direkt ans Ziel kommen kann. Ausgestaltet kann es dann noch immer werden.
Im Moment kann ich die Seite nicht mehr laden. 16 Anfragen schnell am Stück waren wohl zuviel des Guten. Auf die Zahl kommst Du aber nicht denke ich. Ich hatte den Radius auf 50 km gesetzt, um zwei geschlossene Tankstellen zu bekommen. Das ist zwar nicht vorgesehen, funktioniert aber. Geschlossene Tankstellen werden übersprungen. Es kann natürlich auch so programmiert werden, dass in die Tabelle geschrieben wird, wann sie wieder öffnen.

Sub BenzinPreise()
Const urlBase As String = "https://www.clever-tanken.de/tankstelle_liste"
Dim urlRadius As Long
Dim urlRegion As String
Dim urlFuelType As Byte
Dim urlPage As Long
Dim url As String
Dim doc As Object
Dim nodeContainer As Object
Dim nodeAllA As Object
Dim nodeOneA As Object
Dim currRow As Long
currRow = 2
urlRadius = 5
urlRegion = "53332"
urlFuelType = 6
urlPage = 1
Set doc = CreateObject("htmlFile")
With CreateObject("MSXML2.ServerXMLHTTP.6.0")
Do
Debug.Print urlPage
url = urlBase & "?r=" & urlRadius & "&ort=" & urlRegion & "&spritsorte=" & urlFuelType & "&page=" & urlPage
.Open "GET", url, False
.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0"
.Send
If .Status = 200 Then
doc.body.innerHTML = .responseText
On Error Resume Next
Set nodeContainer = doc.getElementByID("main-column-container")
On Error GoTo 0
If Not nodeContainer Is Nothing Then
Set nodeAllA = nodeContainer.getElementsByTagName("a")
For Each nodeOneA In nodeAllA
If nodeOneA.getElementsByClassName("no-price-text").Length = 0 Then
Cells(currRow, 6) = nodeOneA.getElementsByClassName("fuel-station-location-street")(0).innertext
Cells(currRow, 9) = nodeOneA.getElementsByClassName("price-text")(0).innertext
currRow = currRow + 1
End If
Next nodeOneA
Else
Exit Do
End If
Else
MsgBox "Seite nicht geladen. HTTP status " & .Status
End If
urlPage = urlPage + 1
Loop
End With
End Sub
Viele Grüße,
Zwenn
AW: Benzinpreise auslesen über xhr
08.10.2021 19:51:29
Jenny
Hallo Zwenn,
ich schreibe dann jetzt in diesem Post und lasse den anderen links liegen, dann müssen wir nicht dauernd in verschiedenen Posts nach Antworten schauen.
Prinzipiell soll es bei der Abfrage um so etwas gehen:
Ich habe jetzt als fiktives Beispiel die Stadt Saarbrücken genommen.
https://www.clever-tanken.de/tankstelle_liste?spritsorte=7&r=10&lon=6.99637898309047&lat=49.2343620249004&sort=km
Es geht um eine Abfrage auf der Seite clever-tanken.de mit den Einstellungen Umkreissuche Radius 10 km um feste Koordinaten, Spritsorte Super E5, sortiert nach Entfernung.
Die zweite Seite von der ich sprach kommt daher, dass clever tanken alle 50 Einträge eine neue Seite bei der Ausgabe macht und bei unserem Wohnort sind es mehr als 50 Tankstellen in diesem Radius.
https://www.herber.de/bbs/user/148500.xlsx
Es geht dann nur noch darum, zu den Adressen, die in der Mappe vorgegeben sind, den passenden Preis abzufragen und zu beachten, dass bei Tankstellen, die zum Zeitpunkt der Abfrage geschlossen sind, kein Preis vorhanden ist.
Hoffe so ist es verständlich, falls nicht einfach fragen.
Jenny
AW: Benzinpreise auslesen über xhr
09.10.2021 00:25:07
Zwenn
Hallo Jenny,
ich habe das jetzt so gebastelt, dass alle Seiten abgefragt werden, die im angegebenen Radius liegen. Welche Daten Ihr genau haben wollt und wo die hingeschrieben werden sollen ist mir noch immer nicht klar. Ich habe einfach die gängigen genommen.
Den Tabellennamen, die Koordinaten, den Radius, usw. könnt ihr im Makro einfach nach Euren Bedürfnissen anpassen:

Sub BenzinPreise()
Const urlBase As String = "https://www.clever-tanken.de/tankstelle_liste"
Dim urlRadius As Long
Dim urlLat As String
Dim urlLon As String
Dim urlFuelType As Byte
Dim urlSort As String
Dim urlPage As Long
Dim url As String
Dim doc As Object
Dim nodeMainContainer As Object
Dim nodeAllCardContainer As Object
Dim nodeOneCardContainer As Object
Dim nodePagination As Object
Dim paginationString As String
Dim maxPage As Long
Dim ws As Worksheet
Dim currRow As Long
Set ws = ActiveSheet
currRow = 2
urlRadius = 25
urlLat = "49.2343620249004"
urlLon = "6.99637898309047"
urlFuelType = 7
urlSort = "km"
urlPage = 1
maxPage = 1
Set doc = CreateObject("htmlFile")
With CreateObject("MSXML2.XMLHTTP.6.0")
Do
url = urlBase & "?r=" & urlRadius & "&lat=" & urlLat & "&lon=" & urlLon & "&spritsorte=" & urlFuelType & _
"&sort=" & urlSort & "&page=" & urlPage
.Open "GET", url, False
.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0"
.Send
If .Status = 200 Then
doc.body.innerHTML = .responseText
If maxPage = 1 Then
Set nodePagination = doc.getElementsByClassName("page-current")
If nodePagination.Length > 0 Then
paginationString = Trim(nodePagination(0).innertext)
maxPage = Right(paginationString, Len(paginationString) - InStrRev(paginationString, " "))
End If
End If
On Error Resume Next
Set nodeMainContainer = doc.getElementByID("main-column-container")
On Error GoTo 0
If Not nodeMainContainer Is Nothing Then
Set nodeAllCardContainer = nodeMainContainer.getElementsByClassName("list-card-container")
For Each nodeOneCardContainer In nodeAllCardContainer
With nodeOneCardContainer
If .getElementsByClassName("no-price-text").Length = 0 Then
ws.Cells(currRow, 5) = .getElementsByClassName("fuel-station-location-name")(0).innertext
ws.Cells(currRow, 6) = .getElementsByClassName("fuel-station-location-street")(0).innertext
ws.Cells(currRow, 7) = .getElementsByClassName("fuel-station-location-city")(0).innertext
ws.Cells(currRow, 8) = .getElementsByClassName("fuel-station-location-distance")(0).innertext
ws.Cells(currRow, 9) = .getElementsByClassName("price-text")(0).innertext
currRow = currRow + 1
End If
End With
Next nodeOneCardContainer
End If
End If
urlPage = urlPage + 1
Loop Until urlPage > maxPage
End With
End Sub
Viele Grüße,
Zwenn
leider zuviel des guten
09.10.2021 09:23:37
Jenny
Hallo Zwenn,
vielen lieben dank.
Haben jetzt nur ein kleines Problem. Das Makro lädt zuviel runter, ich müsste jetzt zig Formeln schreiben um da das rauszuholen, was wir wirklich brauchen.
Wir hatten ja in der Bspmappe die Straßennamen der Tankstellen, die uns interessieren vorgegeben. Ein Makro dass ganz einfach nur die Benzinpreise in Spalte I aktualisiert, reicht vollkommen aus.
Bei den ganzen Informationen die dein Makro herunterlädt müsste ich das in ein anderes Blatt auslagern und anfagen mit SVERWEIS die passenden Preise zu den einzelnen Tankstellen zu holen.
Gruß und danke
Jenny
AW: leider zuviel des guten
09.10.2021 10:32:06
Zwenn
Hallo Jenny,
das ist doch kein Problem. Die Werte werden in folgendem Block geholt. Die nicht benötigten Zeilen kommentierst Du einfach aus. Ich habe hinter jede Zeile geschrieben, welche Information in ihr ausgelesen wird. Um eine Zeile auszukommentieren, setzt Du ganz an den Anfang ein Hochkomma ('). Ich habe die Worte Tankstellenname, Straße und Hausnummer, usw. auskommentiert. Das machst Du einfach jeweils mit der ganzen nicht gewünschten Zeile:

ws.Cells(currRow, 5) = .getElementsByClassName("fuel-station-location-name")(0).innertext 'Tankstellenname
ws.Cells(currRow, 6) = .getElementsByClassName("fuel-station-location-street")(0).innertext 'Straße und Hausnummer
ws.Cells(currRow, 7) = .getElementsByClassName("fuel-station-location-city")(0).innertext 'PLZ und Stadt
ws.Cells(currRow, 8) = .getElementsByClassName("fuel-station-location-distance")(0).innertext 'Entfernung
ws.Cells(currRow, 9) = .getElementsByClassName("price-text")(0).innertext 'Preis
Viele Grüße,
Zwenn
AW: leider zuviel des guten
09.10.2021 12:24:32
Jenny
Hallo Zwenn,
ok, das wäre machbar, solange keine Tankstelle dauerhaft schließt oder neu gebaut wird. Solange kann ich davon ausgehen, dass die Reihenfolge der heruntergeladenen Tankstellen immer dieselbe ist.
Ich probiere es dann mal aus und melde mich wieder.
Jenny
Was genau passiert in Eurem Projekt eigentlich?
09.10.2021 12:46:01
Zwenn
Hallo Jenny,
ich verstehe noch immer nicht, was Ihr da eigentlich macht. Ich hatte mich schon nach Deinem letzten Post gefragt, wie Ihr denn die Preise zuordnen wollt. Jetzt sagst Du, das soll nach der Reihenfolge geschehen. Das wird nicht funktionieren. Sobald eine beliebige Tankstelle in der Liste nämlich gerade geschlossen hat, stimmt die Reihenfolge nicht mehr.
Es ist nur Euch bekannt, was Ihr mit den Daten eigentlich wollt. Es muss ja bereits einen Datenbestand geben, dem Ihr dynamische Daten zuordnen wollt. Dieser Datenbestand ist aber nicht statisch. Denn wie Du schreibst, kann eine Tankstelle gebaut werden und genauso kann auch eine geschlossen werden. Der bestehende Datenbestand (so es ihn denn gibt), ist also auch dynamisch, nur viel langsamer.
Peter hatte doch auch eine Lösung zur Verfügung gestellt. Den Zugriff aufs Internet finde ich persönlich zwar etwas kompliziert gelöst über die APIs, aber das Tool insgesamt ist doch inklusive grafischer Auswertungen total gut. Je nachdem, was man benötigt natürlich. Er benutzt zwar eine andere Seite, aber diese bietet IDs für jede Tankstelle. Ob die immer gleich bleiben weiß ich nicht. Aber wenn ja, wäre dass die beste eindeutige Zuordnung, die es geben kann.
Wenn Ihr bei Eurer jetzt verwendeten Seite bleiben wollt, dann könnt Ihr eine Zuordnung auch über die Adresse vornehmen. Oder ist die in Eurem Datenbestand nicht hinterlegt? Bei jedem Auslesevorgang kann die Adresse mit abgefragt werden. Das habe ich gezeigt. Es ist aber nicht notwendig, die dann irgendwo in eine Tabelle zu schreiben. Man kann die auch in zwei Variablen schreiben, Straße und Stadt. Dann erfolgt direkt ein Abgleich mit dem Datenbestand und dort wird dann nur der aktuelle Preis eingetragen.
Das ist jetzt nur ein Gedankenkonstrukt, um aufzuzeigen, wie solche Abgleiche theoretisch funktionieren. Wie genau es für Euch zu lösen ist kann niemand sagen, der Euer Projekt nicht kennt. Aber was ich sicher sagen kann ist, jede Menge Formeln und Hilfstabellen sind nicht notwendig.
Viele Grüße,
Zwenn
AW: Was genau passiert in Eurem Projekt eigentlich?
09.10.2021 13:39:30
Jenny
Hallo Zwenn,
ok ich lese diesen Beitrag jetzt erst.
Also was wir damit anstellen wollen.
Hintergedanke ist der, die Mappe stammt noch von vor 10 Jahren aus der Studienzeit als wir noch Geld sparen mussten.
Die Originalmappe bietet die Möglichkeit, Spritverbrauch, gefahrene km, zu tankende Menge, sowie das Geld was investiert werden soll, vorzugeben.
Die Clever tanken App kann man nur nach dem günstigsten Preis sortieren.
Anhand der Excel Mappe kann ich z.b. eine solche Rechnung machen.
Tankstelle 1 ist hin und zurück 2 reale km (nicht Luftlinie) weg. Bei einem Verbrauch von 6,14 L/100 km und einem Preis von ich sage mal 1,499 wären das Fahrtkosten von 17,79 ct.
Jetzt will ich noch 35 Liter tanken, macht an dieser Tankstelle 52,47 €.
Also muss ich um an dieser Tankstelle 35 Liter zu tanken knapp 52,65 € investieren.
Das dann durchgerechnet für jede Tankstelle ergibt die unterm Strich günstigste Tankstelle.
Aber wie gesagt das Sind Rechnungen, die haben ja alle funktioniert. Das einzige was nicht funktioniert hatte war das Makro. Deshalb waren all diese Berechnungen nicht Teil der Bspmappe.
So sieht der Berechnungsteil der Mappe aus, habe jetzt den Makroteil weggelassen wegen den Koordinaten und statt der Formel die die Benzinpreise aus dem Makroteil abfragt, die Werte eingefügt.
https://www.herber.de/bbs/user/148524.xlsm
Aber das ganze ist jetzt so umgebaut, dass wir das Makro so wie es jetzt ist nutzen können. Danke auf jeden Fall für das Makro. Das Makro lädt alle Daten runter und mit SVERWEIS greife ich dann die Daten ab, die ich wirklich brauche und mit diesen mache ich dann die Berechnungen.
Viele Grüße
Jenny
AW: Was genau passiert in Eurem Projekt eigentlich?
09.10.2021 13:50:09
Zwenn
Hallo Jenny,
jetzt ist es klarer, danke. Ich habe Dir unten noch einmal geantwortet und das angepasste Makro dort gepostet. Ihr könnt ja sehen, ob Euch das lieber ist :-)
Viele Grüße,
Zwenn
AW: Was genau passiert in Eurem Projekt eigentlich?
09.10.2021 14:13:09
Christian
Hallo Zwenn,
haben auf diesen Post auch geantwortet. Soweit klappt dann alles. Schönes Wochenende noch und vielen Dank
Christian und Jenny
AW: leider zuviel des guten
09.10.2021 12:38:41
Jenny
Hallo Zwenn, habs jetzt getestet.
Ich weiß nicht, wenn es dir nichts ausmacht, noch eine Bitte umzusetzen, die aber sicher nichts wildes ist und mir eine Frage dazu zu beantworten.
Zur Frage, was passiert, wenn eine Tankstelle geschlossen hat und entsprechend kein Preis bei clever Tanken zur Verfügung steht?
Und zur Bitte. Lässt sich die Ausgabe auf die ersten 52 Tankstellen beschränken?
Ansonsten habe ich es geschafft, die Formeln an deine Lösung anzupassen. Soweit läuft es.
Vielen Dank
Jenny
AW: leider zuviel des guten
09.10.2021 12:54:08
Zwenn
Hallo Jenny,
geschlossene Tankstellen werden übersprungen. Das ist ein Grund, warum das mit der Reiehenfolge nicht klappt. Man kann das umstricken, aber lies bitte meinen anderen Beitrag, denn ich halte das für eine äußerst schlechte Art und Weise der eindeutigen Zuordnung.
Klar kann man es auf jede beliebige maximale Anzahl von Tankstellen begrenzen. Dafür muss nur ein zusätzlicher Zähler eingerichtet werden.
Aber wie gesagt, ich glaube Ihr habt Euch in der Lösungsstrategie verrant und seid jetzt am "anflicken" weiterer Daten. Das wird aber nur immer komplizierter, wenn Euch das nächste Feature einfällt, dass Ihr implementieren wollt. Deshalb plant man auch solche kleinen Projekte erstmal in der Theorie. Da muss kein aufwändiges Projektmanagement erfolgen, aber sich hinsetzen und einfach loszutippen funktioniert halt auch nicht.
Viele Grüße,
Zwenn
AW: leider zuviel des guten
09.10.2021 13:11:52
Jenny
Hallo Zwenn,
ist ja auch nicht so schlimm, dann baue ich halt die Formeln nochmal um.
Was soll ich dazu sagen, ich hatte halt von vorneherein einen bestimmten Lösungweg im Kopf, der sich bis jetzt nicht geändert hat. Dein Makrovorschlag hatte eine Tabelle mit mehreren Spalten ausgegeben, während das heute nicht mehr funktionierende Makro alles in eine Spalte geschrieben hatte. Da fing die Notwendigkeit an, weitere Anpassungen vorzunehmen.
Aber ist ok, ich baue die Mappe und die Berechnungen so um dass sie zu der Struktur deines Makros passen.
Gruß
Jenny
AW: leider zuviel des guten
09.10.2021 13:32:28
Zwenn
Hallo Jenny,
es geht mir darum, eine vernünftige Gesamtlösung zu finden. Das geht aber nur, wenn "alle Beteiligten" wissen, um was es eigentlich geht. Die Tabelle, die mein Makro erzeugt ist doch nicht in Stein gemeisselt. Wie gesagt, man kann das was man benötigt einfach da ausgeben, wo es gebraucht wird.
Im Moment geht es um die eindeutige Zuordnung. Du löst das nun mit Formeln. Klar geht das, aber es ist nicht notwendig. Das wollte ich ausdrücken.
Den Teil mit den geschlossenen Tankstellen habe ich auch noch nicht richtig verstanden. In der von Euch zur Verfügung gestellten Tabelle stehen auch Tankstellen ohne Preise drin. Ich dachte, genau die wollt ihr nicht haben? Aber Ihr wolltet eine Lösung, in der aus den Rohdaten genau so eine Liste inklusive der geschlossenen Tankstellen erstellt wird richtig? Die kann auch ausgegeben werden. Aber wie gesagt, halte ich die eindeutige Zuordnung über die Reihenfolge für sehr fragil.
Hier ist das Makro mit der Beschränkung auf 52 Tankstellen und der zusätzlichen Ausgabe geschlossener Tankstellen ohne Preis. Die nicht benötigten Werte kannst Du dann einfach wieder auskommentieren:

Sub BenzinPreise()
Const urlBase As String = "https://www.clever-tanken.de/tankstelle_liste"
Dim urlRadius As Long
Dim urlLat As String
Dim urlLon As String
Dim urlFuelType As Byte
Dim urlSort As String
Dim urlPage As Long
Dim url As String
Dim doc As Object
Dim nodeMainContainer As Object
Dim nodeAllCardContainer As Object
Dim nodeOneCardContainer As Object
Dim nodePagination As Object
Dim paginationString As String
Dim maxPage As Long
Dim ws As Worksheet
Dim currRow As Long
Dim currStations As Long
Dim maxStations As Long
Set ws = ActiveSheet
currRow = 2
maxStations = 52
urlRadius = 50
urlLat = "49.2343620249004"
urlLon = "6.99637898309047"
urlFuelType = 7
urlSort = "km"
urlPage = 1
maxPage = 1
Set doc = CreateObject("htmlFile")
With CreateObject("MSXML2.XMLHTTP.6.0")
Do
url = urlBase & "?r=" & urlRadius & "&lat=" & urlLat & "&lon=" & urlLon & "&spritsorte=" & urlFuelType & _
"&sort=" & urlSort & "&page=" & urlPage
.Open "GET", url, False
.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0"
.Send
If .Status = 200 Then
doc.body.innerHTML = .responseText
If maxPage = 1 Then
Set nodePagination = doc.getElementsByClassName("page-current")
If nodePagination.Length > 0 Then
paginationString = Trim(nodePagination(0).innertext)
maxPage = Right(paginationString, Len(paginationString) - InStrRev(paginationString, " "))
End If
End If
On Error Resume Next
Set nodeMainContainer = doc.getElementByID("main-column-container")
On Error GoTo 0
If Not nodeMainContainer Is Nothing Then
Set nodeAllCardContainer = nodeMainContainer.getElementsByClassName("list-card-container")
For Each nodeOneCardContainer In nodeAllCardContainer
With nodeOneCardContainer
ws.Cells(currRow, 4) = urlPage
ws.Cells(currRow, 5) = .getElementsByClassName("fuel-station-location-name")(0).innertext
ws.Cells(currRow, 6) = .getElementsByClassName("fuel-station-location-street")(0).innertext
ws.Cells(currRow, 7) = .getElementsByClassName("fuel-station-location-city")(0).innertext
ws.Cells(currRow, 8) = .getElementsByClassName("fuel-station-location-distance")(0).innertext
If .getElementsByClassName("no-price-text").Length = 0 Then
ws.Cells(currRow, 9) = .getElementsByClassName("price-text")(0).innertext
End If
currRow = currRow + 1
currStations = currStations + 1
If currStations >= maxStations Then
Exit Do
End If
End With
Next nodeOneCardContainer
End If
End If
urlPage = urlPage + 1
Loop Until urlPage > maxPage
End With
End Sub
Viele Grüße,
Zwenn
AW: leider zuviel des guten
09.10.2021 14:12:16
Christian
Hallo Zwenn,
wir haben jetzt folgendes gemacht:
Wir haben erstmal in einem separaten Blatt dein Makro ausgeführt
Dann haben wir die Luftlinienentfernungen durch die realen Entfernungen aus unserer Mappe ersetzt.
Dann haben wir die Reihenfolge der Tankstellen in unserer Mappe an die Reihenfolge in der Ausgabe des Makros angepasst.
Und alles Zeilen die das Makro runterlädt und nicht benötigt werden, auskommentiert.
Das Ganze sieht jetzt so aus:
https://www.herber.de/bbs/user/148526.xlsm
Das Makro lädt die Preise direkt in die Tabelle in der die Berechnungen stattfinden. Sehen jetzt keinen Änderungsbedarf mehr. Vielen Dank.
Christian und Jenny
AW: leider zuviel des guten
09.10.2021 14:45:09
Zwenn
Hallo Ihr Zwei,
noch eine Anmerkung. Wenn Ihr die Preise in der Tabelle nicht vor dem Neuauslesen löscht, bleiben für aktuell ausgelesene Preise die alten Preise stehen, wenn eine Tankstelle inzwischen geschlossen wurde, weil die Ausgabe des Preises übersprungen wird.
Die folgende Code-Erweiterung überschreibt eine Zelle mit leerem Inhalt, wenn kein Preis ausgelesen werden kann. Kopiert das einfach an die entsprechende Stelle:

If .getElementsByClassName("no-price-text").Length = 0 Then
ws.Cells(currRow, 9) = .getElementsByClassName("price-text")(0).innertext
Else
ws.Cells(currRow, 9) = ""
End If
Viele Grüße,
Zwenn
AW: leider zuviel des guten
09.10.2021 18:44:08
Christian
Hallo Zwenn,
macht es dann nicht mehr Sinn, wenn das Makro zum Start direkt alle vorhandenen Preise löscht?
Aber du sagtest doch, du strebst das bestmögliche Ergebnis an.
Was uns eingefallen ist, wäre noch super, wenn das Makro beim Öffnen der Mappe von allein startet. Aber haben uns entschieden, das erstmal selbst zu versuchen und würden erst nochmal auf dich zukommen, wenn wir es gar nicht hinbekommen.
Dankeschön
Christian
ok, das war ja nicht allzu schwer
09.10.2021 18:54:41
Christian
ein private sub workbook_open() daraus machen und in "Diese Arbeitsmappe" packen.
AW: leider zuviel des guten
10.10.2021 11:55:05
Zwenn
Hallo Christian
Für das Erscheinungsbild selbst würde ich eine Kopfzeile einfügen und über den Einstellungen links, darin einen Button für den Start des Makros unterbringen. Aber wenn Ihr einen Vorteil darin seht, das Makro direkt mit dem Öffnen der Mappe auszuführen, ist das genauso gut. Am Ende sind solche Sachen Geschmackssache, wenn man so will.
Das Löschen der Einträge mit Start des Makros macht keinen Unterschied zur jetzt impementierten Methode. Ihr verlasst Euch auf die Reihenfolge. Ob dann ein Preis eingetragen wird oder ein bestehender Eintrag entfernt wird ist in dem Fall der gleiche Vorgang an der gleichen Stelle. Der Inhalt der gleichen Zelle wird verändert.
Es wäre noch möglich einen echten Abgleich auf Adressen zu implementieren, wie ich es in einem vorhergehenden Posting beschrieben habe. Dann würde ich auch die bestehenden Einträge mit Start des Makros löschen, um sie dann neu aufzubauen. Dann könnten auch Tankstellen die plötzlich weg oder hinzugekommen sind als Hinweis ausgewiesen werden.
Viele Grüße,
Zwenn
AW: leider zuviel des guten
10.10.2021 19:50:12
Christian
Hallo Zwenn,
das stimmt, das eine theoretisches neu herunterladen der Tankstellen mit eingebaut werden kann. Jedoch sehe ich darin ein Problem.
Die Entfernungsangaben in Spalte H sind die realen Entfernungen, nicht die Luftlinienentfernungen von clever Tanken.
Mit anderen Worten die Zuordnung von Entfernung und Tankstelle müsste weiter gewährleistet bleiben.
Aber uns würde noch etwas anderes interessieren.
Du hattest meiner Frau zu Beginn mehrere Alternativen zu der Abfrage durch IE genannt. Welche davon wurde denn jetzt im Endeffekt umgesetzt?
Vielen Dank
Christian
AW: leider zuviel des guten
11.10.2021 10:31:35
Zwenn
Hallo Christian,
zuordnen lässt sich alles, was schon vorhanden ist. Aber wenn es jetzt so für Euch funktioniert, dann läuft es ja wie gewünscht. Meine Zeit lässt es leider nicht zu, das insgesamt einmal "neu" zu durchdenken und umzusetzen.
Die Umsetzung des Makros erfolgte jetzt mt xhr. Das steht für XML HTTP Request. Dabei wird über eine HTTP Verbindung direkt ein bestimmtes Dokument auf einem Server angefragt. Ob das funktioniert hängt oft von vielen Randbedingungen ab. Müssen Anmeldedaten mitgesendet werden? Ist es ein Get oder ein Post Request? Wenn Post, wie sieht der Payload aus? Usw. In diesem Fall war es sehr einfach, weil ein Get Request ausreicht. Ich habe nicht einmal getestet, ob es auch ohne die Übergabe eines User Agent geht. Aber schaden kann er jedenfalls nicht. Das ist die Kennung eines anfragenden Programms und in diesem Fall die Browserkennung vom Firefox V92.
Also xhr insgesamt lässt sich nicht mal eben erklären und ich scheitere mit manchen Versuchen einer Abrage darüber nach wie vor auch noch.
Viele Grüße,
Zwenn
AW: leider zuviel des guten
13.10.2021 10:31:33
Christian
Hallo Zwenn,
solange es funktioniert, ist doch gut. Danke für die Erklärung.
Christian und Jenny
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge