Interaction VBA-Internet Liste déroulante

Dany_G

XLDnaute Nouveau
Bonjour,

J'ai un petit problème avec des listes déroulantes pour sélectionner mes valeurs. Je voudrais chercher des applications d'autos selon l'année, la marque et le modèle. Il se trouve que j'ai donc 3 listes déroulantes consécutives et la liste des deux dernières se trouvent à être toujours dépendantes de celle d'avant.

Prenons par exemple un 2010 (1ere liste déroulante) Chevrolet (2e liste) Aveo5 (3e liste). Dans le code source la propriété "value" est un code soit le "42621". J'aimerais pouvoir utiliser l'année à la place, mais l'année est la propriété outertext ou outerhtml ou textcontent...... De plus si même si je sélectionnerais le "value" 42621 la 2e liste déroulante reste en mode disabled="disabled". Même en mettant ma propriété disabled="" ou disabled=false cela ne change rien car les marques de véhicules n'apparaissent toujours pas. Ma 2e liste déroulante reste toujours gelée ou invalid.

Mes 2 questions:
Est-il possible de faire fonctionner mes autres listes déroulantes?
Y-a-t-il un moyen d'utiliser l'année plutôt que le code?

Voici mon code qui inclus l'adresse URL:

VB:
Sub Recherche()

Dim IE As New InternetExplorer
Dim IEDoc As HTMLDocument
Dim Year As HTMLSelectElement
Dim Make As HTMLSelectElement
Dim Model As HTMLSelectElement
Dim Button As HTMLFormElement

IE.navigate "http://www.monroe.com/en-US/"
IE.Visible = True
Wait IE

Set IEDoc = IE.document
Set Year = IEDoc.all("widget-ymm-year-desktop")
Year.Value = "42621" ' Je voudrais pouvoir mettre 2010 à la place"

Set Make = IEDoc.all("widget-ymm-make-desktop")
Make.disabled = False
Make.Value = "41670" 'Je voudrais pouvoir mettre Chevrolet

Set Model = IEDoc.all("widget-ymm-model-desktop")
Model.Value = "850410" ' Je voudrais pouvoir mettre Aveo5

Set Button = IEDoc.all("lookup-form-desktop")
Button.submit

Set IE = Nothing
Set IEDoc = Nothing
IE.Quit
End Sub

Merci de votre aide
 

Lone-wolf

XLDnaute Barbatruc
Bonsoir Dany

Je ne veux pas trop m'avancer mais, pour l'année range("b2") = format (Year, "yyyy"). Mais aussi, changer Year par Annee, Year fait partie des fonctions Excel, tout comme Month et Day.

Pour les autres, deux colonnes supplémentaires; une avec les codes, l'autre avec la marque.
ensuite tu pourra faire comme ceci

With activesheet
rw = application.match(Make, .Columns(codes), 0)
.Range("g2") = .Cells(rw, colonne(marque))
End With
 
Dernière édition:

Dany_G

XLDnaute Nouveau
Bonjour,

Malheureusement mon problème n'est pas de savoir comment prendre mon année ou véhicule à partir du fichier excel, mais plutôt de faire fonctionner la recherche sur le site internet. Lorsque je mets une année dans la première liste déroulante, les marques de véhicules n'apparaissent pas.

Merci d'avoir essayé quand même mais mon problème n'est toujours pas réglé.
 

Discussions similaires

Réponses
8
Affichages
595

Statistiques des forums

Discussions
311 720
Messages
2 081 909
Membres
101 836
dernier inscrit
karmon