Anzeige
Archiv - Navigation
1620to1624
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

Web abfrage mit Schleife

Web abfrage mit Schleife
23.04.2018 21:26:17
GerSch
Einen wunderschönen guten Abend! Vorweg, ich bin mit VBA mehr oder weniger Ahnungslos. Mir würde aber eine automatisierte Abfrage mit IE sehr viel Zeit ersparen… Ich hätte auch schon ein Script gefunden was ich relativ einfach anpassen könnte, mir fehlt aber in diesem Script eine Schleife, nur weiß ich nicht wie oder wohin mit dem Code im Script. In der Spalte A vom Tabellenblatt1 würden die Values stehen, die Anzahl variiert aber Täglich zwischen 30 bis ca. 200… (könnte ich aber täglich selbst einschränken) Ich hoffe die Profis unter euch können mir weiterhelfen…. Hier der Code …
Sub automaticformfilling()
Dim IE As Object
Set IE = CreateObject("internetexplorer.application")
With IE
.Visible = True
.Navigate "http://google.de"
Do While .busy
DoEvents
Loop
Do While .ReadyState  4
DoEvents
Loop
Set searchtext = .document.getelementbyid("lst-ib")
searchtext.Value = ThisWorkbook.Sheets(1).Range("A1")
.document.forms(0).submit
Do While .busy
DoEvents
Loop
Do While .ReadyState  4
DoEvents
Loop
Set searchres = .document.getelementbyid("resultStats")
ThisWorkbook.Sheets(1).Range("B1") = searchres.innertext
.Quit
End With
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Web abfrage mit Schleife
23.04.2018 23:31:04
Zwenn
Hallo GerSch,
da davon auszugehen ist, dass Du nicht auf Google zugreifen willst, nützt Dir der Code so gar nix, ausser als Anschauung, wie man sowas prinzipiell machen kann. Du musst uns mindestens mitteilen, um welche Seite es sich handelt, also einen Link angeben. Zusätzlich musst Du sagen, welche Daten von dieser Seite Du benötigst.
Am besten ist, Du lädst mal eine Beispieldatei hoch, der man entnehmen kann, was vorliegt und was Du erreichen willst.
Viele Grüße,
Zwenn
AW: Web abfrage mit Schleife
24.04.2018 07:06:45
GerSch
Hallo Zwenn,
danke für deine Antwort, kann ich leider nicht machen bzw. auch wenn ich dir den link sagen würde, kannst du die Seite nicht erreichen (VPN). Es handelt sich um Messwerte, die man aber nur mit einer Nummer über einen Eingabefeld (ID) bekommt. Eine Query über die URL ist auch nicht möglich da sie statisch ist! Wie gesagt die ID’s kann ich dann selber anpassen, ich check es nur nicht wie ich diesen code ändern muss. Ich denke für die Zellen muss man eine Variable definieren, einen Loop erstellen und den Wert der Tabelle immer um eins erhöhen. Ich gebe zb. Eine Nummer „255154811“ ein und bekomme einen Wert von „0,42“, der dann rechts neben der Nummer „A“ ist der Tabelle „B1 bis Bxxx“ gespeichert werden soll.
Viele Grüße,
GerSCh
Anzeige
AW: Web abfrage mit Schleife
24.04.2018 10:18:40
Zwenn
Hallo GerSCh,
mit diesen Angaben kann ich so leider nix anfangen. Lade mal bitte den HTML Code so einer Seite als .txt Datei hier hoch. Zusätzlich bitte eine Beispiel-Excel-Mappe, was aus der HTML Seite wo landen soll. Bitte auch für weitere (nicht hochgeladene) HTML Seiten in die Tabelle schreiben, wo die ausgelesenen Werte landen sollen. Nur dann kann man sehen, was die Schleife überhaupt liefern soll.
Es gibt für HTML-Seiten keinen pauschalen Code, der einem genau die Daten dahin schreibt, wo man sie braucht. Solange man nicht nur Daten aus einer einzigen bestimmten Tabelle als Tabelle braucht, die aktualisiert werden kann, ist der Code immer individuell anzupassen.
Viele Grüße,
Zwenn
Anzeige
AW: Web abfrage mit Schleife
24.04.2018 22:09:07
GerSch
Hallo Zwenn,
mach dir bitte keinen Kopf um irgendwelche andere Seiten oder html codes. Ich wäre sehr dankbar wenn mir jemand in dieses Google Script so umschreibt, dass die Tabelle A automatisch abgearbeitet wird und sich die Ergebnisse in die Spalte B eintragen. (Beispiel der Liste im Anhang)
Viele Grüße
https://www.herber.de/bbs/user/121253.txt
AW: Web abfrage mit Schleife
24.04.2018 22:09:55
GerSch
Hallo Zwenn,
mach dir bitte keinen Kopf um irgendwelche andere Seiten oder html codes. Ich wäre sehr dankbar wenn mir jemand dieses Google Script so umschreibt, dass die Tabelle A automatisch abgearbeitet wird und sich die Ergebnisse in die Spalte B eintragen. (Beispiel der Liste im Anhang)
Viele Grüße
https://www.herber.de/bbs/user/121253.txt
Anzeige
AW: Web abfrage mit Schleife
25.04.2018 00:34:15
Zwenn
Hallo GerSCh,
mit Google hast Du Dir eine ziemlich blöde Seite für den Test ausgesucht ;-) Es wird eine Zeile mit Application.Wait ... benötigt. Kommt eher selten vor. Meistens reicht einmal Do While IE.ReadyState 4: DoEvents: Loop. Zusätzlich ist Google eine der Seiten, die es gar nicht mögen, wenn man automatisiert darauf zugreift. Das untenstehende Makro hat 35 Abrufe geschafft, dann wollte Google wissen, ob ich ein Roboter bin ;-) Die sind da echt hart. War schon früher so. Selbst Ebay hat das inzwischen aufgegeben und da gingen früher schon etwa 400 Zugriffe am Stück, bevor man 10 Minuten Pause machen musste.
Wie auch immer. Prinzipiell funktioniert das mit einer For-Schleife so:
(Ich wollte auch eine Do ... Loop Version anbieten, kann die nun aber nicht mehr testen, bis Google mich wieder freigibt)
Option Explicit

Sub AutomaticFormFilling()
Dim IE As Object
Dim searchText As Object
Dim searchRes As Object
Dim i As Long
For i = 2 To Sheets(1).UsedRange.Rows.Count
Set IE = CreateObject("internetexplorer.application")
IE.Visible = True
IE.Navigate "http://google.de"
Do While IE.ReadyState  4: DoEvents: Loop
Set searchText = IE.document.getElementByID("lst-ib")
searchText.Value = ThisWorkbook.Sheets(1).Range("A" & i)
IE.document.forms(0).submit
Application.Wait (Now + TimeSerial(0, 0, 2))
Do While IE.ReadyState  4: DoEvents: Loop
Set searchRes = IE.document.getElementByID("resultStats")
ThisWorkbook.Sheets(1).Range("B" & i) = searchRes.innertext
IE.Quit
Set IE = Nothing
Next i
End Sub
Benutze bei Deinen Makros unbedingt immer Option Explicit ganz oben im Modul. Bei Dir waren zwei Variablen nicht deklariert. Das ist sehr unschön. In längeren Codes ist es ausserdem sehr fehlerträchtig, auf die zwingende Variablen Deklaration zu verzichten.
Achja, statt z.B.
ThisWorkbook.Sheets(1).Range("A" & i)

kannst Du auch schreiben
ThisWorkbook.Sheets(1).Cells(i, 1)
Viele Grüße,
Zwenn
Anzeige
AW: Web abfrage mit Schleife
25.04.2018 00:51:18
GerSch
Hallo Zwenn,
juhuuu recht herzlichem Danke! Genau so hab ich es mir vorgestellt! Sorry das dich Google geblockt hat! Ich kann es leider erst am Donnerstag anpassen und auch meine Bedürfnisse umschreiben & testen, aber ich denke es wird schon passen! Nochmals, recht herzlichen Danke du hast mir echt viel Zeit und Nerven erspart! So wie es jetzt aussieht war ich noch sehr weit weg! ;)
Danke Danke Danke mit vielen Grüßen! :) :) :)
AW: Web abfrage mit Schleife
25.04.2018 11:43:43
Zwenn
Hallo GerSCh,
dann viel Erfolg beim Ausprobieren und Anpassen :-) Wegen des Blockens bei Google brauchst Du Dir keine Gedanken machen. Ich wußte ja, dass das passieren kann und es war ja schon spät. Nach einer Weile geben die einen "wieder frei". Also heute funktioniert alles wie gewohnt.
Viele Grüße,
Zwenn
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige