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
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 :
ef906628-0669-4538-8340-570905a99d2e@googlegroups.com...
Bonjour a tous
Je voudrais masquer la ligne 2 quand la cellule "T2" =0
et cela pour les ligne 3 de cellule "T3" =0
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 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
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
'-------------------
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
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
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 :
00b8caa6-8b78-ee3b-4113-5aa29296f72a@Hotmail.com...
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
'-------------------
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
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
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.
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
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
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 :
e8288a30-df1f-169d-3a29-52fb32f655a5@Hotmail.com...
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.
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 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
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
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
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
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
'---------------------------
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
À 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
'-----------------------------------
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
'-----------------------------------
À 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 vendredi 8 février 2019 17:18:12 UTC-5, MichD a écrit :
À 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
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
'-----------------------------------
À 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
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 :
À 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
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 :
9146267e-eb8b-87d2-5b0c-cb9525cc4257@Hotmail.com...
'-----------------------------------
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
'-----------------------------------
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 :
À 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