masquer ligne si celulle en h est vide

pitchoune85

XLDnaute Junior
bonjour
je veux masque des lignes selon des conditions variable
par exemple masquer la ligne 12 si s12 est = 0 (car il y a des formules )
la macro s'éxécute par un bouton masquer puis afficher tout
un autre bouton masque la ligne si cette fois ci s'est la colonne o qui est égale à zéro

j ai la macro suivante :
Sub Afficher_MO()
Application.ScreenUpdating = False
For i = [A65536].End(xlUp).Row To 6 Step -1
If Cells(i, 19) = 0 Then Rows(i).EntireRow.Hidden = True
Next i
Application.ScreenUpdating = True
End Sub

que j ai trouvé sur la forum
par contre elle est très longue a éxécuter
je débute en macro et commence à les comprendre mais pas toujours
ne sais pas ce que veux dire row to 6 step -1 : a quoi correspond le 6?
mon tableau fait toujours a1:s500
peut on sélectionner uniquemment ce tableau pour aller plus vite

merci pour vos explications
amicalement
 

Staple1600

XLDnaute Barbatruc
Re : masquer ligne si celulle en h est vide

Bonsoir


Tu peux aussi utiliser le filtre automatique (en VBA ou pas)

Exemple ci-dessus
Code:
Sub Macro1()
' Macro enregistrée le 13/08/2012 par Staple1600
Range("H1:H500").AutoFilter Field:=1, Criteria1:=">0", Operator:=xlAnd
End Sub

Et c'est très rapide.
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : masquer ligne si celulle en h est vide

Bonjour pitchoune85, Staple,

Le filtre automatique n'est pas fiable si la colonne à trier contient des nombres et des textes.

Alors avec le filtre avancé (élaboré) :

Code:
Sub Masque()
[IV2] = "=H2<>""""" 'variante "=NOT(ISBLANK(H2))"
Range("H1", [H65536].End(xlUp)).AdvancedFilter xlFilterInPlace, [IV1:IV2]
[IV2] = ""
End Sub

Sub AfficheTout()
On Error Resume Next
ActiveSheet.ShowAllData
End Sub
A+
 

Staple1600

XLDnaute Barbatruc
Re : masquer ligne si celulle en h est vide

Bonjour job75

Ce que contient la colonne à filtrer , on l'aurait su si on avait eu un fichier exemple sous la main ;)

En relisant la question, le demandeur parle de =0 mais pas de cellules vides au vrai sens du terme, non ?

PS: Si cette affirmation est toujours vraie
mon tableau fait toujours a1:s500
Pas besoin xlUp, ;).
 
Dernière édition:

pitchoune85

XLDnaute Junior
Re : masquer ligne si celulle en h est vide

bonjour
merci pour vos réponses
ci joint un extrait du fichier
comme j ai enlever des données, il va assez vite à exécuter mais dans mon tableau avec plus de 300 lignes, c'est plus long.
pouvez vous me redire à quoi correspond "Row To 6 Step -1"
merci

pour info, comment on change la police dans les commentaires (pour rendre les codes plus lisible)
 

Pièces jointes

  • extrait.xls
    549.5 KB · Affichages: 68
  • extrait.xls
    549.5 KB · Affichages: 69
  • extrait.xls
    549.5 KB · Affichages: 75

pitchoune85

XLDnaute Junior
Re : masquer ligne si celulle en h est vide

staple,
le tableau fait effectivement toujours "A1:S500"
dans les colonnes sur où se trouve les conditions que je souhaite vérifier pour afficher ou masquer, c'est des formules donc il faut effectivement prendre ne compte "0" et non pas "".
 

job75

XLDnaute Barbatruc
Re : masquer ligne si celulle en h est vide

Re,

Appliqués à la plage S1:S500, filtre automatique et filtre avancé fonctionnent très bien l'un et l'autre.

A+
 

Pièces jointes

  • Filtre auto(1).xls
    536.5 KB · Affichages: 65
  • Filtre auto(1).xls
    536.5 KB · Affichages: 56
  • Filtre auto(1).xls
    536.5 KB · Affichages: 62
  • Filtre avancé(1).xls
    541.5 KB · Affichages: 61
  • Filtre avancé(1).xls
    541.5 KB · Affichages: 64
  • Filtre avancé(1).xls
    541.5 KB · Affichages: 62

Staple1600

XLDnaute Barbatruc
Re : masquer ligne si celulle en h est vide

Re

pitchoune85
Essayer les codes, c'est bien, les comprendre c'est mieux ;)
Tu as remarqué que la macro filtrait sur la colonne H avec comme critère : >0

Je viens de tester manuellement le filtre automatique sur ta dernière PJ
et cela fonctionne parfaitement!
Donc le code VBA fonctionnera aussi :rolleyes:
 

Discussions similaires

Statistiques des forums

Discussions
312 506
Messages
2 089 126
Membres
104 040
dernier inscrit
pb91