Bonjour,
C'est quand on pense arrivé a la fin d'un projet qu'on découvre un nouveau problème apparemment...
Je fais un code ayant pour but de remplir automatiquement des formulaires sur un intranet grace a des données que j'ai sur excel.
Je suis parvenu a automatiser la navigation et à remplir toutes les cases de mon formulaire sauf une.
(Vu que c'est sur un "intranet" je ne peux malheureusement pas fournir le site…) Mais voila comment commence mon code :
Public IE As SHDocVw.InternetExplorer
Public idoc As MSHTML.HTMLDocument
Public Link As Object
Public ElementCol As Object
Sub Nav ()
Set IE = New InternetExplorerMedium
IE.Visible = True
IE.Navigate ("monsite")
Donc après avoir naviguer jusqu'à la page en question voici ce que je fais (Dim strNom, strPrenom, strDDN, strEmploi as string)
Do While IE.Busy Or IE.ReadyState <> 4
DoEvents
Loop
Set idoc = IE.Document
Set ElementCol = idoc.getElementsByTagName("a")
Set ElementCol1 = idoc.getElementsByClassName("selectlist")
idoc.all.P2300_NOM1.Value = strNom
idoc.all.P2300_PRENOM1.Value= strPrenom
Cela fonctionne pour tout le formulaire sauf a un endroit.
En effet, la case emploi est une "SelectList". Les choix sont souvent les mêmes mais la "value" attribué est malheureusement toujours différente.
(Bénévole peut avoir pour valeur 2365 pour le formulaire 737 mais aura pour valeur 4299 pour le formulaire 788)
Même si je respecte l'orthographe à la lettre, il m'est impossible de sélectionner l'emploi avec du texte.
J'ai pensé a un SendKeys "{TAB 3}" Sendkeys "{B}" mais si j'ai deux emplois qui commence par la même lettre, les erreurs vont commencer.
(Chaque formulaire ne me propose pas forcement les même emplois ni la même combinaison d'emploi)
For Each Link In ElementCol1
If Link.innerHTML = "P2300_HAS_CLIENT_FNCTN_ID" Then
'comparer avec strEmploi et choisir la bonne valeur
Exit For
End If
Next Link
Voici une photo du code de l'élément :
Imaginons que strEmploi = "Stagiaire"
Comment puis-je faire pour comparer le code suivant avec mes datas (strEmploi) et ainsi sélectionner l'option : value 2408 ?
Merci d'avance
J'espère que l'explication a été assez claire.