Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

IE-Webformular ausfüllen (Formularfeld ohne ID) | Herbers Excel-Forum


Betrifft: IE-Webformular ausfüllen (Formularfeld ohne ID) von: Martin
Geschrieben am: 12.01.2012 21:47:12

Hallo liebe Excelfreunde,

ich versuche per Excel ein Webformular auszufüllen, allerdings gelingt mir das nicht vollständig. Wie kann ich auf ein Formularfeld zugreifen, wenn dieses nicht mit einer ID definiert ist (...und somit nicht mit appIE.Document.getElementById angesprochen werden kann)?

Es geht speziell um das Feld "Anrede" auf folgender Homepage:
http://laufkalender.markenverlag.de/aktivlaufen-anmeldung-webseite.php

Hier mein - nicht funktionierender - Code:

Sub Webformular()
    
    Dim appIE As Object
    Set appIE = CreateObject("InternetExplorer.application")
    
    Do While appIE.Busy 'Warten bis IE komplett geladen
    Loop
    
    appIE.Visible = True
appIE.Navigate "http://laufkalender.markenverlag.de/aktivlaufen-anmeldung-webseite.php"
    
    While Not appIE.ReadyState = 4 'Warten bis Site komplett geladen
        'Debug.Print appIE.ReadyState
    Wend
        
    'Formularfelder ausfüllen
    appIE.getElementsByName("anrede").Value = "Herr" 'führt zu Laufzeitfehler 438 (Objekt  _
unterstützt diese Eigenschaft oder Methode nicht)
Für Vorschläge wäre ich sehr dankbar!

Viele Grüße

Martin

  

Betrifft: AW: IE-Webformular ausfüllen (Formularfeld ohne ID) von: Josef Ehrensberger
Geschrieben am: 12.01.2012 22:24:51


Hallo Martin,

das Feld hat eine ID "ansprechpartner".




« Gruß Sepp »



  

Betrifft: ...aber das war nicht die Frage von: Martin
Geschrieben am: 12.01.2012 22:36:19

Hallo Sepp,

das Feld "Ansprechpartner" kann ich ja auch ansprechen (weil das Formularfeld eine ID hat), aber das Feld "Anrede" verfügt leider über keine ID.

Viele Grüße

Martin


  

Betrifft: ...jetzt verstehe ich was du meinst, aber... von: Martin
Geschrieben am: 12.01.2012 22:45:36

Hallo Sepp,

die id mit der Bezeichnung "Ansprechpartner" gibt es nicht. Die Zeile ist nur als Kommentar im HTML-Code (mit < ! - - und - - > quasi deaktiviert.) Sonst gäbe es zwei veschiedene Formularfelder (Select und Input) mit den gleichen Namen.

Viele Grüße

Martin


  

Betrifft: Lösung selbst gefunden von: Martin
Geschrieben am: 14.01.2012 11:30:32

Hallo,

es hat zwar eine Weile gedauert, aber ich habe das Problem mit Hilfe einer Function lösen können:

Function SetSelect(s, val) As Boolean
    Dim x As Integer
    Dim r As Boolean
    
    r = False
    
    For x = 0 To s.Options.Length - 1
        If s.Options(x).Text = CStr(val) Then
            s.selectedIndex = x
            r = True
            Exit For
        End If
    Next x
    
    SetSelect = r
    
    'Fehler erzeugen
    If r = False Then Err.Raise Number:=vbObjectError, Description:="'" & val & "' ist kein gü _
ltiger Value-Wert vom Select-Formularfeld '" & s.Name & "'."
    
End Function
Aufgerufen wird die Funktion mit:
Call SetSelect(appIE.document.all.anrede, "Herr")
....wobei in der Funktion die Fehlermeldung deaktiviert werden könnte und auch folgender Aufruf möglich wäre:
If Not SetSelect(.anrede, "Herr") Then MsgBox "Select Option-Wert nicht gefunden!"
Viele Grüße

Martin


Beiträge aus den Excel-Beispielen zum Thema "IE-Webformular ausfüllen (Formularfeld ohne ID)"