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

Forumthread: Internet zugriff auf Webseite per VBA

Internet zugriff auf Webseite per VBA
18.10.2016 22:03:26
lu
Hallo,
Ich habe lange nach einer Lösung gesucht habe aber leider keine gefunden.
Mein Problem ist das ich mittels Vba auf eine interner Seite zugreife und dort ein element aktivieren muss. Alles theoretisch und auch Praktisch bei anderen Webseiten kein Problem. Normaler weise einfach über getelementbyid/name.click und auch versucht per innererText auf den quellcode der seite zuzugreifen funktioniert alles nicht. Ich habe mich schon mit einigen html leuten auseinander gesetzt die haben darauf hingewiesen das es sich um eine dynamische webseite handelt(habe ich leider keine Erfahrung mit). Wenn mir jemand helfen könnte und mir verrät wie ich die folgenden Elemente per click betätigen kann wäre ich sehr dankbar.
(Die Klammern um a und input hab ich hinzu gefügt weil ich Probleme mit der darstellung im Forum hatte)
1: (Add to results folder
2:(
vielen dank schon mal im voraus
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Internet zugriff auf Webseite per VBA
18.10.2016 22:36:52
Martin
Hallo Lu,
dem geposteten Quellcode nach handelt es sich um eine ASP-Classic-Website (Active Server Pages), die nur auf einem Windows Server läuft. Es wäre jetzt natürlich wesentlich einfacher, wenn ich direkt auf die betreffende Seite zugreifen und eine entsprechende Lösung anbieten könnte.
So solltest du den Link anklicken können:
Sub ClickLink()
Dim link As Object
With CreateObject("InternetExplorer.Application")
Do While .Busy
Loop
.Visible = True
.navigate "http://www.website.de" 'Hier die Website eintragen!
Do: Loop Until .readyState = 4
For Each link In .document.Links
If InStr(link.innerText, "Add to results folder") > 0 Then
link.Click
Exit For
End If
Next
End With
End Sub
Auf die gleiche Art und Weise gehst du alle input-Steuerelemente durch und suchst nach dem Value="Save". Das Klick-Ereignis kannst du ebenfalls mit "[Input].Click" auslösen.
Viele Grüße
Martin
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Internet Zugriff auf Webseiten per VBA


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Modul einfügen: Klicke mit der rechten Maustaste auf "VBAProject (dein Arbeitsblattname)" und wähle Einfügen > Modul.

  3. Code einfügen: Kopiere den folgenden Code in das Modul:

    Sub ClickLink()
        Dim link As Object
        With CreateObject("InternetExplorer.Application")
            .Visible = True
            .navigate "http://www.website.de" 'Hier die Website eintragen!
            Do While .Busy Or .readyState <> 4: DoEvents: Loop
    
            For Each link In .document.Links
                If InStr(link.innerText, "Add to results folder") > 0 Then
                    link.Click
                    Exit For
                End If
            Next link
        End With
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle ClickLink und klicke auf Ausführen.

Dieser Code nutzt VBA, um auf eine Webseite zuzugreifen und den Link mit dem Text "Add to results folder" zu klicken.


Häufige Fehler und Lösungen

  • Fehler: Internet Explorer öffnet sich nicht

    • Stelle sicher, dass Internet Explorer installiert und als Standardbrowser eingestellt ist. VBA funktioniert am besten mit Internet Explorer.
  • Fehler: Link wird nicht gefunden

    • Überprüfe den genauen Text des Links. Achte auf Leerzeichen oder Sonderzeichen. Eventuell musst du den Text in InStr anpassen.
  • Fehler: Webseite lädt nicht vollständig

    • Füge einen Do While .Busy Or .readyState <> 4: DoEvents: Loop Befehl hinzu, um sicherzustellen, dass die Seite vollständig geladen ist, bevor du mit dem Code fortfährst.

Alternative Methoden

Neben VBA kannst du auch die Power Query-Funktion in Excel nutzen, um Daten von Webseiten zu importieren. Gehe zu Daten > Daten abrufen > Aus dem Web und folge den Anweisungen, um Daten direkt in Excel zu importieren.

Für dynamische Webseiten, die JavaScript verwenden, könnte die Verwendung einer API eine bessere Lösung sein, falls verfügbar.


Praktische Beispiele

  1. Daten von einer öffentlichen Webseite importieren:

    • Verwende die ImportHTML-Funktion in Google Sheets, um Tabellen von einer Webseite zu importieren.
  2. Formulare automatisch ausfüllen:

    • Mit dem oben genannten VBA-Code kannst du Formulare auf Webseiten automatisch ausfüllen und absenden.

Tipps für Profis

  • Debugging: Nutze die Debug.Print-Funktion, um den Status von Variablen während der Ausführung zu überprüfen.

  • Browser-Synchronisation: Wenn du mit mehreren Fenstern arbeitest, stelle sicher, dass du die richtige Instanz von Internet Explorer im Code ansprichst.

  • Sicherheitseinstellungen: Achte darauf, dass die Sicherheitsstufen in Internet Explorer das Ausführen von Skripten nicht blockieren.


FAQ: Häufige Fragen

1. Kann ich mit VBA auf eine HTTPS-Webseite zugreifen?
Ja, du kannst auch auf HTTPS-Webseiten zugreifen, solange die Sicherheitszertifikate gültig sind.

2. Was mache ich, wenn ich keine Daten von der Webseite abrufen kann?
Überprüfe, ob die Webseite eine API anbietet, die du verwenden kannst, oder ob es öffentliche Endpunkte gibt, die die benötigten Daten bereitstellen.

3. Ist es möglich, mit VBA Daten von Webseiten zu importieren?
Ja, du kannst mit VBA Daten von Webseiten importieren, indem du den Code anpasst, um die relevanten Daten aus dem DOM zu extrahieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige