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

Füllen von Formular auf Website per VBA

Füllen von Formular auf Website per VBA
17.10.2016 11:46:09
Formular
Hallo liebe Experten,
ich stehe vor dem Problem ein einfaches Formular im Intranet per VBA ausfüllen zu müssen. Exemplarisch möchte ich dazu im Feld "SAP Box" als Wert "F6P430" eintragen.
Dazu wollte ich folgendes Macro verwenden:

Sub WebsiteFuellen()
Dim WshShell As Object
Dim IEDoc As Object
Dim lngHwnd As Long
Dim clipboard As MSForms.DataObject
'open request website
Set WshShell = CreateObject("WScript.Shell")
Application.DisplayAlerts = False
Set IE = New InternetExplorer    'New InternetExplorerMedium
IE.Visible = False
IE.Navigate "https://xy.com/pcsubs.do"
'wait until IE is done loading the page
Do: Loop Until IE.Busy = False
Do: Loop Until IE.Busy = False
Do: Loop Until IE.Document.readyState = "complete"
IE.Visible = True
lngHwnd = FindWindow(vbNullString, IE)
If lngHwnd  0 Then
Call ShowWindow(lngHwnd, SW_NORMAL)
Call SetForegroundWindow(lngHwnd)
End If
Set IEDoc = IE.Document
Application.Wait Now + TimeValue("00:00:02")
IE.Document.getelementbyid("IO:5da05ea44fb616004679cf5d0210c717").Value = "F6P430"
IE.Visible = True
MsgBox ("please validate your entries before submitting")
Application.DisplayAlerts = True
lngHwnd = FindWindow(vbNullString, IE)
If lngHwnd  0 Then
Call ShowWindow(lngHwnd, SW_NORMAL)
Call SetForegroundWindow(lngHwnd)
End If
Set IE = Nothing
End Sub
Der Internet Explorer öffnet korrekt die entsprechende Website aber leider kommt als Fehlermeldung "Object required" in der Zeile: IE.Document.getelementbyid("IO:5da05ea44fb616004679cf5d0210c717").Value = "F6P430"
Die ID habe ich mir im Entwicklermodus von Firefox anzeigen lassen, ich vermute aber die ID ist falsch. Da die entsprechende Website im Intranet abgelegt ist, habe ich die Datei als source heruntergeladen und etwas anonymisiert ( https://www.herber.de/bbs/user/108821.txt ). Ich hoffe sie ist noch gut genug um die Object IDs zu finden.
Was muss ich an meinem Code ändern?
Danke und Gruss
Theo

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

Betreff
Datum
Anwender
Anzeige
AW: Füllen von Formular auf Website per VBA
17.10.2016 18:27:06
Formular
Hi Theo
Im File finde ich weder etwas mit "SAP", noch deine vermutete ID. Auch wenn ich mir die Datei als HTML abspeichere und im Browser betrachte lässt sich das passende Formular nicht finden.
Generell lassen sich solche Fragen ohne Zugriff auf die Webseite nur sehr schwer lösen und der Code in der Datei lässt auf eine komplexe Struktur mit Java-Script schliessen, was die Sache nicht einfacher macht.
Es kommt hinzu dass sich Webseiten auch schnell einmal ändern können, weshalb soche "Schnittstellen" meistens nicht nachhaltig sind...
Trotzdem ein paar Tipps:
Mit Formular meinte ich den Code-Teil, welcher ein "from-tag" enthält:
<form action="slushbucket.do" method="GET" style="display:inline" name="sys_personalize">
...
</form>
Es gibt die Methoden GET und POST.
Falls POST müsstest du deinen bestehenden Code verwenden und die richtige ID finden.
Ich habe allerdings die Hoffnung, dass es sich wie im obigen Beispiel um die GET Methode handelt. Bei GET befinden sich die Eingabewerte direkt im Link und sowas lässt sich leicht mit einem Hyperlink zusammen setzen.
z.B.
https://www.google.de/search?q=ein+paar+Tipps
=HYPERLINK("https://www.google.de/search?q=" & Eingabewert)
cu
Chris
Anzeige
AW: Füllen von Formular auf Website per VBA
17.10.2016 18:29:58
Formular
from-tag = form-tag*

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige