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

Forumthread: Button-Klick mit JavaScript-Event auslösen (IE)

Button-Klick mit JavaScript-Event auslösen (IE)
06.02.2017 09:58:44
Tim
Hi,
Ich bin neu bei VBA und hoffe, jemand hier kann mir weiterhelfen.
Ich verwende VBA, um mit einer Webseite in Internet Explorer zu agieren.
Als Teil eines Makros möchte ich dabei einen Button auf dieser Webseite klicken aber ein einfaches .Click-Event funktioniert nicht (oder ich mache es falsch), da in meinem Fall das JavaScript-Event hinter dem Button nicht ausgelöst wird (es sollte eine neue Seite mit einer Textarea laden).
Kann mir jemand sagen, wie ich das erreichen kann, entweder durch Simulieren des Klicks und Auslösen des Events oder durch direktes Aufrufen der JavaScript-Funtion ?
Passieren sollte das am Ende des folgenden Codes.
Mein VBA-Code:
Dim IE As Object
Dim MyURL As String
Dim varResults As New DataObject
varResults.SetText TxtSql.Text
varResults.PutInClipboard
Unload FrmResults
Set IE = CreateObject("InternetExplorer.Application")
MyURL = "https://myFirstUrl"
IE.Navigate MyURL
IE.Visible = True
While IE.busy
DoEvents
Wend
Application.Wait (Now + TimeValue("0:00:02")) ' to allow time for loading the page
Das Onclick-JavaScript-Event hinter dem Button:
javascript:document.forms.jobProfileForm.action='https://mySecondUrl';document.forms.jobProfileForm.submit()
Der HTML-Code des Buttons:
class="normalbttn" id="editProfileBttn" value="Edit Profile" onclick="das JavaScript-Event von oben" type="button"
Vielen Dank im Voraus für Eure Hilfe,
Mike
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: gemeint ist einen IE-Button per VBA zu klicken
07.02.2017 10:18:40
Mike
oT
Button-Klick mit JavaScript-Event auslösen (IE)
07.02.2017 18:25:51
Anton
Hallo Mike
ungetestet:
'''
Application.Wait (Now + TimeValue("0:00:02")) ' to allow time for loading the page
IE.Document.getelementbyid("editProfileBttn").onclick
mfg Anton
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Button-Klick mit JavaScript-Event auslösen in Excel VBA


Schritt-für-Schritt-Anleitung

Um einen Button-Klick auf einer Webseite mit einem JavaScript-Event auszulösen, kannst du den folgenden VBA-Code verwenden. Dieser Code navigiert zu einer bestimmten URL und wartet, bis die Seite vollständig geladen ist, bevor er den Button klickt.

Dim IE As Object
Dim MyURL As String

Set IE = CreateObject("InternetExplorer.Application")
MyURL = "https://myFirstUrl"
IE.Navigate MyURL
IE.Visible = True

While IE.Busy
    DoEvents
Wend

Application.Wait (Now + TimeValue("0:00:02")) ' um Zeit für das Laden der Seite zu geben
IE.Document.getElementById("editProfileBttn").onclick

In diesem Beispiel wird das onclick-Event des Buttons mit der ID editProfileBttn direkt angesprochen. Dies sollte das JavaScript-Event auslösen, das mit dem Button verknüpft ist.


Häufige Fehler und Lösungen

  • Problem: Das JavaScript-Event wird nicht ausgelöst.

    • Lösung: Stelle sicher, dass der Button tatsächlich die richtige ID hat und dass die Seite vollständig geladen ist, bevor du versuchst, den Button zu klicken.
  • Problem: Der Button ist nicht sichtbar oder nicht verfügbar.

    • Lösung: Überprüfe, ob die Seite wirklich geladen ist und ob der Button im DOM vorhanden ist. Möglicherweise musst du die Wartezeit erhöhen.

Alternative Methoden

Falls das direkte Auslösen des onclick-Events nicht funktioniert, kannst du das JavaScript-Event auch über die execScript-Methode aufrufen:

IE.Document.parentWindow.execScript "document.forms.jobProfileForm.action='https://mySecondUrl';document.forms.jobProfileForm.submit();"

Diese Methode simuliert das Auslösen des JavaScript-Events direkt.


Praktische Beispiele

  1. Einfaches Button-Klick mit JavaScript:

    • Du hast einen Button auf einer Webseite, der eine Funktion ausführt. Verwende den oben genannten Code, um den Button zu klicken und das JavaScript-Event auszulösen.
  2. Datenübertragung via Button-Klick:

    • Mit VBA kannst du Daten in ein Textfeld auf der Webseite eingeben, bevor du den Button klickst. Zum Beispiel:
    IE.Document.getElementById("textareaId").Value = "Dein Text hier"
    IE.Document.getElementById("editProfileBttn").onclick

Tipps für Profis

  • Verwende DoEvents, um sicherzustellen, dass dein VBA-Skript während der Nutzung von Internet Explorer nicht einfriert.
  • Setze die Sichtbarkeit von Internet Explorer nur auf True, wenn du die Interaktion beobachtet möchtest. Andernfalls kannst du es auf False setzen, um die Ausführung zu beschleunigen.
  • Teste den Code in mehreren Internet Explorer-Versionen, da es Unterschiede in der Unterstützung von JavaScript und DOM-Elementen geben kann.

FAQ: Häufige Fragen

1. Wie kann ich ein JavaScript-Event manuell auslösen? Du kannst das Event manuell auslösen, indem du die execScript-Methode oder das onclick-Attribut des Buttons in deinem VBA-Code verwendest.

2. Funktioniert dies in anderen Browsern als Internet Explorer? Der bereitgestellte Code ist speziell für Internet Explorer ausgelegt. Für andere Browser wie Chrome oder Firefox benötigst du unterschiedliche Ansätze, z.B. Selenium für die Automatisierung.

3. Was tun, wenn ich eine Fehlermeldung erhalte? Überprüfe die ID des Buttons sowie sicherzustellen, dass die Webseite vollständig geladen ist, bevor du versuchst, den Button zu klicken.

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