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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 289906
Url: https://administrator.de/forum/web-formular-auswahlliste-wert-per-excel-vba-auswaehlen-und-absenden-289906.html
Ausgedruckt am: 14.05.2025 um 05:05 Uhr
5 Kommentare
Neuester Kommentar

Moin,
dein HTML-Select-Element hat keine ID also kannst du es auch nicht mit getElementById ansprechen sondern nutzt hier stattdessen:
Da das ein Array an Elementen zurückgibt musst du den entsprechenden Index im Array angeben.
Gruß jodel32
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;
Gruß jodel32

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)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?
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.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>
>
document.getElementsByClassName("submit")(0).click