machohunk
Goto Top

Web-Formular (Auswahlliste) Wert per Excel-VBA auswählen und absenden

Hallo,

ich bin bisher leider beim Versuch gescheitert per Excel-VBA auf einer Webseite den Wert in einer Auswahlliste von 4 auf 1 umzustellen und abzusenden (siehe HTML-Schnipsel unten).
Wo ist mein Fehler?

Private Sub Aufstellung()
Dim objIE As Object
Set objIE = CreateObject("Internetexplorer.Application")
With objIE
.Visible = True
.Navigate2 "WEBSEITE"
Do While .Busy
Do While .Busy
DoEvents
Loop
Loop
.document.getElementById("team_39125").selectedIndex = "1"
.document.getElementById("submit").Click
End With

End Sub

<td>
<select class="select" name="team_39125">
<option value="0"></option>
<option value="1">Nr. 1</option>
<option value="2">Nr. 2</option>
<option value="3">Nr. 3</option>
<option selected="" value="4">Nr. 4</option>
<option value="5">Nr. 5</option>
<option value="6">Nr. 6</option>
</select>
</td>


Gruß
cu

Content-Key: 289906

Url: https://administrator.de/contentid/289906

Printed on: April 20, 2024 at 04:04 o'clock

Mitglied: 114757
Solution 114757 Dec 02, 2015, updated at Dec 03, 2015 at 09:14:04 (UTC)
Goto Top
Moin,
dein HTML-Select-Element hat keine ID also kannst du es auch nicht mit getElementById ansprechen sondern nutzt hier stattdessen:
.document.getElementsByName("team_39125")(0).selectedIndex = 1;
Da das ein Array an Elementen zurückgibt musst du den entsprechenden Index im Array angeben.

Gruß jodel32
Member: machohunk
machohunk Dec 03, 2015 at 08:47:36 (UTC)
Goto Top
Hallo jodel32,

ich habe die eckigen Klammern durch runde ersetzt und dann hat es funktioniert, vielen Dank für deine Hilfe.
Eine Frage hätte ich noch:
Leider lässt sich das Formular nicht abschicken, zumindest nicht so wie ich es oben angegeben habe.
Hast du hierfür evtl. auch eine Lösung parat?

<p>
<input value="Aufstellung speichern" class="submit" type="submit">  
</p>

Gruß
cu
Mitglied: 114757
Solution 114757 Dec 03, 2015 updated at 09:20:48 (UTC)
Goto Top
Zitat von @machohunk:

Hallo jodel32,

ich habe die eckigen Klammern durch runde ersetzt und dann hat es funktioniert, vielen Dank für deine Hilfe.
OMG sorry, da war ich noch auf der JavaScript-Schiene X)

Eine Frage hätte ich noch:
Leider lässt sich das Formular nicht abschicken, zumindest nicht so wie ich es oben angegeben habe.
Hast du hierfür evtl. auch eine Lösung parat?

> <p>
> <input value="Aufstellung speichern" class="submit" type="submit">  
> </p>
> 
Jup, kein Problem, hier arbeitest du mit der Funktion die alle Elemente einer Klasse auflistet, und dann nimmst du wie oben wieder den entsprechenden Index aus der Collection um den Button anzusprechen.Gibt es nur ein Element ist dies 0 anderen Falls kann der Index auch größer sein wenn es mehrere Elemente der Klasse auf der Seite gibt, dann musst du sie in der Reigenfolge zählen.
document.getElementsByClassName("submit")(0).click  
Member: machohunk
machohunk Dec 04, 2015 at 14:20:38 (UTC)
Goto Top
Funktioniert wunderbar, vielen Dank.

Kennst du ggf. gute Tutorials oder sonstige Hilfeseiten im Netz o.ä. auf die du verweisen kannst?
Brauche sicher noch öfter mal Hilfe. face-wink

Gruß
cu
Mitglied: 114757
Solution 114757 Dec 04, 2015 updated at 14:24:35 (UTC)
Goto Top