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

Website laden

Website laden
04.08.2021 10:22:05
Steffchen
Hallo liebe Excel Freunde,
ich habe mal eine Frage... Ich lade mir mit dem WebBrowser Informationen aus dem Internet und kopiere mir diese auf ein Arbeitsblatt und zwar mit diesem Code (hab ich auch aus dem Netz)!
************************************************

Private Sub UserForm_Initialize()
WebBrowser1.Silent = True
WebBrowser1.Navigate (" Webadresse ")
Do While WebBrowser1.ReadyState  READYSTATE_COMPLETE
DoEvents
Loop
NoBeep = True
WebBrowser1.ExecWB 17, 2, 0, 0
WebBrowser1.ExecWB 12, 2, 0, 0
Range("A1").Select
ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
False, NoHTMLFormatting:=False
Range("A1").Select
End Sub
************************************************
Nun meine Frage, manchmal funktioniert es einwandfrei und manchmal überhaupt nicht? Kann es was mit der Codezeile "Do While WebBrowser1.ReadyState READYSTATE_COMPLETE" zu tun haben, das er den WebBrowser nicht richtig laden kann?
Vielen Dank schon mal im Voraus.
Mit freundlichen Grüßen

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Website laden
04.08.2021 10:49:41
Nepumuk
Hallo Steffchen,
füg mal eine kleine Pause (500 Millisekunden) ein.

Option Explicit
Private Declare PtrSafe Sub Sleep Lib "kernel32.dll" ( _
ByVal dwMilliseconds As Long)
Private Sub UserForm_Initialize()
WebBrowser1.Silent = True
WebBrowser1.Navigate (" Webadresse ")
Do Until WebBrowser1.ReadyState = READYSTATE_COMPLETE
DoEvents
Call Sleep(500)
Loop
NoBeep = True
WebBrowser1.ExecWB 17, 2, 0, 0
WebBrowser1.ExecWB 12, 2, 0, 0
Range("A1").Select
ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
False, NoHTMLFormatting:=False
Range("A1").Select
End Sub
Gruß
Nepumuk
Anzeige
AW: Website laden
04.08.2021 13:32:12
Steffchen
Also ich habe das probiert wie von nepumuk beschrieben. Funktioniert leider trotzdem nicht wie gewollt.
Einmal geht es das andere mal wieder nicht!
Habt Ihr manchmal vielleicht noch eine andere Idee bzw. Code?
Danke
AW: Website laden
04.08.2021 13:55:01
Nepumuk
Hallo Steffchen,
versuch es mal damit:

Option Explicit
Private Declare PtrSafe Sub Sleep Lib "kernel32.dll" ( _
ByVal dwMilliseconds As Long)
Private Sub UserForm_Initialize()
With WebBrowser1
.Silent = True
.Navigate ("https://www.herber.de/forum/messages/1842064.html")
Do Until .ReadyState = READYSTATE_COMPLETE
DoEvents
Call Sleep(500)
Loop
Do While .Busy
DoEvents
Call Sleep(500)
Loop
NoBeep = True
.ExecWB 17, 2, 0, 0
.ExecWB 12, 2, 0, 0
End With
Range("A1").Select
ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
False, NoHTMLFormatting:=False
Range("A1").Select
End Sub
Gruß
Nepumuk
Anzeige
AW: Website laden
04.08.2021 15:29:20
Steffchen
Funktioniert leider auch nicht wie gewollt :( Sehr schade, aber viel mehr Optionen wird es ja leider nicht geben oder?
Es scheint als würde der Code immer beim Laden vom Explorer hängen bleiben!
Wenn es nichts anderes gibt ist das auch nicht so schlimm, da muss ich mir etwas anderes einfallen lassen!
Mfg
AW: Website laden
04.08.2021 11:38:27
Zwenn
Hallo Steffchen,
neben der von Nepumuk angesprochenen Pause folgender zusätzlicher Rat von mir. Das WebBrowser Control ist quasi der Internet Explorer und soweit ich mal gelesen habe, eine relativ alte Version (da bin ich aber nicht sicher). Prüfe also, ob sich die von Dir gewünschte Seite noch im "normalen" Internet Explorer öffnen lässt. Mit immer mehr Seiten funktioniert es gar nicht mehr oder es gibt Probleme mit den verwendeten Web Technologien. Der IE wird gerade aktiv ausgemustert und ab Juni 2022 auch nicht mehr mit Windows mitinstalliert.
Da es sich um eine Art Universalcode auf sehr niedriegem Lvl handelt, nehme ich an, Du verarbeitest mit dem Teil unterschiedliche Seiten oder ist es immer die gleiche? (Verschiedene Angebote auf Ebay wären die gleiche Seite, ebay.de Zusätzlich Daten von Quoka abzurufen würde eine weitere Seite darstellen.) Ich frage das, weil es andere Wege gibt Daten aus dem Internet nach Excel zu holen und es sein kann, dass Du Dich wegen der oben genannten Gründe umorientieren musst.
Viele Grüße,
Zwenn
Anzeige
AW: Website laden
04.08.2021 11:54:49
Steffchen
Also erstmal vielen Dank für die raschen Antworten. Mit der Pause von nepumuk werde ich mal ausprobieren.
@Zwenn: Danke für den Rat von dir, bin mir dessen auch bewusst! Welche Möglichkeiten gibt es denn noch? Momentan lässt sich die Seite noch mit dem Internet Explorer ganz normal öffnen. Wie gesagt es funktioniert ja auch, nur manchmal eben auch nicht und das möchte ich gern heraus finden!
Welche anderen Möglichkeiten gibt es denn noch?
Über die Datenabfrage in Excel lässt sich die Seite auch laden aber es werden nicht alle Informationen angezeigt die ich brauche…
Mfg
AW: Website laden
04.08.2021 13:37:58
Zwenn
Für die Programmierung gibt die beiden Möglichkeiten xhr (XML HTTP Request) und SeleniumBasic. Die beiden unterscheiden sich grundlegend. Während xhr ohne grafische Oberfläche ein beliebiges Dokument von einem Webserver abfordern kann, wird mit SeleniumBasic ein Browser gesteuert. Hier kannst Du etwas darüber lesen, wie SeleniumBasic zum Laufen gebracht wird (probiere es nicht mit FireFox, das geht wohl seit einiger Zeit nicht mehr). In der Antwort darunter zeigt Anton, wie die Fragestellung des Threads mit xhr gelöst werden kann:
https://www.herber.de/forum/cgi-bin/callthread.pl?index=1831729#1831851
Da Du eine UF verwendest und wir den Rest Deiner Anwendung nicht kennen, musst Du selber abschätzen, ob da eine gangbare Lösung für Dich bei ist. Im Moment bindest Du eine GUI des Browsers ein, das geht mit SeleniumBasic nicht und xhr sieht wie gesagt von Haus keine grafische Oberfläche vor. Neben den beiden genannten Möglichkeiten bietet Excel natürlich auch das mächtige PowerQuery an. Unterm Strich kommt es auch auf die Webseite an, um zu sehen, mit welcher Möglichkeit man am besten ans Ziel kommt.
Anzeige
AW: Website laden
04.08.2021 15:31:02
Steffchen
Das klingt alles sehr komplizert und komplex. Komme ja mit dem noch nicht mal richtig klar ;)
Da muss ich mir wohl etwas anderes einfallen lassen!
Mfg
AW: Website laden
04.08.2021 15:38:32
Zwenn
Kannst Du denn die URL der Seite nennen, um die es geht und auch, welche Daten du davon haben möchtest? Ich kann das dann zumindest mal auf Machbarkeit testen. Es gibt auch die Möglichkeit Dein Makro umzustricken, wenn die Seite ansich noch im IE läuft. Dafür wäre dann Deine Excel-Datei sinnvoll.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige