masquer la ligne si T=0

Le
pellet15
Bonjour a tous

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

ainsi de suite jusqu’à la ligne 10



Merci
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacquouille
Le #26508889
Bonjour,
Afin d'épargner un peu la boule de cristal du R.O. (répondeur officiel), je
me permets ceci:
Sub Masquer_ligne()
For n = 10 To 1 Step -1
If Range("T" & n).Value = 0 Then
Rows(n).Select
Selection.EntireRow.Hidden = True
End If
Next
End Sub
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"pellet15" a écrit dans le message de groupe de discussion :

Bonjour a tous
Je voudrais masquer la ligne 2 quand la cellule "T2" =0
et cela pour les ligne 3 de cellule "T3" =0
ainsi de suite jusqu’à la ligne 10

Merci
MichD
Le #26508901
Le 08/févr./2019 à 06:15, Jacquouille a écrit :
Sub Masquer_ligne()
For n = 10 To 1 Step -1
If Range("T" & n).Value = 0 Then
Rows(n).Select
Selection.EntireRow.Hidden = True
End If
Next
End Sub

Bonjour Jacquouille,
Ta procédure mais recours à la sélection des lignes avant de les supprimer.
'-------------------
Sub Masquer_ligne()
Dim N As Long
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille à adapter
For n = 10 To 1 Step -1
If .Range("T" & n).Value = 0 Then
.Range("T" & n).EntireRow.Hidden = True
End If
Next
End With
Application.ScreenUpdating = True
End Sub
'-------------------
MichD
Jacquouille
Le #26508906
Bonjour Denis,
Merci pour ce raccourci que j'oublie souvent.
On a pourtant suffisamment dit de ne pas employer le .select ET de déclarer
les variables !
Je me suis laissé attirer dans le piège de la ligne que l'on supprime, d'où
le step-1.
Je viens de tester. Dans le cas de "Masquer" et non "Supprimer", il n'y a
pas besoin de partir du bas.
Voici donc ce que je propose:
-----------------
Sub Masquer_lignes_bis()
Dim derL as long
Application.ScreenUpdating = False
derL = Cells(Rows.Count, 20).End(xlUp).Row 'des fois qu'il y aurait plus
que 10 lignes-- 20 = colonne T
For Each c In Range("T1:T" & derL) ' ou range("T2:T" & derL) .... si titre
de colonne
If c.Value = 0 Then
c.EntireRow.Hidden = True
End If
Next
Application.ScreenUpdating = True
End Sub
-----------------------------
C'est plus beau avec: Application.ScreenUpdating = False/True. ça fait
encore plus mystérieux -))
Merci pour ta correction.
Bonne fin de journée.
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD" a écrit dans le message de groupe de discussion :

Le 08/févr./2019 à 06:15, Jacquouille a écrit :
Sub Masquer_ligne()
For n = 10 To 1 Step -1
If Range("T" & n).Value = 0 Then
Rows(n).Select
Selection.EntireRow.Hidden = True
End If
Next
End Sub

Bonjour Jacquouille,
Ta procédure mais recours à la sélection des lignes avant de les supprimer.
'-------------------
Sub Masquer_ligne()
Dim N As Long
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille à adapter
For n = 10 To 1 Step -1
If .Range("T" & n).Value = 0 Then
.Range("T" & n).EntireRow.Hidden = True
End If
Next
End With
Application.ScreenUpdating = True
End Sub
'-------------------
MichD
MichD
Le #26508909
Si tu ne spécifies pas la feuille où l'action doit se dérouler, il y a
toujours la possibilité qu'un usager lance la macro alors qu'une autre
feuille est active.
Si tu ne désires pas spécifier la feuille, tu dois alors inscrire le
code dans le module de la feuille.
MichD
Jacquouille
Le #26508927
Tu as raison ... une fois de plus.
Merci
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD" a écrit dans le message de groupe de discussion :

Si tu ne spécifies pas la feuille où l'action doit se dérouler, il y a
toujours la possibilité qu'un usager lance la macro alors qu'une autre
feuille est active.
Si tu ne désires pas spécifier la feuille, tu dois alors inscrire le
code dans le module de la feuille.
MichD
pellet15
Le #26508930
Le vendredi 8 février 2019 08:18:38 UTC-5, MichD a écrit :
Le 08/févr./2019 à 06:15, Jacquouille a écrit :
Sub Masquer_ligne()
For n = 10 To 1 Step -1
If Range("T" & n).Value = 0 Then
Rows(n).Select
Selection.EntireRow.Hidden = True
End If
Next
End Sub

Bonjour Jacquouille,
Ta procédure mais recours à la sélection des lignes avant de les supprimer.
'-------------------
Sub Masquer_ligne()
Dim N As Long
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille à adapter
For n = 10 To 1 Step -1
If .Range("T" & n).Value = 0 Then
.Range("T" & n).EntireRow.Hidden = True
End If
Next
End With
Application.ScreenUpdating = True
End Sub
'-------------------
MichD


Bonjour MichD
avec ca va mais je voudrait que cela s'exécuter automatiquement
aussitôt que une cellule (dans colonne T ) est 0 ligne masquer
et apparaît si devient un nombre(>0) ligne visible.
-------------------------------------------------
Sub Masquer_ligne()
Dim N As Long
Application.ScreenUpdating = False
With Worksheets("Soumission") 'Nom feuille à adapter
For N = 10 To 1 Step -1
If .Range("T" & N).Value = 0 Then
.Range("T" & N).EntireRow.Hidden = True
End If
Next
End With
Application.ScreenUpdating = True
End Sub
-----------------------------------------------------
merci
MichD
Le #26508932
Si tu tapes la valeur 0 dans une cellule de la colonne T, la procédure
suivante va fonctionner. Si un 0 apparaît comme étant le résultat d'une
formule, cela ne fonctionnera pas. Donne-moi un exemple de ta formule...
Tu copies ceci dans le module de la feuille où l'action se déroule.
'---------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, C As Range
Set Rg = Intersect(Target, Range("T:T"))
Application.EnableEvents = False
If Not Rg Is Nothing Then
For Each C In Rg
If C.Value = 0 And IsNumeric(C.Value) Then
C.EntireRow.Hidden = True
Else
C.EntireRow.Hidden = False
End If
Next
End If
Application.EnableEvents = False
End Sub
'---------------------------
MichD
MichD
Le #26508934
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
pellet15
Le #26508936
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


Parfait
gros merci
Jacquouille
Le #26508948
Bonjour Denis,
Pourquoi cette ligne:
Else
C.EntireRow.Hidden = False

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 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
Publicité
Poster une réponse
Anonyme