Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1836to1840
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

WebBrowser-SE Felder ermitteln

WebBrowser-SE Felder ermitteln
11.07.2021 18:49:26
Daniel
Hallo zusammen,
mein Name ist Daniel und ich habe schon das ein oder andere VBA Problem mit Hilfe dieses Forum lösen können.
Deshalb vorab mal ein großes Lob an die Forenmitglieder...!
Zur Zeit versuche ich per Excel Makro (Tabelle mit Arbeitszeiten, Reisekilometern, Überstunden, ...) die Zeiterfassung
bzw. Reisekostenerfassung im Intranet meiner Firma zu füllen (über ein Webbrowserportal mittels Internet Explorer).
Prinzipell hatte ich folgenden VBA Ansatz verfolgt:
- Internet Explorer mittels VBA öffnen und zum "Mitarbeiterportal" navigieren.
- Per "getElementsByName" die zu füllenden Felder auf der Intranetseite ermitteln um dann die Inhalte aus meiner Tabelle zu übergeben.
Als Grundlage habe ich dies erstmal mit http://www.google.de ausprobiert, einen String ins Suchfeld zu übergeben und den "Such-Button" zu klicken.
Das klappt ohne Probleme.
Leider sieht das bei der Firmen Intranet-Seite ander aus. Ich vermute das in den Internetoptionen des Internet Explorer für das Intranet andere Sicherheits-
einstellungen von unserer IT festgelegt wurden.
Daher war mein nächster Ansatz nicht den Internet Explorer zu nutzen, sondern auf das Excel WebBrowser-Steuerelement auszuweichen,
in der Hoffnung so die "Einstellungen innerhalb des IE zu umgehen".
Also Userform erstellt, WebBrowser Element eingefügt und den Code angepasst.
Hier versuche ich also auch erstmal wieder bei Google eine Suche anzustoßen, leider ohne Erfolg.
Die Navigation zu Google funktioniert, allerdings hänge ich bei der Ermittlung des Suchfelds bzw. des Buttons fest.
Mein Code liefert in der Zeile mit:
"Set Eingabefeld = ....." den Laufzeitfehler 91: Objektvariable oder With-Blockvariable nicht festgelegt

Sub UserFormShow()
Dim Eingabefeld As Object
With Userform1
.Width = ActiveWindow.Width
.Height = ActiveWindow.Height
.Frame1.Width = ActiveWindow.Width - 30
.Frame1.Height = ActiveWindow.Height - 50
.Frame1.WebBrowser1.Width = ActiveWindow.Width - 50
.Frame1.WebBrowser1.Height = ActiveWindow.Height - 60
.Frame1.WebBrowser1.Navigate "http://google.de"
End With
Sleep 2000
Set Eingabefeld = Userform1.Frame1.WebBrowser1.Document.getElementByName("q")(0)
Userform1.Frame1.WebBrowser1.Document.getElementsByName("q")(0).Value = "Test"
Userform1.Show
End Sub
Weiß jemand wo ich den Knoten im Kopf habe? Bin für jegliche Hilfe dankbar....
Vielen Dank für Eure Unterstützung...!
LG Dani
Beispiel Datei:
https://www.herber.de/bbs/user/147061.xlsm

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: WebBrowser-SE Felder ermitteln
11.07.2021 20:34:27
Daniel
Hatte das Häckchen für "Beitrag noch offen" vergessen, daher noch dieser Post hinterher in der Hoffnung das
er nun gesetzt bleibt....
AW: WebBrowser-SE Felder ermitteln
13.07.2021 12:38:27
Tobias
Hallo Daniel,
spontan würde ich vermuten das du das ganze Problem per HttpRequest lösen könntest, schau mal über deinen Browser ob du in deiner Intranetseite einen entsprechenden "POST" beim abschicken der Seite findest. Geht über die Netzwerkanalysefunktion des Browsers.
Schöne Grüße
Tobias
AW: WebBrowser-SE Felder ermitteln
13.07.2021 20:56:52
Daniel
Hallo Tobias,
danke für Deine Antwort. Ich habe gerade mal geschaut. Also wenn ich wie gewohnt mit dem Internet Explorer durchs Intranet navigiere (bis
z.B. zur Seite in dem ich meine Arbeitszeiten eintrage) werden bei diversen "Klicks" in der Netzwerkanalyse folgenden Infos angezeigt:
z.B.:
Name: $batch?sap-client=100
Protokoll: HTTP/2
Methode: POST
Ereignis: 202
Inhaltstyp: multipart/mixed
Initiator/Typ: XMLHttpRequest
http://meinefirma/..../...
Bedeutet das ich auf die Nutzung des Webbrowser-Steuerelement verzichten kann und beim Internet Explorer bleiben kann?
Könntest Du mir Code-technisch noch einen Schupser in die richtige Richtung geben? Speziell wie ich Felder und Buttons ansprechen kann?
Vielen Dank schonmal!!!
LG Dani
Anzeige
AW: WebBrowser-SE Felder ermitteln
14.07.2021 12:47:22
Tobias
Hallo Daniel,
es könnte gehen, du müsstest nun praktisch diesen "POST" Auftrag passend definieren und kannst ihn direkt aus VBA abschicken.
https://codingislove.com/http-requests-excel-vba/ hier ist ein englisches Tutorial was die ersten Schritte erklärt, diese müsstest du dann auf dein Intranet anpassen.

Simple POST request to send formdata ....
ist eignetlich genau das was du vorhast, leider hast du als Content-Type "multipart/mixed" was eventuelle etwas schwieriger zu erstellen ist. Da könntest du wenn du in der Netzwerkanalyse deinen von Hand ausgelösten Postbefehl genauer anschaust müsstest du rechts auch sowas wie Header Text Parameter Cookies sehen, da könntest du dann schauen wie dein "Body" aussehen könnte.
Definitiv nicht trivial, aber machbar würde ich behaupten
Schöne Grüße
Tobias
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige