Masquer des lignes en fonction des conditions

  • Initiateur de la discussion Initiateur de la discussion adrian
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

adrian

XLDnaute Nouveau
Bonsoir tout le monde,

Voici ma question :

Je souhaites masquer des lignes correspondant à des aspects non significatifs en fonction de la valeur de la cotation (en colonne D), mais aussi du critère1 (colonne B) et du critère2 (colonne C).

Je veux garder les lignes répondant aux conditions suivantes :
- cotation > 30
- critère1 = "moins important" ET critère2 = "non"

Je vous transmet un fichier test pour plus de clarté avec un début de macro pour la 1ère condition, c'est pour la seconde que je rencontre des problèmes.

Merci à tous et bon courage!!
 

Pièces jointes

Re : Masquer des lignes en fonction des conditions

Bonjour,

critère1 = "moins important" ET critère2 = "non"

Tu n'as pas de valeur "moins important" dans ta liste de validation des cellules!!!!!!!!!

Vérifie les données fournies

sinon

Code:
Sub Masquer_questions_non_significatives()
    Application.ScreenUpdating = False
    With Range("D21:D27")
        .AutoFilter Field:=1, Criteria1:="=moins important*", Operator:=xlAnd, _
                    Field:=2, Criteria1:="=Non*"
        
        .AutoFilter Field:=3, Criteria1:=">30", Operator:=xlAnd
    End With
    Application.ScreenUpdating = True
End Sub

A+
 
Dernière modification par un modérateur:
Re : Masquer des lignes en fonction des conditions

Bonjour à tous et merci à toi Hasco

J'ai essayé avec le code fourni mais il y a un soucis, toutes les lignes sont masquées bien que les critères soient réunis. J'avoue ne pas comprendre pourquoi.😕

Pour la valeur "moins important" il s'agit en réalité de "moins important (5)" et pour le critère 2 il s'agit de "Non (4)".

Est-ce qu'il n'y a pas un moyen de faire ce que je souhaite en complétant ce code :

Code:
Sub Masquer_questions_non_significatives()
Application.ScreenUpdating = False

For Each c In Range("D22:D27")
 If c < 30 Then
 c.Rows.Hidden = True
 End If
Next

'pour tout d de B22 à B27 et pour tout e de C22 à C27
'si d = "moins important (5)" et e = "Non (4)" alors
d.Rows.Hidden = False
End If
Next

Application.ScreenUpdating = True
End Sub


Merci d'avance.
 
Re : Masquer des lignes en fonction des conditions

Bonjour,

Si tu préfères une boucle (toujours moins rapide sur de long tableau)

Fais attention à tes critères et comment tu les exprime.

Code:
Sub Masquer_questions_non_significatives()
    Dim c As Range
    Application.ScreenUpdating = False
    For Each c In Range("[B][COLOR=red]B[/COLOR][/B]22:[B][COLOR=red]B[/COLOR][/B]27")
        c.Rows.Hidden = Not (c = "moins important (5)" And c.Offset(, 1) = "Non (4)")
    Next
   Application.ScreenUpdating = True
End Sub

A+
 
Re : Masquer des lignes en fonction des conditions

Bonjour à tous,

Merci Hasco avec la boucle ça fonctionne impec'.

Voilà mon code avec les 3 critères pour ceux que ça intéresse et qui peuvent se retrouver dans la même situation :

Code:
Sub Masquer_questions_non_significatives()
Application.ScreenUpdating = False

Dim c As Range
For Each c In Range("B22:B27")
c.Rows.Hidden = Not (c = "moins important (5)" And c.Offset(, 1) = "Non (4)" Or c.Offset(, 2) >= 30)
Next

Application.ScreenUpdating = True
End Sub

Encore merci pour l'aide et à bientôt pour de nouvelles questions^^
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour