Cacher les lignes contenant des 0 et vides

Bonjour, je recherche le moyen de cacher des lignes contenant des "0" et des case vides dans une colonne. C'est facile dans excel, on active le filtre et on décoche le "0" et la case vide mais en VBA c'est totalement le contraire. Il faut lui dire quels sont les chiffres que l'on veut garder. Mon problème est que les chiffres peuvent être à l'infini donc impossible de mettre tout les chiffres dans la section Criteria1= Array...

voici ce que fait la commande excel traduit en vba:

Range("F4:F45").Select

Selection.AutoFilter

ActiveSheet.Range("$F$4:$F$45").AutoFilter Field:=1, Criteria1:=Array("1", _

"2", "3", "4", "8", "9"), Operator:=xlFilterValues

donc, dans la rangé "F", de la cellule 5 à 45, j'ai les chiffres 0,1,2,3,4,8,et 9 et des cellules vides. J'ai pensé à faire une formule genre:

si dans les cellules de f5 à f45 j'ai 0, cache les lignes mais je n'y arrive pas du tout avec un range. Et je ne veux pas le faire ligne par ligne. Je voudrais les sélectionner en bloque. Ligne par ligne, c'est trop long car mon fichier a plusieurs centaine de pages.

Si quelqu'un a une solution à se problème, je serais bien content.

merci pour votre aide.

Bonjour,

avec un fichier se serait quand même beaucoup plus facile de te répondre.

Voilà le fichier. merci

32classeur1.xlsx (12.18 Ko)

Bonjour,

Une proposition

68classeur1-1.xlsm (23.29 Ko)

A+

bonjour

alors pour les colonnes ordinaires format personnalisé standard;std;""

et pour les celle des dates ; format perso jj/mm/aaaa;jj/mm/aaaa;""

cordialement

Bonjour, merci pour vos réponse et surtout le temps, qui fut très cours pour répondre. La solution à Frangy fait exactement ce que je veux mais si je pouvais sélectionner en bloc toutes les cases comprenant des 0 et des vides, ce serait super car comme je l'ai écris, j'ai plusieurs pages des fois plus de cent à cacher et c'est long, beaucoup trop long. J'ai réussit avec cette commande pour les cellules vides mais ça ne fonctionne pas pour les cellules avec des 0. Il faudrait que je remplace: plg.specialcells(xlcelltypeblanks) par je ne sais quoi qui sélectionnerait tout les 0.

Dim Cel As Range

Set Plg = Range("f4:f45")

If Application.CountA(Plg) = Plg.Rows.count Then Exit Sub

Set Plg2 = Plg.SpecialCells(xlCellTypeBlanks)

Plg2.Select

Selection.EntireRow.Hidden = True

enfin, si quelqu'un a une idée...

un gros merci pour votre aide.

Bonjour,

Si j'ai bien compris :

Selection.AutoFilter Field:=4, Criteria1:="<>0", Operator:=xlAnd, Criteria2:="<>"

eric

Merci Eriiic, en fin de compte, j'ai pris ta méthode en la modifiant un peu et en l'envoyant à la fin de la macro et ça fonctionne très bien.

merci à tous pour votre aide.

Rechercher des sujets similaires à "cacher lignes contenant vides"