Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

masquer la ligne si T=0

21 réponses
Avatar
pellet15
Bonjour a tous

Je voudrais masquer la ligne 2 quand la cellule "T2" =3D0
et cela pour les ligne 3 de cellule "T3" =3D0

ainsi de suite jusqu=E2=80=99=C3=A0 la ligne 10



Merci

10 réponses

1 2 3
Avatar
MichD
Le 09/févr./2019 à 06:21, Jacquouille a écrit :
Bonjour Denis,
Pourquoi cette ligne:
      Else
     C.EntireRow.Hidden = False


Si la valeur de la cellule qui est retournée par une formule n'est plus
0, le demandeur demande d'afficher la ligne.
MichD
Avatar
Jacquouille
Désolé,je n'avais pas retenu cette partie de la question.
Mais, puisque on ne masque que les valeur = 0, forcément si c'est pas 0,
alors elle reste affichée...
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD" a écrit dans le message de groupe de discussion :
q3mfp3$1scb$
Le 09/févr./2019 à 06:21, Jacquouille a écrit :
Bonjour Denis,
Pourquoi cette ligne:
Else
C.EntireRow.Hidden = False


Si la valeur de la cellule qui est retournée par une formule n'est plus
0, le demandeur demande d'afficher la ligne.
MichD
Avatar
MichD
Le 09/févr./2019 à 07:35, Jacquouille a écrit :
Désolé,je n'avais pas retenu cette partie de la question.
Mais, puisque on ne masque que les valeur = 0, forcément si c'est pas 0,
alors elle reste affichée...

Le résultat peut-être 0 = ligne masquée
Si le résultat de la formule est différent de 0, comment fais-tu pour
afficher la ligne?
MichD
Avatar
Jacquouille
Ben, au départ, toutes les lignes ne sont-elles pas affichées, SAUF si Tx=0.
non?
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD" a écrit dans le message de groupe de discussion :
Le 09/févr./2019 à 07:35, Jacquouille a écrit :
Désolé,je n'avais pas retenu cette partie de la question.
Mais, puisque on ne masque que les valeur = 0, forcément si c'est pas 0,
alors elle reste affichée...

Le résultat peut-être 0 = ligne masquée
Si le résultat de la formule est différent de 0, comment fais-tu pour
afficher la ligne?
MichD
Avatar
MichD
Le 09/févr./2019 à 08:49, Jacquouille a écrit :
Ben, au départ, toutes les lignes ne sont-elles pas affichées, SAUF si
Tx=0. non?

Une formule peut retourner tantôt 0 tantôt une autre valeur. Ce n'est
pas parce que la formule retourne 0 et que la ligne se masque, qu'elle
ne peut pas afficher à un autre moment une autre valeur!
MichD
Avatar
Jacquouille
Tu es en train de me dire que s'il y a changement de valeur, il y a recalcul
et que la ligne doit à nouveau être affichée, puisqu'elle était masquée.
OUF..
Je n'avais pas prévu cela. Mon neurone devient lent. -))
Merci
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD" a écrit dans le message de groupe de discussion :
Le 09/févr./2019 à 08:49, Jacquouille a écrit :
Ben, au départ, toutes les lignes ne sont-elles pas affichées, SAUF si
Tx=0. non?

Une formule peut retourner tantôt 0 tantôt une autre valeur. Ce n'est
pas parce que la formule retourne 0 et que la ligne se masque, qu'elle
ne peut pas afficher à un autre moment une autre valeur!
MichD
Avatar
pellet15
Le vendredi 8 février 2019 17:18:12 UTC-5, MichD a écrit :
Le 08/févr./2019 à 16:04, pellet15 a écrit :
=SI(ESTVIDE($A2);0;(T17))
=SI(ESTVIDE($A3);0;(T90))
=SI(ESTVIDE($A4);0;(T161))
=SI(ESTVIDE($A5);0;(T232))
=SI(ESTVIDE($A6);0;(T303))
=SI(ESTVIDE($A7);0;(T374))
=SI(ESTVIDE($A8);0;(T445))
=SI(ESTVIDE($A9);0;(T522))
=SI(ESTVIDE($A10);0;(T599))

À copier dans le module de la feuille :
'-----------------------------------
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
For Each C In Range("T2:T10")
If C <> "" Then
If C.Value = 0 Then
C.EntireRow.Hidden = True
Else
C.EntireRow.Hidden = False
End If
End If
Next
Application.EnableEvents = True
End Sub
'-----------------------------------
MichD

Ça fonction mais un peut trop !! :-)
ca me ralentie beaucoup
peut on lui faire exécuter tous les 20 recalcule (ou entée)
ou
l'exécuter a tous les 10 minute ?
merci
Avatar
Jacquouille
Bonsoir
Si tu changes la question à chaque fois, le R.O. va devenir fou.
Tu peux changer la macro de private sub en sub ordinaire commandée par un
bouton sur ta feuille
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"pellet15" a écrit dans le message de groupe de discussion :
Le vendredi 8 février 2019 17:18:12 UTC-5, MichD a écrit :
Le 08/févr./2019 à 16:04, pellet15 a écrit :
=SI(ESTVIDE($A2);0;(T17))
=SI(ESTVIDE($A3);0;(T90))
=SI(ESTVIDE($A4);0;(T161))
=SI(ESTVIDE($A5);0;(T232))
=SI(ESTVIDE($A6);0;(T303))
=SI(ESTVIDE($A7);0;(T374))
=SI(ESTVIDE($A8);0;(T445))
=SI(ESTVIDE($A9);0;(T522))
=SI(ESTVIDE($A10);0;(T599))

À copier dans le module de la feuille :
'-----------------------------------
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
For Each C In Range("T2:T10")
If C <> "" Then
If C.Value = 0 Then
C.EntireRow.Hidden = True
Else
C.EntireRow.Hidden = False
End If
End If
Next
Application.EnableEvents = True
End Sub
'-----------------------------------
MichD

Ça fonction mais un peut trop !! :-)
ca me ralentie beaucoup
peut on lui faire exécuter tous les 20 recalcule (ou entée)
ou
l'exécuter a tous les 10 minute ?
merci
Avatar
MichD
Voici un fichier exemple. Dans ce dernier, il y a du code dans le
ThisWorkbook et dans le module1. Attention, tu peux déterminer toi-même
le temps écoulé entre chaque mise à jour. Il est essentiel que tu
modifies le nom de l'onglet de la feuille où sont tes données.
Lorsque tu ouvres ton classeur, la procédure s'enclenche automatiquement
et elle s'arrête aussi automatiquement à chaque fois qu'un autre
classeur devient le fichier actif. Elle s'applique à nouveau dès que ton
classeur devient le fichier actif.
Tu dois reproduire ce code dans ton fichier. Si l'index du module est
différent de 1 dans le nom "module1", tu dois adapter le nom dans les
procédures.
https://www.cjoint.com/c/IBklJRz8bb1
MichD
Avatar
MichD
Retiens ce classeur. Il y a une petite coquille dans l'autre!
https://www.cjoint.com/c/IBkmK3uddO1
MichD
1 2 3