Cacher des lignes vides pour excel

Résolu
cs_benquoi Messages postés 3 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 9 avril 2009 - 8 avril 2009 à 16:45
cs_benquoi Messages postés 3 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 9 avril 2009 - 9 avril 2009 à 14:48
Bonjour,

N'ayant pas trouver de réponses complètes dans les forums, je vous expose mon problème.
Sur excel, j'ai crée un planning par mois qui va de la case E73à la case T480 (pour un mois).
Dans certaines cases de ce tableau, se trouve un nom,et, régulièrement, des lignes de formules qui me servent a compter le nombre de nom par colonnes.
Quand j'ai terminé ce planning, je souhaite cacher les lignes vides de ce tableau par macro (vba6.3).
cela fonctionne pour les lignes de noms, mais les lignes de formules restent affichées méme si la valeur est 0.
voici ma macro:

Dim Plage As Range, Lign As Range, colon As Range
    Set Plage = Range("E73:T480")
    For Each Lign In Plage.Rows

        If Application.CountA(Lign) = 0 Then
            
            Lign.SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True

        End If
    Next Lign

merci d'avance pour votre aide

4 réponses

cs_benquoi Messages postés 3 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 9 avril 2009
9 avril 2009 à 14:48
Merci à vous deux pour votre aide,

la réponse de jack ma fait changer ma facon de penser moncode.
j'ai créer une colonne qui fait la somme des mots de chaque ligne (de texte ou de resultat de formules), et si le resultat est égale à zéro, cela cache la ligne.
voici le code final.

Dim Plage As Range

'colonne résultat de la somme de mots par ligne
    Set Plage = Range("E73:E520")
    For Each cell In Plage.SpecialCells(xlCellTypeFormulas)

'si le réultat est egal a zéro, cache la ligne        If cell.Value 0 Then cell.EntireRow.Hidden True
           
       
    Next cell
3
cnt Messages postés 219 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 20 décembre 2010 1
8 avril 2009 à 17:45
Salut,

Je viens d'essayer cela chez moi et me semble-t-il, une seule ligne de code permet de masquer un type de cellules particulières pour l'ensemble d'une feuille.
Ici pour ton cas, la bonne constante est "xlCellTypeFormulas"

CelluleQuelconque.SpecialCells(xlCellTypeFormulas).EntireRow.Hidden = True

A suivre
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 avril 2009 à 18:05
Salut
"Lign" et "colon" ne devraient-ils pas être dimensionnés comme des cellules et pas des Ranges !
(ou, au pire, As Object)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_benquoi Messages postés 3 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 9 avril 2009
9 avril 2009 à 10:25
merci pour ta réponse,
j avais déja essayé avec xlCellTypeFormulas,
 j ai tout de méme remplacé ma ligne:
Lign.SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True (qui ne fonctionne que pour les lignes de texte vide)
par: Lign.SpecialCells(xlCellTypeFormulas).EntireRow.Hidden = True, qui me provoque le message: "pas de cellules correspondantes"
0
Rejoignez-nous