Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

warten bis Website vollständig geladen ist

Forumthread: warten bis Website vollständig geladen ist

warten bis Website vollständig geladen ist
k
Hallo,
...kurze Frage: Wie kann ich in VBA bei Excel mir ein Feedback geben lassen, ob eine Seite geladen wurde ?
Ich nutze in einer Userform das Element WebBrowser und der Link kommt aus einer Textbox.
Ich möchte nun erst "weiter" machen lassen (andere Felder freigeben in der Userform) wenn die Website vollständig geladen wurde.
Dachte erst an sowas wie:
Application.Wait (Now() + TimeValue("0:00:01")) ' einse Sekunde zeitlassen, um die Seite zu laden
Aber bei mir geht's schneller mit dem Laden der Seite wie bei meinen Kollegen (teilweise per UMTS/GPS-Stick!)...
Über jede Anregung bin ich dankbar !
Gruß und Vielen dank bereits an dieser Stelle !!!
Kay
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: warten bis Website vollständig geladen ist
17.09.2009 12:21:43
Jens
Hallo Kay
Mit:
While Not appIE.ReadyState = 4
Do Events
Wend
wird normalerweise so lange gewartet, bis die Website korrekt geladen wurde. Ob das auch im WebBrowser-Element funzt, weiß ich allerdings nicht.
Soll auch erstmal nur als Anregung dienen :o)
Aber villeicht hilft es ja schon weiter.
Gruß aus dem Sauerland
Jens
Anzeige
AW: warten bis Website vollständig geladen ist
17.09.2009 13:28:37
k
Hallo Jens aus dem Sauerland ;o)
...Vielen Dank für den Ansatz, habe es mit Webbrowser1.ReadyState = 4 umgesetzt und es scheint (getestet erst auf 2 Rechnern) zu funktionieren.
Vielen Dank !!!
Gruß
Kay aus dem Osnabrücker Land
Anzeige

Infobox / Tutorial

Warten bis eine Website vollständig geladen ist in Excel VBA


Schritt-für-Schritt-Anleitung

Um in Excel VBA zu warten, bis eine Website vollständig geladen ist, kannst Du das ReadyState-Eigenschaft des WebBrowser-Elements verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Füge ein UserForm hinzu: Öffne den VBA-Editor (Alt + F11) und erstelle ein neues UserForm.

  2. Füge ein WebBrowser-Steuerelement hinzu: Du kannst das WebBrowser-Steuerelement aus der Toolbox ziehen. Wenn die Toolbox nicht sichtbar ist, kannst Du sie über Ansicht > Toolbox aktivieren.

  3. Füge eine Textbox und einen Button hinzu: Die Textbox dient dazu, die URL einzugeben, und der Button wird verwendet, um die Seite zu laden.

  4. Code hinzufügen: Doppelklicke auf den Button und füge den folgenden Code hinzu:

    Private Sub CommandButton1_Click()
       WebBrowser1.Navigate TextBox1.Text
       Do While WebBrowser1.ReadyState <> 4
           DoEvents
       Loop
       ' Hier kannst Du weitere Aktionen durchführen, sobald die Seite geladen ist
       MsgBox "Die Seite ist vollständig geladen!"
    End Sub
  5. Testen: Führe das UserForm aus, gib eine URL in die Textbox ein und klicke auf den Button. Du solltest eine Meldung erhalten, sobald die Seite vollständig geladen ist.


Häufige Fehler und Lösungen

  • Fehler: Object variable or With block variable not set

    • Lösung: Stelle sicher, dass das WebBrowser-Steuerelement korrekt auf dem UserForm platziert ist und der Name (WebBrowser1) im Code übereinstimmt.
  • Fehler: Die Website lädt nicht oder zeigt einen Fehler an.

    • Lösung: Überprüfe die eingegebene URL auf Richtigkeit. Achte darauf, dass die Internetverbindung stabil ist.

Alternative Methoden

Wenn Du das WebBrowser-Steuerelement nicht verwenden möchtest, kannst Du auch die Internet Explorer-Objekte in VBA verwenden. Hier ist ein Beispiel:

Dim appIE As Object
Set appIE = CreateObject("InternetExplorer.Application")
appIE.Visible = True
appIE.Navigate "http://example.com"

While Not appIE.ReadyState = 4
    DoEvents
Wend
MsgBox "Die Seite ist vollständig geladen!"
appIE.Quit
Set appIE = Nothing

Diese Methode ist besonders nützlich, wenn Du die Internet Explorer-Funktionen nutzen möchtest.


Praktische Beispiele

  1. Ein einfaches UserForm: Erstelle ein UserForm mit einer Textbox und einem Button, der eine vordefinierte URL lädt und wartet, bis die Seite vollständig geladen ist, bevor er eine Aktion ausführt.

  2. Ein Web-Scraping-Tool: Du kannst die oben genannten Techniken nutzen, um Daten von einer Webseite zu extrahieren, nachdem die Seite geladen wurde. Verwende die Document-Eigenschaft des WebBrowser-Objekts, um auf die HTML-Inhalte zuzugreifen.


Tipps für Profis

  • Verwende DoEvents: Dies ermöglicht es der Anwendung, während des Wartens auf die Seite weiterhin auf Benutzerinteraktionen zu reagieren.
  • Fehlerbehandlung: Implementiere Fehlerbehandlung, um unerwartete Probleme beim Laden der Seite zu bewältigen. Nutze On Error Resume Next und überprüfe die Fehler nach dem Laden.
  • Optimierung: Experimentiere mit verschiedenen Zeitlimits und Ladebedingungen, um die Leistung zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Seite vollständig geladen ist? Du kannst die ReadyState-Eigenschaft des WebBrowser-Elements verwenden, um zu überprüfen, ob der Wert 4 (geladen) erreicht ist.

2. Funktioniert das auch in Excel 365? Ja, die beschriebenen Methoden sind in Excel 365 und anderen aktuellen Versionen von Excel anwendbar.

3. Kann ich auch andere Browser verwenden? Das WebBrowser-Steuerelement basiert auf den Internet Explorer-Rendering-Engine. Für andere Browser gibt es spezielle Bibliotheken oder Methoden, die Du verwenden kannst, aber sie sind in der Regel komplexer.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige