masquer des lignes avec une condition

jpm2169

XLDnaute Junior
Bonjour,

Je viens vous voir ce soir parce que je suis à la recherche d'une solution pour masquer des lignes.

Dans une feuille, j'ai plusieurs tableaux.
Dans chaque tableau, j'ai un total en colonne D depuis la ligne 25 jusqu'à la ligne 50 qui peut être égale à 0.

Je voudrais que la ligne dont le total en colonne D est égale à 0 se maque, ou s'affiche après modification du total si celui ci devient différent de 0.
Comment faire ?

Merci pour votre aide.

(J'ai lu bien des post qui traite du masquage de lignes mais les essais que j'ai réalisé grâce à ces aides n'ont pas abouti car je n'ai sans doute pas réussi à adapter.)
 

jpm2169

XLDnaute Junior
Re : masquer des lignes avec une condition

Guillaumega à dit:
QUOTE]

Merci pour ta réponse mais cela ne masque pas les ligne à 0. J'essaie de voir avec un code 1 ou "" en fonction du total sur chaque ligne mais je n'arrive à rien.

J'ai du mal avec les "commandbutton"

J'essaie ça mais ça ne fonctionne pas :

Private Sub CommandButton1_Click()
For i = 2 To Range("L65536").End(xlUp).Row
If Now() - Cells(i, 1) * 1 = 0 Then
Rows(CStr(i) & ":" & CStr(i)).Select
Selection.EntireRow.Hidden = True
End If
Next i
End Sub
 

jpm2169

XLDnaute Junior
Re : masquer des lignes avec une condition

jpm2169 à dit:
J'essaie ça mais ça ne fonctionne pas :

Private Sub CommandButton1_Click()
For i = 2 To Range("L65536").End(xlUp).Row
If Now() - Cells(i, 1) * 1 = 0 Then
Rows(CStr(i) & ":" & CStr(i)).Select
Selection.EntireRow.Hidden = True
End If
Next i
End Sub

Par contre, ça , ça fonctionne :
Private Sub CommandButton1_Click()

Dim cel As Range
For Each cel In Range("L:L")
If cel = "0" Then
cel.EntireRow.Hidden = True
End If
Next
End Sub

Mais lorsque je modifie et que la valeur devient différente de 0, j'ai beau cliquer sur le bouton de commande, les lignes masquées lors du premier résultat (celui égale à 0), ne réapparaissent pas.
 

jpm2169

XLDnaute Junior
Re : masquer des lignes avec une condition

jpm2169 à dit:
Par contre, ça , ça fonctionne :
Private Sub CommandButton1_Click()

Dim cel As Range
For Each cel In Range("L:L")
If cel = "0" Then
cel.EntireRow.Hidden = True
End If
Next
End Sub

Mais lorsque je modifie et que la valeur devient différente de 0, j'ai beau cliquer sur le bouton de commande, les lignes masquées lors du premier résultat (celui égale à 0), ne réapparaissent pas.


J'ai oublié de dire que la colonne retenue est maintenant la colonne L et que mes tableaux débutent à la ligne 17.

Pour réafficher les lignes avant remasquage des ligne à 0, j'ai fait ça :

Private Sub CommandButton1_Click()

Rows("17:17").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWindow.SmallScroll Down:=6
Selection.EntireRow.Hidden = False

For i = 19 To Range("a65536").End(xlUp).Row
If Now() - Cells(i, 1) * 1 = 0 Then
Rows(CStr(i) & ":" & CStr(i)).Select
Selection.EntireRow.Hidden = True
End If
Next i
End Sub

Mais ça ne fonctionne pas. Pourquoi ?

Merci
 

Guillaumega

XLDnaute Impliqué
Re : masquer des lignes avec une condition

jpm2169 à dit:
Par contre, ça , ça fonctionne :
Private Sub CommandButton1_Click()

Dim cel As Range
For Each cel In Range("L:L")
If cel = "0" Then
cel.EntireRow.Hidden = True
End If
Next
End Sub

Mais lorsque je modifie et que la valeur devient différente de 0, j'ai beau cliquer sur le bouton de commande, les lignes masquées lors du premier résultat (celui égale à 0), ne réapparaissent pas.



J'ai pourtant l'impression que ça, ça fonctionne... Non???


Sub alacon()
Dim cel As Range
For Each cel In Range("L:L")
If cel = "0" Then
cel.EntireRow.Hidden = True
ElseIf cel <> "0" Then
cel.EntireRow.Hidden = False
End If
Next
End Sub
 
Dernière édition:

jpm2169

XLDnaute Junior
Re : masquer des lignes avec une condition

Guillaumega à dit:
J'ai pourtant l'impression que ça, ça fonctionne... Non???


Sub alacon()
Dim cel As Range
For Each cel In Range("L:L")
If cel = "0" Then
cel.EntireRow.Hidden = True
ElseIf cel <> "0" Then
cel.EntireRow.Hidden = False
End If
Next
End Sub

Je sais pas, je vais essayer mais il est bizarre le nom du Sub...lol
j'ai fait comme ça :

Sub encoralacon()

Cells.Select
Selection.EntireRow.Hidden = False

Dim cel As Range
For Each cel In Range("L17:L65536")
If cel = "0" Then
cel.EntireRow.Hidden = True
End If
Next
End Sub


J'essaie la tienne.

Merci... Très sympas de ta part
 

Guillaumega

XLDnaute Impliqué
Re : masquer des lignes avec une condition

jpm2169 à dit:
Je sais pas, je vais essayer mais il est bizarre le nom du Sub...lol
j'ai fait comme ça :

Sub encoralacon()

Cells.Select
Selection.EntireRow.Hidden = False

Dim cel As Range
For Each cel In Range("L17:L65536")
If cel = "0" Then
cel.EntireRow.Hidden = True
End If
Next
End Sub


J'essaie la tienne.

Merci... Très sympas de ta part


Dis moi si la mienne fonctionne s'il te plait... mdr
 

Guillaumega

XLDnaute Impliqué
Re : masquer des lignes avec une condition

jpm2169 à dit:
Ben le probleme, c'est que ça va chercher jusqu'à la ligne 65536 tout ce qui est différent de 0 pour afficher. Je pense qu'il faut une autre condition mais laquelle ?

bah si tu travailles de la ligne L17 à L50, tu mets L17:L50 au lieu de L:L

Bah de toutes les facons je suis nul... Dommage ca aurait été champagne (première fois que j'aurai aidé en vba) lol
 

Discussions similaires

Statistiques des forums

Discussions
312 639
Messages
2 090 406
Membres
104 525
dernier inscrit
michael.frossard