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

Forumthread: VBA Website - Button click

VBA Website - Button click
24.02.2021 15:19:22
Erik
Hallo liebe Profis,
würde gerne mittels VBA zwei Felder auf einer Homepage befüllen und den Button "Anmelden" auslösen.
Da ich leider wenig bis keine VBA Kenntnisse habe würde ich mich sehr über eine Lösung freuen.
Der Link der Seite ist:
https://dealerbridge-2.cdkglobalonline.com/aeweb/Index.aspx?usedc2000web=false
Vielen Dank
und Gruß
Erik
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Website - Button click
24.02.2021 17:14:50
volti
Hallo Erik,
versuche es mal mit folgendem Makro....
Code:

Option Explicit
Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Function Anmeldung_Web()
  Dim sUrl As String, oNode As Object
  Dim sBenutzername As String, sPasswort As String
  sBenutzername = "volti"
  sPasswort = "123456"
  sUrl = "https://dealerbridge-2.cdkglobalonline.com/aeweb/Index.aspx?usedc2000web=false"
  With CreateObject("InternetExplorer.application")
      .Navigate sUrl                                       ' Zur Url surfen
      .Visible = True
      While Not .readyState = 4: DoEvents: Wend            ' Warten bis Seite geladen ist
      Sleep 100                                            ' Sicherheitszeit
      With .Document
          Set oNode = .getElementById("ctl00_cph_Login_LoginControl1_UserGroupIdTB")
          If Not oNode Is Nothing Then oNode.Value = sBenutzername
          Set oNode = .getElementById("ctl00_cph_Login_LoginControl1_PasswordTB")
          If Not oNode Is Nothing Then oNode.Value = sPasswort
          Set oNode = .getElementById("ctl00_cph_Login_LoginControl1_btnLoginButton")
          If Not oNode Is Nothing Then oNode.Click
      End With
'      .Quit                                              ' IE schließen
  End With
End Function

_________
viele Grüße
Karl-Heinz

Anzeige
AW: VBA Website - Button click
25.02.2021 08:42:28
Erik
Hallo Karl Heinz,
Wir haben ein neues Programm bekommen und können uns jetzt Dank Deiner Hilfe wieder einloggen.
Vielen herzlichen Dank dafür!!!
Gruß
Erik
AW: VBA Website - Button click
25.02.2021 09:50:11
Erik
Hallo nochmal,
nachdem erfolgreichen Login komme ich auf die nächste Seite in der sich eine Navigationsleiste befindet.
Wenn ich mit dem Mousezeiger über den Punkt Teile fahre gehen mehrere Unterpunkte auf.
Aus diesen müsste ein klick auf Teileanfrage mit Bestellung erfolgen.
hier der Quelltext:

wie kann ich diesen Punkt mit VBA "anklicken".
Gruß
Erik
AW: VBA Website - Button click
volti

Hallo Erik,
vielen Dank für Deine positive Rückmeldung. Freut mich, wenn es klappt.
Das weiterführende Klicken geht im Prinzip genauso oder ähnlich.
a) Habe ich leider keinen Benutzernamen und kein Passwort, um diese Folgeseite aufzurufen
b) Bin ich bald für längere Zeit offline.
Vielleicht hat ja zwischenzeitlich jemand eine Idee dazu....
viele Grüße
Karl-Heinz
AW: VBA Website - Button click
Erik

Hallo Volti,
ich könnte Dir den BN und PW als Privat zukommen lassen.
Vielleicht über eMail?
zu b) hätte auch etwas Zeit
:-)
Vielen Dank und Gruß
Erik
Anzeige
AW: VBA Website - Button click
25.02.2021 10:10:07
volti
Hallo Erik,
vielen Dank für Deine positive Rückmeldung. Freut mich, wenn es klappt.
Das weiterführende Klicken geht im Prinzip genauso oder ähnlich.
a) Habe ich leider keinen Benutzernamen und kein Passwort, um diese Folgeseite aufzurufen
b) Bin ich bald für längere Zeit offline.
Vielleicht hat ja zwischenzeitlich jemand eine Idee dazu....
viele Grüße
Karl-Heinz
Anzeige
AW: VBA Website - Button click
25.02.2021 10:18:06
Erik
Hallo Volti,
ich könnte Dir den BN und PW als Privat zukommen lassen.
Vielleicht über eMail?
zu b) hätte auch etwas Zeit
:-)
Vielen Dank und Gruß
Erik
AW: VBA Website - Button click
25.02.2021 10:48:56
volti
Hallo Erik,
kannst Du gerne machen.
Dauert dann aber etwas....
AnMich
VG KH
Anzeige
AW: VBA Website - Button click
25.02.2021 10:33:23
Erik
Hallo Volti,
hier der vermutlich richtige Quelltext
Gruß
Erik
</tr><tr onmouseover="Menu_HoverDynamic(this)" onmouseout="Menu_Unhover(this)" onkeyup="Menu_Key(event)" title="Teileanfrage mit Bestellung" id="ctl00_ServiceMenun10">
<td><table class="submenuItem ctl00_ServiceMenu_8" cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td style="white-space:nowrap;width:100%;"><a class="ctl00_ServiceMenu_1 submenuItem ctl00_ServiceMenu_7" href="javascript:__doPostBack('ctl00$ServiceMenu','Part?Toplevel\\PartQueryOrder?P_Q_R_Entry?Part')" style="border-style:none;font-size:1em;">Anfr. m. Best.</a></td>
Anzeige
AW: VBA Website - Button click
25.02.2021 10:11:53
Yal
Hallo Erik,
wirf ein Auge auf "UI.Vision RPA". U.a. als interiertes Addin in Firefox.
Zur Steuerung von Webseite vielleicht besser geeignet als VBA.
(Off topic "Excel", daher noch offen)
@Volti: cooler Code! Muss ich mal bei Gelegenheit ausprobieren.
VG
Yal
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Automatisierung von Button-Klicks auf Webseiten mit VBA


Schritt-für-Schritt-Anleitung

Um mit VBA ein Button-Klick-Event auf einer Webseite auszulösen, kannst du das folgende Makro verwenden. Dieses Beispiel zeigt, wie du Felder auf einer Webseite ausfüllen und den "Anmelden"-Button klicken kannst.

  1. Öffne Excel und gehe zu den Entwicklertools.
  2. Klicke auf "Visual Basic", um den VBA-Editor zu öffnen.
  3. Füge ein neues Modul hinzu und kopiere den folgenden Code:
Option Explicit
Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Function Anmeldung_Web()
    Dim sUrl As String, oNode As Object
    Dim sBenutzername As String, sPasswort As String
    sBenutzername = "deinBenutzername"
    sPasswort = "deinPasswort"
    sUrl = "https://dealerbridge-2.cdkglobalonline.com/aeweb/Index.aspx?usedc2000web=false"

    With CreateObject("InternetExplorer.application")
        .Navigate sUrl
        .Visible = True
        While Not .readyState = 4: DoEvents: Wend
        Sleep 100

        With .Document
            Set oNode = .getElementById("ctl00_cph_Login_LoginControl1_UserGroupIdTB")
            If Not oNode Is Nothing Then oNode.Value = sBenutzername

            Set oNode = .getElementById("ctl00_cph_Login_LoginControl1_PasswordTB")
            If Not oNode Is Nothing Then oNode.Value = sPasswort

            Set oNode = .getElementById("ctl00_cph_Login_LoginControl1_btnLoginButton")
            If Not oNode Is Nothing Then oNode.Click
        End With
    End With
End Function
  1. Ersetze deinBenutzername und deinPasswort mit deinen tatsächlichen Anmeldedaten.
  2. Führe das Makro aus, um den Button-Klick auf der Webseite auszulösen.

Häufige Fehler und Lösungen

  • Fehler: "Element nicht gefunden"

    • Stelle sicher, dass die IDs der Elemente korrekt sind. Du kannst die ID im Quelltext der Webseite überprüfen.
  • Problem mit der Sichtbarkeit des Internet Explorers

    • Vergewissere dich, dass dein Internet Explorer nicht im Hintergrund läuft und sichtbar ist. Setze .Visible = True.
  • Seite lädt nicht vollständig

    • Erhöhe die Wartezeit in der Sleep-Funktion, um sicherzustellen, dass die Seite vollständig geladen ist, bevor du versuchst, die Felder zu befüllen.

Alternative Methoden

Wenn du keine VBA-Programmierung verwenden möchtest, gibt es auch kostenlose Tools wie "UI.Vision RPA", die als Browser-Add-in arbeiten und das Klicken auf Buttons und das Ausfüllen von Formularen automatisieren können. Diese Tools bieten eine einfachere Benutzeroberfläche für das Automatisieren von Webseiten.


Praktische Beispiele

Ein weiteres Beispiel wäre, nach dem Login auf der Webseite einen Menüpunkt zu klicken. Hier ist ein Beispiel, wie du das umsetzen kannst:

Set oNode = .getElementById("ctl00_ServiceMenun10")
If Not oNode Is Nothing Then oNode.Click

Vergewissere dich, dass die ID des Menüpunktes korrekt ist. Dies funktioniert ähnlich wie der vorherige Button-Klick.


Tipps für Profis

  • Verwende Debug.Print innerhalb deines Codes, um den Status und Fehler beim Ausführen zu verfolgen.
  • Experimentiere mit der Sleep-Zeit, um die Stabilität des Klickvorgangs zu verbessern.
  • Achte darauf, dass dein VBA-Projekt die richtigen Verweise auf die Microsoft Internet Controls hat, um die Internet Explorer-Funktionen zu nutzen.

FAQ: Häufige Fragen

1. Kann ich auch andere Browser als Internet Explorer verwenden? Ja, jedoch ist VBA am besten für Internet Explorer geeignet. Für andere Browser benötigst du möglicherweise andere Ansätze oder Tools.

2. Wie kann ich den Button-Klick auf einer externen Webseite automatisieren? Du kannst das gleiche Prinzip wie oben beschrieben verwenden, indem du die richtigen IDs der Elemente auf der externen Webseite verwendest.

3. Gibt es eine Möglichkeit, die Automatisierung zu beschleunigen? Ja, indem du die Wartezeiten in deinem Makro anpasst und sicherstellst, dass du nur auf die benötigten Elemente wartest.

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