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

Résolu
Trachenberg Messages postés 6 Statut Membre -  
Trachenberg Messages postés 6 Statut Membre -
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

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
    1. Trachenberg Messages postés 6 Statut Membre
       
      Merci
      0
  2. Gyrus Messages postés 3360 Statut Membre 526
     
    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
    1. Trachenberg Messages postés 6 Statut Membre
       
      Merci. C'est excellent.:-)
      0
  3. Trachenberg Messages postés 6 Statut Membre
     
    Merci pour votre aide c'est fonctionnel. super!
    0