Cacher / montrer ligne de façon conditionnelle

Résolu
tout-venant Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
tout-venant Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour !
Je tente un peu de comprendre le fonctionnement du VBA et des macros mais ça me semble assez dense..

Dans l'idée, je voudrais qu'une ligne se cache/se montre selon si une case est cochée ou non. J'ai vu que je pouvais afficher dans une 3eme case "vrai" ou "faux" selon le cochage de ma case, et je me dis que c'est un premier pas. Par contre, j'ai trouvé des lignes de code du type EntireRow.Hidden = True, mais j'ai essayé d'adapter à mon fichier et ça ne marche pas. En fait je ne comprend pas à quel moment le code s'exécute, car quand j'insère ça dans visualiser le code :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Boolean
c = B52
B47.EntireRow.Hidden = c
End Sub

j'ai beau cocher/décocher rien ne se passe. J'imagine que ma syntaxe est toute fausse aussi, c'est un peu à l'instinct je ne sais pas coder..

Si quelqu'un peut m'aider, ce serait gentil !

Merci d'avance,

Avec force,
tout-venant

2 réponses

  1. melanie1324 Messages postés 1561 Statut Membre 156
     
    Bonjour,

    Voici pour mieux comprendre, si tu ne saisies pas, envoies ton fichier sur cjoint.com :

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Boolean

    if target.column = 3 'si tu fais une modification sur la colonne 3 (là ou il y a tes cases à cocher
    if cells(target.row,3) = true ' si la cellule située sur la ligne que tu es en train de modifier et colonne 3 = vrai alors

    rows(47).EntireRow.Hidden = true 'alors ta ligne 47 est cachée
    else
    rows(47).EntireRow.Hidden = false 'alors ta ligne 47 n'est pas cachée
    end if
    end if
    End Sub
    0
  2. tout-venant Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
     
    Merci, du coup avec ça :

    Sub cacher()

    Rows("4:4").Select
    Selection.EntireRow.Hidden = Not Range("C6").Value

    End Sub

    ça marche et c'est réversible (C6 est la cellule dans laquelle s'affiche "vrai" ou "faux" selon le cochage)
    0