afficher/masquer lignes en fonction résultat cellule

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

B

babouze64

Guest
bonjour à tous, voici mon problème:

une premiere feuille (feuille 1) comprends toute une liste de matériels. j'ai inséré dans chaque ligne une case à cocher qui me renvoi VRAI ou FAUX dans une colonne en fin de tableau de cette même page.
chaque ligne correspond à un tableau complet situé dans une autre feuille (feuille 2)

comment puis-je automatiser pour que lorsque une ligne est décoché (=FAUX) en feuille 1 le tableau correspondant de la feuille 2 se masque ?

et inversement quand je coche une ligne (=VRAI) en feuille 1, le tableau réapparaissent en feuille 2 ?

merci d'avance
 
Re : afficher/masquer lignes en fonction résultat cellule

RE,

voici la macro commentée:
Pour insérer un commentaire(pas au milieu d'une ligne) on met un '
J'ai fait en sorte que la macro indique les problèmes rencontrés en cas d'erreur

Code:
Sub CacherAfficherLignes()
    'Vérifier que la macro n'a pas été appelée par une méthode non autorisée:
    '    Outils/Macro ou Alt+F
    'Application.Caller doit contenir une valeur chaine de caractère
    'normalement est le nom de la case à cocher
    'qui a déclenché la macro
    If VarType(Application.Caller) <> vbString Then GoTo ErreurObjet
 
    'Déclaration des variables
    Dim oCheckBox As Object 'Case à cocher ayant été cliquée
    Dim c As Range  'Cellule à trouver (colonne à gauche des tableaux, première ligne)
    Dim OuiNon As Boolean ' La case à cocher est cochée ou non
 
    'Si erreur on passe à la ligne suivante
    On Error Resume Next
 
    'On essaie de référencer la case à cocher par son nom sur la feuille 1
    'application.caller= normalement le nom de la case à cocher
    Set oCheckBox = Sheets("feuille 1").Shapes(Application.Caller).DrawingObject
 
    'Si une erreur s'est produite on va à la ligne ErreurObjet
    If Err.Number > 0 Then GoTo ErreurObjet
 
    'Récupérer la cellule liée de la case à cocher
    Set c = Range(oCheckBox.LinkedCell)
 
    'Si une erreur s'est levée: problème->aller à erreurCellule
    On Error GoTo ErreurCellule
 
    'Si la cellule n'est pas de type logique(Vrai/faux) ->aller à ErreurTypeValeur
    If VarType(c.Value) <> vbBoolean Then GoTo ErreurTypeValeur
 
    'Pour la suite si on rencontre une erreur aller à AutreErreur
    On Error GoTo AutreErreur
 
    'OuiNon récupère la valeur de la cellule liée
    OuiNon = c.Value
 
    'On décale la cellule de 0 ligne et 1 colonne
    Set c = c.Offset(, 1)
 
    'Boucler tant que la cellule (c) n'est pas vide
    Do While Not IsEmpty(c)
        'Cacher la ligne entière suivant la valeur que contient OuiNon
        c.EntireRow.Hidden = Not OuiNon
 
        'Décaler la cellule d'une ligne
        Set c = c.Offset(1)
    Loop
    'On a rencontré une cellule vide (fin du tableau) on sort
    Exit Sub
 
'Gestion des erreurs
ErreurCellule:
MsgBox "Le tableau correspondant en feuille 2 n'a pas été trouvé!" & vbCrLf & "Vérifiez la cellule liée de la case à cocher", vbExclamation, "CacherAfficherLignes"
Exit Sub 'sortir
 
'La valeur de la celllule liée n'est pas une valeur logique
ErreurTypeValeur:
MsgBox "La cellule liée à " & oCheckBox.Name & " comporte autre chose que Vrai ou Faux!", vbExclamation, "CacherAfficherLigne"
Exit Sub 'sortir
 
'La case à cocher n'a pas été initialisée
'ou on a appelé la macro à partir d'un autre objet
ErreurObjet:
MsgBox "Cette macro ne peut être appelée que sur action d'une case à cocher!", vbExclamation, "CacherAfficherLigne"
Exit Sub 'sortir
 
'Afficher les autres erreurs avec les descriptions par défaut.
AutreErreur:
MsgBox "Erreur: " & Err.Number & vbCrLf & vbdescription, vbExclamation, "AfficherCacherLignes"
'Fin de macro
End Sub

A+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
18
Affichages
620
  • Question Question
Microsoft 365 Fonction si
Réponses
7
Affichages
223
Réponses
5
Affichages
358
Réponses
23
Affichages
682
Réponses
3
Affichages
212
wDog66
W
Retour