XL 2016 Masquer une ligne ou une colonne en fonction de la valeur d'une cellule...

Axos

XLDnaute Nouveau
Bonjour les ami(e)s!

Je cherche à savoir comment masquer une ligne ou une colonne si une cellule est égale à la valeur 0.

Exemple :
1er cas :
B2=0 donc la ligne 2 serait masquée ;
2ème cas :
B2=0 donc la colonne B serait masquée.

Qui aurait la solution s'il vous plaît? Je pense que cela se code en vba mais je ne sais pas comment faire!

Merci les ami(e)s!

Axos.
 

Axos

XLDnaute Nouveau
Bonjour les amis!

J'ai tapé ce code sachant que je ne veux masquer que les lignes pour lesquelles la valeur inscrite dans les cellules B9 à B23 est égale à 0. Dans mon tableau (feuille "Prévisions"), c'est bien le cas mais les lignes ne sont pas masquées.

Sub Test()
Dim c As Range
For Each c In [B9:B23]
If CStr(c) = "0" Then c.Rows.Hidden = True:
End Sub

Quelqu'un peut-il m'aider à résoudre cette difficulté ?

D'avance, merci de vos réponses.

Axos.
 

Pièces jointes

  • Fiche de suivi projet voyage sortie.xlsm
    176.8 KB · Affichages: 5

Axos

XLDnaute Nouveau
Merci JHA!

Mais je ne veux pas qu'elles soient affichées via un bouton. Je souhaite juste qu'elles n'apparaissent pas lorsque la cellule de la colonne B est à 0.

Peux-tu m'aider à cela?

D'avance, merci à toi!

Axos.
 

job75

XLDnaute Barbatruc
Bonsoir Axos,
Donc si on peut le faire sans bouton, automatiquement, je suis preneur...
S'agissant de formules on peut utiliser une macro Worksheet_Calculate :
VB:
Private Sub Worksheet_Calculate()
Dim c As Range
Application.EnableEvents = False 'désactive les évènements
For Each c In [B9:B23]
    c.Rows.Hidden = CStr(c) = "0"
Next
Application.EnableEvents = True 'réactive les évènements
End Sub
Avec toutes les formules en B9:B23 renvoyant zéro leurs lignes sont masquées.

Nota : sans les Application.EnableEvents les masquages/affichages créent l'évènement Calculate.

A+
 

Pièces jointes

  • Fiche de suivi projet voyage sortie.xlsm
    180.8 KB · Affichages: 5

Axos

XLDnaute Nouveau
Job75:

Merci à toi! C'est exactement ce que je veux pour le premier tableau. Mais je veux le faire aussi pour les deux tableaux suivants sur les cellules suivantes :

F38 à F52 et F59 à F73

Or, j'ai copié deux fois le code pour cela en modifiant juste les cellules concernées et les macros plantent.

Peux-tu m'aider à saisir ce qui m'échappe?

D'avance, je te remercie.

Axos.
 

job75

XLDnaute Barbatruc
Bonjour Axos,
Mais je veux le faire aussi pour les deux tableaux suivants sur les cellules suivantes :

F38 à F52 et F59 à F73
Sur le fichier que j'ai joint ce ne serait pas plutôt B29 à B43 et B51 à B65 ?
VB:
Private Sub Worksheet_Calculate()
Dim c As Range
Application.EnableEvents = False 'désactive les évènements
For Each c In [B9:B23,B29:B43,B51:B65]
    c.Rows.Hidden = CStr(c) = "0"
Next
Application.EnableEvents = True 'réactive les évènements
End Sub
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 108
Messages
2 085 375
Membres
102 876
dernier inscrit
BouteilleMan