Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1488to1492
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

IE mit VBA steuern

IE mit VBA steuern
26.04.2016 19:30:55
Christoph
Hall,
ich bin es mal wieder.
Ich habe ein sehr komplexes Problem und hoffe das mir geholfen werden kann.
Eventuell auch nur mit Denkanstößen oder Ähnliches.
Ich möchte über Excel einen Link öffnen, dann soll im Browser ein Button bestätigt werden. Auf der nächsten Seite stehen dann Checkboxen zur Auswahl, die dann danach wieder mit einem Button bestätigt werden.
Auf der nächsten Seite müssen dann Informationen aus der Seite ausgelesen werden.
Meine Frage erstmal, ob sowas überhaupt machbar wäre über VBA oder ob dies doch die Möglichkeiten übersteigt.
Würde dann, falls es möglich wäre noch nähere Informationen geben.
Gruß Christoph

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: IE mit VBA steuern
26.04.2016 19:34:38
Martin
Hallo Christoph,
zu deiner einzigen Frage: Ja, mit dem Internet Explorer ist das alles möglich. Jedoch im Nachfolge-Browser "Edge" geht das nicht mehr.
Viele Grüße
Martin

AW: IE mit VBA steuern
26.04.2016 19:50:11
Christoph
Hallo,
gibt es denn die Möglichkeit, mit einem Standard-Code nach einem Text, den der Button enthält, zu Suchen und diesen dann anzuklicken/bestätigen?
Christoph

Frage nur auf offen gestellt - owT
26.04.2016 20:34:17
Erwin

AW: IE mit VBA steuern
26.04.2016 20:40:55
mumpel
Hallo!
Standardcode in diesem Sinne gibt es nicht. Die Elementnamen musst Du natürlich kennen.
Gruß, René

AW: IE mit VBA steuern
27.04.2016 07:38:59
Christoph
Hallo Rene,
das hört sich ja erstmal ganz gut an.
Habe mir ja schon viel dank eurer Hilfe mit VBA helfen können. Da habe ich aber im Moment keine Ahnung wo ich ansetzen soll.
Das ist der Quellcode von den ersten Button.
-a class="btn btn-prim btn-s vi-VR-padRT20" id="msgPanel_pr" role="button" href="link" rel="nofollow"-
Akzeptieren-/a-
Hilft das um den Button anzusteuern?
Ideal wäre eine Abfrage vorweg die überprüft ob der Button vorhanden ist.
Gruß Christoph

Anzeige
AW: IE mit VBA steuern
27.04.2016 08:15:55
Martin
Hallo Christoph,
es wäre besser, wenn du den Link zur Website hier posten würdest. Du kannst den Button wahrscheinlich so ansprechen:
IEApp.document.getElementById("msgPanel_pr").Click
Aber der ganze "Vorlauf" fehlt noch, damit meine ich die Zuweisung des Internet Explorers als Objekt, das Öffnen der URL usw.
Viel mehr kann ich leider nicht schreiben, wenn du nur "Krümel" an Informationen gibst.
Viele Grüße
Martin

AW: IE mit VBA steuern
27.04.2016 17:08:49
Christoph
Hallo Martin,
das hat mir schon sehr weitergeholfen.
habe jetzt noch folgendes Problem. Wenn ich den ersten Button klicke komme ich ja zu der Checkboxauswahl. Diese bekomme ich noch ausgewählt. Danach entsteht aber ein neuer Button weiter mit folgenden Quellcode:
-input title="" class="btn btn-prim mb5 rypsubmit" type="button" value="Weiter" actiontype="SetPaymentInstrument"-
Dieser enthält keine ID. Gibt es eine Möglichkeit diesen Button trotzdem anzusteuern?
Im Moment löse ich dies über Sendkeys, da der Button meistens an der selber Stelle ist, aber leider nicht immer.
Weitere Frage wäre, wie es möglich ist vorher eine Abfrage durchlaufen zu lassen ob der Button existiert.
Zu not würde doch auch ein Befehl mit OnError gehen, da er das Objekt nicht findet oder?
Zum Schluss wäre dann noch das Auslesen von den Daten der Website.
Folgenden Quellcode habe ich dazu.
 -span class="fl name"-Name:-/span-
-span class="fl value font4"-Max Mustermann-/span-
-/div-
-div class="pt5 pb5 cf"--div style="border-bottom:#EEEEEE 1px solid;"-/div-- _
/div-
-div class="b-row"-
-span class="fl name"-Nummer:-/span-
-span class="fl value font4"-123456-/span-
-/div-
-div class="pt5 pb5 cf"--div style="border-bottom:#EEEEEE 1px solid;"--/div- _
-/div-
-div class="b-row"-
-span class="fl name"-Zuordnung:-/span-
-span class="fl value font4"-123456789-/span-

Jetzt sollen die Daten Name: Max Mustermann
Nummer:123456
Zuordnung:123456789
ausgelesen werden und einem string zugeordnet werden.
Das einfügen in Excel sollte ich dann selbst hinbekommen.
Nummer und Zuordnung können auch eine andere Länge haben wie die jetzigen. Außerdem können sie aus Zahlen und Buchstaben bestehen.
Hoffe ihr könnt mir weiter helfen.
Gruß
Christoph

Anzeige
AW: IE mit VBA steuern
27.04.2016 18:11:38
Martin
Hallo Christoph,
ja, du kannst den Button ermitteln, indem du alle Buttons durchläufst und nach ihrem Value abfragst. Ich habe es jetzt nicht gestestet, aber der Code müsste ungefähr so aussehen:
    Dim objCtrl As Object
For Each objCtrl In IEApp.document.forms(0).elements
If objCtrl.Type = "button" Then
If objCtrl.Value = "Weiter" Then
objCtrl.Click
Exit For
End If
End If
Next
Zu der anderen Frage: Ich müsste jetzt auch recherchieren wie man span-Objekte bzw. div-Container ausliest. Leider kann ich dir die Frage deshalb nicht genau beantworten. Im Notfall solltest du einfach den Quellcode der Seite auslesen (Stichwort "outerHTML").
Viele Grüße
Martin

Anzeige
AW: IE mit VBA steuern
27.04.2016 18:46:24
Christoph
Hallo Martin,
danke nochmals.
Klappt wieder super mit dem Code.
Jetzt zum auslesen des Quellcodes. Habe mir bisschen was aus den Internet zusammen gesucht und bin gerade beim einlesen des Quellcodes.
Jetzt muss ich nur noch den richtigen Textinhalt finden lassen.
Kannst du mir da auch nochmal weiter helfen? Habe diese Codeschnippsel im Internet gefunden und habe sie versucht nach und nach anzupassen.
    lPosBeg = InStr(1, strInhalt, ""Nummer:""")
lPosEnd = InStr(1, strInhalt, "")
Nummer= Mid(sSource, lPosBeg, (lPosEnd - lPosBeg))

Kann ich eigentlich irgendwie in diesen Forum vernünftig Texte mit schreiben?
im Moment ändere ich die Quellcode immer ab weil sonst der Textinhalt zwischen den Zeichen fehlt.
Gruß
Christoph

Anzeige
AW: IE mit VBA steuern
27.04.2016 19:47:19
Christoph
Hallo,
habe es erstmal selber hinbekommen mit dem Auslesen und einfügen.
Melde mich dann nochmal falls ich nicht weiter komme.
Danke nochmal für deine Hilfe.
Gruß Christoph

AW: IE mit VBA steuern
27.04.2016 20:02:28
Martin
Hallo Christoph,
schau mal im Debugging-Modus, ob so alle Daten ausgelesen werden:
    Dim arrFields As Variant, i As Integer
arrFields = Split(strInhalt, "fl value font4"">")
For i = 1 To UBound(arrFields)
Debug.Print Split(arrFields(i), "")(0)
Next i
Viele Grüße
Martin

AW: IE mit VBA steuern
27.04.2016 20:11:07
Martin
Hallo Christoph,
leider ist mir jetzt das selbe passiert wie dir. Zwischen den beiden Anführungsstrichen muss stehen, natürlich ohne die Leerzeichen.
Hier mal als Grafik:
Userbild
Viele Grüße
Martin

Anzeige
AW: IE mit VBA steuern
02.05.2016 10:55:46
Christoph
Hallo,
wollte mich hier nochmal für deine Hilfe bedanken. Dadurch kann ich jetzt sehr viel Zeit sparen.
Habe fast alles wie gewünscht hinbekommen.
es gibt noch ein Problem mit dem Befehl
'Do While appIE.ReadyState  4 'funktioniert eventuell nicht
'Loop

Wenn ich die Seite über Excel öffnen lasse funktioniert alles.
Lasse ich dann aber über Excel einen Button klicken zur nächsten Seite funktioniert dieser Befehl nicht mehr.
Der Code wird sofort weiter ausgeführt ohne das Laden der Seite abzuwarten.
Im Moment helfe ich mir mit Application.Wait.
Dies ist aber eher eine Notlösung, da das Makro so unnötig länger braucht, da ich 4 Sekunden als Sicherheit mehr eingegeben habe. Vielleicht kann mir da ja noch jemand helfen.
Gruß
Christoph

Anzeige
AW: IE mit VBA steuern
27.04.2016 14:02:19
Martin
Hallo René,
das sehe ich etwas anders. Man kann mit einer "For Each"-Anweisung alle in einer Website enthaltenen Button durchgehen und ihren enthaltenen Text abfragen, um den gesuchten Button ausfindig zu machen. Der Name des Elements muss also nicht zwangsläufig bekannt sein, wenn eine spezifische Eigenschaft des betreffenden Elements bekannt ist.
Viele Grüße
Martin

AW: IE mit VBA steuern
26.04.2016 20:42:57
mumpel
Das ist nicht das Problem. Der IE wird uns noch ein paar Jahre begleiden. Schon deshalb weil viele Firmen auf den IE aufbauen, und auch VBA noch davon abhängig ist. Ob es dann noch Sicherheitsupdates geben wird bleibt abzuwarten, ausschließen muss man das aber nicht. Verbesserungen wird er aber keine erfahren.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige