Hallo zusammen,
ich bin Einsteiger in Sachen VBA.
Leider konnte ich auf folgendes Problem in keinem Forum eine Antwort finden. Auch die Suche in Google blieb leider erfolglos.
Meine Aufgabestellung:
Ich möchte mittels eines VBA Makros Daten von einer Webseite (Intranet) auslesen und in entsprechend dafür vorgesehene Eingabefelder wieder Daten auf der Webseite einfügen.
Für diesen Zweck habe ich ein entsprechendes Formular eröffnet und das Steuerelement "Microsoft Web Browser" eingefügt (Bestellen1). Nach dem Starten meines Markos wurde die gewünschte Seite wie gewollt dargestellt.
Sub Bestellformular
Load Bestellen1
Bestellen1.start_url1.Text = "http://intra3/ibuy_2_2/"
Bestellen1.WebBrowser1.Navigate2 (Bestellen1.start_url1.Text)
Bestellen1.Show
End Sub
In der dargestellten Webseite gebe ich in ein dafür vorgesehenes Eingabefeld Text ein. Nun löse ich durch Drücken eines Buttons eine Routine aus, die mir den Inhalt dieses Eingabefelds wieder auslesen soll (später soll natürlich nicht wieder der eingegebene Text ausgelesen werden)
Mittels Überwachungsfenster konnte ich das auszulesende Feld identifizieren, in welches die eingegebenen Daten geschrieben wurden.
Bestellen1.WebBrowser1.Document.forms.Item 3.innertext
Mein Problem:
Versuche ich nun den Text auszulesen und einer Variablen zuzuweisen, scheitere ich jedoch.
eingabetext = Bestellen1.WebBrowser1.Document.forms.Item 3.innertext
Die Ursache scheint mit klar zu sein; in VBA ist ein Objekt mit Leerzeichen nicht erlaubt ('Item 3') und daher färbt sich die Befehlszeile natürlich rot. Im Überwachungsfenster wird das Objekt/Methode jedoch eindeutig mit Leerzeichen angezeigt.
Ohne Leerzeichen, also
eingabetext = Bestellen1.WebBrowser1.Document.forms.Item3.innertext
ergibt bei der Eingabe keine Fehlermeldung, beim Ausführen der Routine erscheint jedoch die Fehlermeldung "Laufzeitfehler 438 ....", da das Objekt ja nicht bekannt ist.
Meine Frage:
wie kann ich dennoch den Text des Eingabefeldes auslesen?
Vielen Dank für Eure Hilfe….
Patrick
|