Microsoft 365 Macro : masquage cellule d'une colonne suivant valeur

Bobo80

XLDnaute Nouveau
Bonjour,

J'aimerais masquer automatiquement les lignes si les cellules de la colonne B contiennent "-"
Comment procéder dans une macro ?

Merci de votre aide :)

2022-03-14 13_58_01-Window.png
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Bobo,
il eût été préférable de joindre un petit fichier plutôt qu'une image, c'est plus facile.
En PJ un essai avec:
VB:
Sub Masque()
    Dim Début%, Fin%, L%
    Application.ScreenUpdating = False
    Début = Range("A1").End(xlDown).Row
    Fin = Range("A65500").End(xlUp).Row
    For L = Fin To Début Step -1
        If Cells(L, "A") = "-" Then Rows(L).Hidden = True
    Next L
End Sub
Sub Démasque()
    Dim Début%, Fin%, L%
    Application.ScreenUpdating = False
    Début = Range("A1").End(xlDown).Row
    Fin = Range("A65500").End(xlUp).Row
    Rows(Début & ":" & Fin).Hidden = False
End Sub
En supposant que le caractère recherché est "-"
 

Pièces jointes

  • Masque.xlsm
    15.2 KB · Affichages: 10

sylvanu

XLDnaute Barbatruc
Supporter XLD
En PJ un essai en passant par une macro événementielle mise dans la feuille Test Report :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [Article_Number]) Is Nothing Then
        Application.ScreenUpdating = False
        Démasque
        If Target <> "" Then Masque
    End If
    Application.ScreenUpdating = True
End Sub
La macro s'exécute lorsque la valeur de D8 change.
 

Pièces jointes

  • PV_Basse_tensionV511new_Machine 37005 (1).xlsm
    500.2 KB · Affichages: 2

Bobo80

XLDnaute Nouveau
Hello, merci bcp :)
J'ai encore une requête... j'ai ajouté une option: si la cellule S13 est sur OUI => les lignes 17 à 51 sont masquées et les lignes 51 à 85 sont affichées, si sur NON, c'est l'inverse. Ca ca fonctionne, mais par contre ca désactive le premier masquage avec les cellule comportant "-".. j'ai surement mal mis cela dans la macro...
 

Pièces jointes

  • Modèle PV Labo BT-FE.xlsm
    347.8 KB · Affichages: 1

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Ca ne peut pas marcher. Vous avez deux macros qui masquent/démasquent et que se suivent.
Il faut faire deux macros suivant les différents choix.
En PJ un essai avec une macro pour les lignes 17 50 et une pour les lignes 51 85 :
VB:
Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [Article_Number]) Is Nothing Or _
        Not Intersect(Target, [OuiNon]) Is Nothing Then
        Application.ScreenUpdating = False
        Démasque
        If Target <> "" And [OuiNon] = "OUI" Then Masque1750 Else Masque5185
    End If
    Application.ScreenUpdating = True
End Sub
Sub Masque1750()
    Dim L%
    Rows("17:50").Hidden = False
    Rows("51:85").Hidden = True
    For L = 50 To 17 Step -1
        If Cells(L, "A") = "-" Then Rows(L).Hidden = True
        If Cells(L, "C") = "-" Then Rows(L).Hidden = True
    Next L
End Sub
Sub Masque5185()
    Dim L%
    Rows("17:50").Hidden = True
    Rows("51:85").Hidden = False
    For L = 85 To 51 Step -1
        If Cells(L, "A") = "-" Then Rows(L).Hidden = True
        If Cells(L, "C") = "-" Then Rows(L).Hidden = True
    Next L
End Sub
Sub Démasque()
    Rows("1:" & Range("C200").End(xlUp).Row).Hidden = False
End Sub
 

Pièces jointes

  • Modèle PV Labo BT-FE.xlsm
    365.9 KB · Affichages: 2

Bobo80

XLDnaute Nouveau
Bonjour,
les ranges 93 125 ne concernent pas le OUI NON mais le masquage des cellules de la colonne C comportant un ”-“
Il y a bien la colonne A qui fonctionne pour les ranges 17 50 et 51 85 avec le masquage des cellules “-“ mais pas la colonne C
 

Discussions similaires

Réponses
2
Affichages
144

Statistiques des forums

Discussions
312 298
Messages
2 086 979
Membres
103 417
dernier inscrit
abaabdelghani