Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Shellexecute - Warten bis fertig geladen

Forumthread: Shellexecute - Warten bis fertig geladen

Shellexecute - Warten bis fertig geladen
07.10.2005 15:31:00
Stefan
Ich öffne eine Web-URL im aktuell offenen Browser-Fenster mit Shellexecute und möchte, wenn die Seite fertig geladen ist, diese mit Sendkeys befüllen.
1) Kann man irgendwie abfragen, ob die Seite fertig geladen ist?
2) Gibt es mit VBA Möglichkeiten auf einer Internetseite direkt in ganz normale Textboxen reinzuschreiben (sofern diese irgendwie einen Namen haben) oder bleibt da nur Durchhangeln mit Sendkeys?
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Shellexecute - Warten bis fertig geladen
07.10.2005 15:39:08
Hubert
Anrede
Frage
Gruß
AW: Shellexecute - Warten bis fertig geladen
07.10.2005 16:04:12
Stefan
Sorry, war in Eile.
Also, nochmal.
Hi Leute,
ich habe ein Problem mit ShellExecute.
Ich öffne eine Web-URL im aktuell offenen Browser-Fenster mit Shellexecute und möchte, wenn die Seite fertig geladen ist, diese mit Sendkeys befüllen.
1) Kann man irgendwie abfragen, ob die Seite fertig geladen ist?
2) Gibt es mit VBA Möglichkeiten auf einer Internetseite direkt in ganz normale Textboxen reinzuschreiben (sofern diese irgendwie einen Namen haben) oder bleibt da nur Durchhangeln mit Sendkeys?
Schonmal Danke.
Gruss
Stefan
Anzeige
AW: Shellexecute - Warten bis fertig geladen
07.10.2005 16:15:33
Andreas
Hi Stefan,
folgendes Beispiel öffnet den Internet Explorer, ruft die Forumsseite auf und wartet bis die Seite geladen ist. Danach wird oben ein Suchbegriff eingegeben und die Suche gestartet.
Gruß
Andreas

Sub Browser_Steuerung()
Dim ie As Object
Dim doc As Object
Dim suche As Object
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.navigate "www.herber.de/forum"
'Warteschleife bis Seite Geladen
Do While Not ie.readyState = 4 Or ie.Busy = True
DoEvents
Loop
Set doc = ie.document
Set suche = doc.getElementsByName("suchbegriff")
suche(0).Value = "Shellexecute"
suche(0).form.submit
End Sub

Anzeige
AW: Shellexecute - Warten bis fertig geladen
07.10.2005 19:13:12
Stefan
Cool, danke.
Besteht die Chance das Ganze browserunabhängig zu machen?
Gruss
Stefan
AW: Shellexecute - Warten bis fertig geladen
08.10.2005 01:10:03
MichaV
Hallo,
keine Chance.
Gruß- Micha
;
Anzeige
Anzeige

Infobox / Tutorial

Shellexecute in Excel VBA: Seiten laden und Text einfügen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und gehe zu den Entwicklertools:

    • Aktiviere die Entwicklertools, falls sie noch nicht sichtbar sind. Du kannst dies unter "Datei" > "Optionen" > "Menüband anpassen" tun.
  2. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle "Einfügen" > "Modul".
  4. Kopiere den folgenden Code in das Modul:

    Sub Browser_Steuerung()
       Dim ie As Object
       Dim doc As Object
       Dim suche As Object
       Set ie = CreateObject("InternetExplorer.Application")
       ie.Visible = True
       ie.navigate "www.herber.de/forum"
    
       'Warteschleife bis Seite geladen
       Do While Not ie.readyState = 4 Or ie.Busy = True
           DoEvents
       Loop
    
       Set doc = ie.document
       Set suche = doc.getElementsByName("suchbegriff")
       suche(0).Value = "Shellexecute"
       suche(0).form.submit
    End Sub
  5. Führe das Makro aus:

    • Schließe den VBA-Editor und drücke ALT + F8, wähle Browser_Steuerung und klicke auf "Ausführen".

Häufige Fehler und Lösungen

  • Fehler: Object variable or With block variable not set

    • Lösung: Stelle sicher, dass du den Internet Explorer installiert hast und die Internet Explorer-Bibliothek im VBA-Editor referenzierst.
  • Fehler: Seite lädt nicht

    • Lösung: Überprüfe, ob die URL korrekt eingegeben wurde. Verwende vollständige URLs, einschließlich "http://" oder "https://".

Alternative Methoden

Falls du eine browserunabhängige Lösung suchst, kannst du auch eine API verwenden, um auf Webseiten zuzugreifen. Hierfür wäre VBA jedoch nicht die beste Wahl. Alternativ kannst du Tools wie Selenium für VBA nutzen, um eine flexiblere Automatisierung zu ermöglichen.


Praktische Beispiele

  1. Suche auf einer anderen Webseite: Ändere die URL im obigen Code zu einer anderen Seite, z.B. "www.google.com", und passe den Suchbegriff an.

  2. Automatisiertes Ausfüllen von Formularen: Du kannst den Code erweitern, um nicht nur Textboxen, sondern auch Dropdowns und andere Elemente auszufüllen.


Tipps für Profis

  • Nutze die SendKeys-Methode nur als letzten Ausweg, da sie unzuverlässig sein kann. Es ist besser, direkt mit DOM-Elementen zu arbeiten.
  • Experimentiere mit dem Wait-Befehl, um sicherzustellen, dass deine Automatisierungen nicht zu schnell ablaufen.

FAQ: Häufige Fragen

1. Kann ich Shellexecute auch für andere Browser verwenden?
Nein, der oben gezeigte Code funktioniert nur mit dem Internet Explorer, da er die spezifische API verwendet.

2. Wie kann ich auf andere Elemente auf der Webseite zugreifen?
Du kannst die Methode getElementsByName, getElementById oder getElementsByClassName verwenden, um verschiedene DOM-Elemente zu finden und zu manipulieren.

3. Gibt es eine Möglichkeit, ohne das Warten auf die Seite fortzufahren?
Ja, du kannst die Ereignisprozeduren von Internet Explorer verwenden, um auf das Laden der Seite zu warten. Das erfordert jedoch fortgeschrittene Kenntnisse in VBA.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige