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