Recherche de terme avec excel vba

clovis7 Messages postés 20 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 21 mai 2008 - 4 avril 2006 à 00:06
clovis7 Messages postés 20 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 21 mai 2008 - 4 avril 2006 à 21:06
Bonjour à tous,



Voila mon souci. J'aimerais qu'excel cherche un combinaison de trois
termes automatiquement. Ces trois termes sont les "caption" de 3
boutons d'option et la recherche ne doit s'effectuer qu'à condition que
les boutons d'options soient sélectionnés (ie value := true)

Avec un seul bouton d'option, pas de problemes, ça marche avec le code suivant :



If saisie.choix11.Value = True Then

Sheets("feuil3").Select

Set x = Range("A1:A10").Find(saisie.choix11.Caption)

If x Is Nothing Then

PasDeReponse.Show

Else: x.Select

mobile.nom.Caption = Cells(x.Row, "B").Value

mobile.Show

End If

End If



Par contre comment faire avec 3 boutons ? D'autant que les 3 termes
peurvent être dans n'importe quel ordre. Il faut commencer ainsi (je
pense) :



If saisie.choix11.Value True And saisie.choix21.Value True And saisie.choix31.Value = True Then

Sheets("feuil3").Select

...



Mais après... ?





Merci de votre précieuse aide

3 réponses

cs_jordinette Messages postés 134 Date d'inscription mercredi 2 mars 2005 Statut Membre Dernière intervention 5 avril 2007
4 avril 2006 à 10:01
Bonjour,
est-ce que tes saisie.choix11.caption, saisie.choix21.caption, saisie.choix31.caption, sont dans la même range (a1:a10)? dans la même cellules? ou chaque "caption" est dans une colone ?

exemple

A B C
choix11.caption Choix21.caption Choix31.caption

ou

A
choix11.caption
Choix21.caption
Choix31.caption

Tu peux essayer ça, mais je ne suis pas sure que ça marche:
Set x = Range("A1:A10").Find(saisie.choix11.Caption,saisie.choix21.Caption,saisie.choix31.Caption)

Jordinette
0
clovis7 Messages postés 20 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 21 mai 2008
4 avril 2006 à 15:19
Set x = Range("A1:A10").Find(saisie.choix11.Caption,saisie.choix21.Caption,saisie.choix31.Caption)



ne fonctionne pas malheureusement...



Mes 3 caption sont dans la même cellule.

Enfin pour être claire, chaque choixXX.Caption peut avoir 3 noms
différents. Du coup, dans ma colonne A, il y aura autant de ligne que
combinaison possible.

En bref, dans la formule qu'il me faut, la recherche des 3 termes sera dans une seule cellule.
0
clovis7 Messages postés 20 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 21 mai 2008
4 avril 2006 à 21:06
J'ai réussi !!!

voila le code : (ce code test aussi les "caption" à retenir, ie les "caption" dont les bouton d'option sont "true")



If saisie.choix11.Value = True Then

choix1 = saisie.choix11.Caption

ElseIf saisie.choix12.Value = True Then

choix1 = saisie.choix12.Caption

Else

choix1 = saisie.choix13.Caption

End If



If saisie.choix21.Value = True Then

choix2 = saisie.choix21.Caption

ElseIf saisie.choix22.Value = True Then

choix2 = saisie.choix22.Caption

Else

choix2 = saisie.choix23.Caption

End If



If saisie.choix31.Value = True Then

choix3 = saisie.choix31.Caption

ElseIf saisie.choix32.Value = True Then

choix3 = saisie.choix32.Caption

Else

choix3 = saisie.choix33.Caption

End If



Sheets("feuil3").Select

Set x = Range("A1:A10").Find(choix1)

Set x = Range("A1:A10").Find(choix2)

Set x = Range("A1:A10").Find(choix3)

If x Is Nothing Then

PasDeReponse.Show

Else: x.Select

mobile.nom.Caption = Cells(x.Row, "B").Value

mobile.Show

End If



Maintenant j'ai une autre souci. J'arrive facilement à intégrer
dans mon Userform le texte qui est dans ma colonne B. Par contre,
j'aimerais également intégrer de la même façon une image qui serait par
exemple dans ma colonne C. J'ai essayer de mettre une image dans une
cellule en colonne C et de faire mobile.Image.Picture = Cells(x.Row, "C").Value mais ça ne fonctionne pas...



Savez-vous comment faire ?
0
Rejoignez-nous