Cacher / montrer ligne de façon conditionnelle

Résolu/Fermé
tout-venant Messages postés 14 Date d'inscription lundi 29 juillet 2013 Statut Membre Dernière intervention 12 août 2013 - 29 juil. 2013 à 14:23
tout-venant Messages postés 14 Date d'inscription lundi 29 juillet 2013 Statut Membre Dernière intervention 12 août 2013 - 29 juil. 2013 à 19:47
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
A voir également:

2 réponses

melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
29 juil. 2013 à 15:44
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
tout-venant Messages postés 14 Date d'inscription lundi 29 juillet 2013 Statut Membre Dernière intervention 12 août 2013
29 juil. 2013 à 19:47
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