Felder in Internet Explorer Seite ausfüllen 2

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Felder in Internet Explorer Seite ausfüllen 2
von: Stefan
Geschrieben am: 06.11.2015 10:19:48

Hallo Zusammen,
hatte zwar schon mal ein Problem eingestellt, dass ich mit Martins Hilfe (Nochmal Danke, Martin) lösen konnte, jedoch jetzt komme ich nicht weiter, da sich die Seite, die ich steuern will, verändert hat.
Konkret geht es darum, dass ich Daten in einen Strom- oder Gasvergleichsrechner automatisch eintragen möchte, dass bei der 1. Seite auch geht, jedoch ich auf die Felder der darauffolgenden Seite nicht zugreifen kann.
Mein Excel ruft zuerst die Seite "https://a.check24.net/misc/click.php?pid=86341&aid=18&deep=stromanbieter-wechseln" auf, trägt dort in die Felder Postleitzahl und Verbrauch in die Felder ein [über IEDoc.all("c24api_zipcode").Value = UserForm10.TextBox5 usw.] und aktiviert die Berechnung. Danach erscheint eine zweite Seite, die mehr Möglichkeiten zur Veränderung der Eingabe bietet.
Hier soll nun das Programm die Daten nach meinen Programm-Vorgaben verändern.
Die Auswahl und Aktivierung der (offenen) Seite über den Befehl "AppActivate objShell_IE.Document.Title" funktioniert auch, aber ich kann die Felder nicht durch Excel verändern, obwohl ich deren Namen genau weiß.
Ich habe es versucht mit:
IEDoc.all("c24api_totalconsumption").Value = "999"
objShell_IE.Document.getelementbyid("c24api_totalconsumption").Value = "998"
aber leider reagiert die Seite darauf nicht!
Hat jemand eine Idee für die Lösung dafür?
Sitze schon seit Tagen an dem Problem und komme nicht weiter.
Danke für Eure Hilfe.
Stefan

Bild

Betrifft: AW: Felder in Internet Explorer Seite ausfüllen 2
von: Martin
Geschrieben am: 06.11.2015 10:56:17
Hallo Stefan,
du machst den selben Fehler wie beim letzten Mal (siehe https://www.herber.de/forum/archiv/1404to1408/t1407745.htm )
Mit AppActivate fokusierst du zwar das richte Browser-Fenster, aber Excel hat dadurch keine Verbindung zum Prozess.
Da du den Prozess aber eigentlich bereits durch die erste Seite hast, solltest du nach Absenden des Formulars der ersten Seite folgenden Code einsetzen:

Do While objShell_IE.ReadyState <> 4: DoEvents: Loop
Do While objShell_IE.Busy = True: DoEvents: Loop
...damit wird abgewartet bis die neue Seite geladen ist und du kannst die nächsten Felder ausfüllen.
Alternativ kannst du natürlich auch wieder mit einer Schleife alle Prozesse durchgehen (wie in meinem letzten Beitrag im Februar gezeigt), das ist diesmal aber unnötig.
Viele Grüße
Martin

Bild

Betrifft: AW: Felder in Internet Explorer Seite ausfüllen 2
von: Stefan
Geschrieben am: 06.11.2015 11:09:01
Hi Martin,
danke für die superschnelle Antwort, aber ....
die Seite ist ja bereits aufgerufen und vollständig geladen und wartet auf die Veränderung der Formularfelder oder einer Eingabe.
Die 1. Seite wird mit einem CommandButton gestartet, vollständig geladen und dann erst betätige ich einen weiteren Commandbutton, der die weiteren Felder ausfüllen soll. Das tut er aber nicht, da er die Felder nicht verändert/anspricht, obwohl die IE-Seite aktiviert wurde.
Hast Du noch ne andere Lösung für mich?
Danke

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Felder in Internet Explorer Seite ausfüllen 2"