Macro pour masquer un range de ligne par rapport à une donnée.

Résolu/Fermé
Trachenberg Messages postés 6 Date d'inscription samedi 2 mai 2015 Statut Membre Dernière intervention 12 mai 2015 - 2 mai 2015 à 20:50
Trachenberg Messages postés 6 Date d'inscription samedi 2 mai 2015 Statut Membre Dernière intervention 12 mai 2015 - 4 mai 2015 à 22:40
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
A voir également:

3 réponses

via55 Messages postés 14502 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 9 décembre 2024 2 736
2 mai 2015 à 21:40
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
Trachenberg Messages postés 6 Date d'inscription samedi 2 mai 2015 Statut Membre Dernière intervention 12 mai 2015
3 mai 2015 à 00:17
Merci
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 524
2 mai 2015 à 22:08
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
Trachenberg Messages postés 6 Date d'inscription samedi 2 mai 2015 Statut Membre Dernière intervention 12 mai 2015
4 mai 2015 à 22:40
Merci. C'est excellent.:-)
0
Trachenberg Messages postés 6 Date d'inscription samedi 2 mai 2015 Statut Membre Dernière intervention 12 mai 2015
3 mai 2015 à 19:04
Merci pour votre aide c'est fonctionnel. super!
0