Afficher/Masquer lignes selon valeurs se trouvant dans une plage de cellule

Bonjour à tous !

Je débute en VBA et je souhaiterais savoir si vous auriez la patience de m'aider car je bloque sur un de mes tableaux où je réalise un configurateur :

Dans le tableau présent en pièce jointe, je souhaiterais cacher des lignes selon une condition que je n'arrive pas à coder :

Si dans la plage de valeurs comprise entre C7 et G7 il existe au moins une valeur ≠ "Sans_Gaine"

Alors afficher les lignes 10 à 12

Sinon cacher les lignes 10 à 12

Ou expliqué différemment :

Si dans l'une des cellules comprises dans la plage situé entre C7 et G7 se trouve une valeur autre que "Sans_Gaine", je souhaiterais afficher les lignes oranges 10 à 12.

Par contre, si toutes les cellules comprises dans cette plage ont pour valeur "Sans_Gaine" il faudrait masquer les lignes 10 à 12.

En prenant des bouts de codes trouvé sur ce forum et sur différents tutos et en les assemblant j'ai essayé le code suivant mais cela ne fonctionne pas comme je le veux :

Private Sub Worksheet_Change(ByVal Target As Range)

Dim c As Range

For Each c In Range("C7:G7").Cells

If c.Value = "Sans_Gaine" Then

Rows("10:12").Hidden = True

Else

Rows("10:12").Hidden = False

End If

Next

End Sub

Je souhaiterais donc savoir si vous auriez vous une solution à me proposer s'il vous plait ?

Bonne soirée à tous

26config-tab-2.xlsm (14.00 Ko)

Salut Skud,

Private Sub Worksheet_Change(ByVal Target As Range)
'
If Not Intersect(Target, Range("C7:G7")) Is Nothing Then Rows("10:12").Hidden = IIf(WorksheetFunction.CountIf(Range("C7:G7"), "Sans_Gaine") = 5, True, False)
'
End Sub

A+

Salut curulis57

C'est impeccable tout fonctionne parfaitement comme je le souhaitais !!

Je viens de comprendre également le principe et je vous pouvoir utiliser et adapter ce que tu m'as proposé pour d'autres parties de mon configurateur

Merci beaucoup pour ton aide et bonne journée à tous !

Rechercher des sujets similaires à "afficher masquer lignes valeurs trouvant plage"