Plusieurs checkbox en boucle

hari0503 Messages postés 4 Date d'inscription samedi 29 mai 2010 Statut Membre Dernière intervention 25 juin 2010 - 2 juin 2010 à 20:41
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 3 juin 2010 à 20:28
Bonjour à tous !!
après une semaine de rechercher je suis désespérer
et je recherche une solution auprès de vous ....
en fait sur une feuille nommé "interface" j'ai plusieurs checkbox ,chacune d'elle repose sur un critère de produit mais le probleme est que quand je fais j'en coche une tout se passe très bien ,ça m'affiche ce que je veux mais quand je coche plusieurs case seul la dernière coché m'affiche les valeurs
Private Sub CommandButton3_Click()
Dim i As Integer

i = 8
While (Worksheets("IT FOR").Range("A" & i).Value <> "")
If CheckBox15.Value = True Then
If (Worksheets("IT FOR").Range("I" & i).Value = "*vile*") Then
Worksheets("IT FOR").Rows(i).Hidden = False
End If
End If
If CheckBox1.Value = True Then
If (Worksheets("IT FOR").Range("I" & i).Value = "*ac*") Then
Worksheets("IT FOR").Rows(i).Hidden = False
End If
End If
If CheckBox2.Value = True Then
If (Worksheets("IT FOR").Range("I" & i).Value = "*arbr*") Then
Worksheets("IT FOR").Rows(i).Hidden = False
End If
End If
If CheckBox3.Value = True Then
If (Worksheets("IT FOR").Range("I" & i).Value = "*biel*") Then
Worksheets("IT FOR").Rows(i).Hidden = False
End If
End If
If CheckBox4.Value = True Then
If (Worksheets("IT FOR").Range("I" & i).Value = "*boî*") Then
Worksheets("IT FOR").Rows(i).Hidden = False
End If
End If
If CheckBox5.Value = True Then
If (Worksheets("IT FOR").Range("I" & i).Value = "*bott*") Then
Worksheets("IT FOR").Rows(i).Hidden = False
End If
End If
If CheckBox6.Value = True Then
If (Worksheets("IT FOR").Range("I" & i).Value = "*moy*") Then
Worksheets("IT FOR").Rows(i).Hidden = False
End If
End If
If CheckBox7.Value = True Then
If (Worksheets("IT FOR").Range("I" & i).Value = "*cour*") Then
Worksheets("IT FOR").Rows(i).Hidden = False
End If
End If
If CheckBox8.Value = True Then
If (Worksheets("IT FOR").Range("I" & i).Value = "*crab*") Then
Worksheets("IT FOR").Rows(i).Hidden = False
End If
End If
If CheckBox9.Value = True Then
If (Worksheets("IT FOR").Range("I" & i).Value = "*entra*") Then
Worksheets("IT FOR").Rows(i).Hidden = False
End If
End If
If CheckBox10.Value = True Then
If (Worksheets("IT FOR").Range("I" & i).Value = "*fusée*") Then
Worksheets("IT FOR").Rows(i).Hidden = False
End If
End If
If CheckBox11.Value = True Then
If (Worksheets("IT FOR").Range("I" & i).Value = "*gren*") Then
Worksheets("IT FOR").Rows(i).Hidden = False
End If
End If
If CheckBox12.Value = True Then
If (Worksheets("IT FOR").Range("I" & i).Value = "*lopin*") Then
Worksheets("IT FOR").Rows(i).Hidden = False
End If
End If
If CheckBox14.Value = True Then
If (Worksheets("IT FOR").Range("I" & i).Value = "*triangl*") Then
Worksheets("IT FOR").Rows(i).Hidden = False
End If
End If
If CheckBox13.Value = True Then
If (Worksheets("IT FOR").Range("I" & i).Value = "*pignon*") Then
Worksheets("IT FOR").Rows(i).Hidden = False
End If
End If
i = i + 1
Wend
End Sub
voila mon code ce que je veux c quand je coche plusieurs checkbox ça m'affiche dans le tableau tous les produits qui ont été coché
je vous remercie en avance

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
3 juin 2010 à 00:22
Salut
Pas facile à comprendre avec ce genre de phrases "mais le probleme est que quand je fais j'en coche une tout se passe très bien" : merci de te relire avant de poster

Ton code semble bon.
Tout dépend du résultat que tu attends :
Dans la première condition, est-ce que les cellules Ix doivent contenir les 6 lettres "*vile*" ou bien espères-tu que le texte contienne ces caractères ?
1er cas : ton code est bon
2ème cas : remplace = par Like
Attention : Like est sensible aux min/maj : "v" n'est pas "V"
Voir fonctions UCase ou LCase

PS : la prochaine fois que tu colles du code, merci d'utiliser la 3ème icone à droite pour la mise en forme

Vala
Jack, =fr MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
hari0503 Messages postés 4 Date d'inscription samedi 29 mai 2010 Statut Membre Dernière intervention 25 juin 2010
3 juin 2010 à 19:21
salut
merci pour ta réponse , en fait avec ce code je voulais faire en sorte que quand je coche 2 checkbox (exemple checkbox1 qui correspond aux produit ac et checkbox2,arbr ) , le worksheet nommé "IT FOR" apparait avec la liste de ces 2 produit et les autres lignes correspondant aux autres checkbox soit cachés
Mais cependant avec ce code rien ne marche quand je clique sur le commandbutton voire le worksheet n'apparait pas
j'ai essayer avec like comme tu l'as dit mais rien encore
merci
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
3 juin 2010 à 20:28
Faut savoir : Est-ce la manipulation des Row qui pose problème ou la feuille ?
Pas testé, mais est-ce que
Worksheets("IT FOR").Rows(i).Hidden = False
est une instruction légale ?
Je pense que oui puisque tu as dit que cela fonctionnait pour un Item.

Pense au fait que si tu mets une ligne "Hidden", elle le restera --> Penser à les remettre toutes en Hidden = True avant de commencer tes tests
0
Rejoignez-nous