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

  • Initiateur de la discussion Initiateur de la discussion Bobo80
  • 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 !

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
 
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

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

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

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

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
 
- 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

Réponses
6
Affichages
200
Réponses
4
Affichages
101
Retour