Macro pour masquer un range de ligne par rapport à une donnée. [Résolu/Fermé]

Signaler
Messages postés
6
Date d'inscription
samedi 2 mai 2015
Statut
Membre
Dernière intervention
12 mai 2015
-
Messages postés
6
Date d'inscription
samedi 2 mai 2015
Statut
Membre
Dernière intervention
12 mai 2015
-
Bonjour,
Je cherche une macro pour masquer des lignes sous condition. voici les conditions:
Si sur la ligne 4 entre les cellule D4 et K4 on retrouve la donnée de la cellule B2 alors masquer la ligne 6 a 10 si non voir si dans la ligne 7 entre D7 et K7 si on retrouve la donnée de la cellule B2 si oui alors masquer les lignes 4 et 12 à 15 sinon voir sur la ligne 9 entre D9 et K9 si on retrouve la donnée de la cellule B2 si oui alors masquer les lignes 4 a 8 et 17 a 23 si non rien ?

Merci

3 réponses

Messages postés
12361
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
4 juillet 2020
1 915
Bonsoir Trachenberg

Exemple de macro pour cacher les lignes 6 à 10
Sub masquer()
existe = 0
'Boucle sur les colonnes 4 à11
For col = 4 To 11
' si la valeur de la cellule égale celle de B pn met variable existe à 1
If Cells(4, col) = Range("B2") Then existe = 1
Next
'si existe=1 on masque les lignes 6 à 10 puis on sort
If existe = 1 Then
Rows("6:10").Select
Selection.EntireRow.Hidden = True
Exit Sub
End If
End Sub


Pour les 2 autres vérifications il faut recopier la même procéure depuis existe=0 jusqu'à End if avant le End sub en changeant les valeurs des colonnes et des lignes à effacer

Je te laisse le soin de le faire

Cdlmnt
Via

1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 64467 internautes nous ont dit merci ce mois-ci

Messages postés
6
Date d'inscription
samedi 2 mai 2015
Statut
Membre
Dernière intervention
12 mai 2015

Merci
Messages postés
3341
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
475
Bonsoir Trachenberg,
bonsoir Via55,

Une autre solution
Sub Masquer()
If Application.CountIf(Range("D4:K4"), Range("B2")) > 0 Then
Rows("6:10").Hidden = True
ElseIf Application.CountIf(Range("D7:K7"), Range("B2")) > 0 Then
Rows(4).Hidden = True
Rows("12:15").Hidden = True
ElseIf Application.CountIf(Range("D9:K9"), Range("B2")) > 0 Then
Rows("4:8").Hidden = True
Rows("17:23").Hidden = True
End If
End Sub

A+
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 64467 internautes nous ont dit merci ce mois-ci

Messages postés
6
Date d'inscription
samedi 2 mai 2015
Statut
Membre
Dernière intervention
12 mai 2015

Merci. C'est excellent.:-)
Messages postés
6
Date d'inscription
samedi 2 mai 2015
Statut
Membre
Dernière intervention
12 mai 2015

Merci pour votre aide c'est fonctionnel. super!