Masquer une ligne en fonction d'une cellule

Résolu
Villette54 Messages postés 300 Date d'inscription   Statut Membre Dernière intervention   -  
 bruillois -
Bonjour,

J'aurais aimé savoir s'il était possible de créer une macro (activable via un bouton) qui masque automatiquement les lignes pour lesquels la valeur dans la colonne A est "vide" (Aucune n'est vraiment vide, puisqu'elles ont toutes des formules mais si la formule n'est pas utilisée, elle affiche "")

Merci d'avance
A voir également:

1 réponse

melanie1324 Messages postés 1561 Statut Membre 155
 
Bonjour,

c'est possible mais le plus simple ne serait-il pas d'utiliser un filtre en n'affichant que les lignes qui ont des valeurs sur la colonne A??

en tout cas si tu veux une macro :

sub masquer

i=2 'la macro commence à la ligne 2, si la première ligne est 3, mets : i=3

do while cells(i,1).hasformula = true 'tant que le cellule de la ligne i et colonne 1 contient une formule
if cells(i,1) = "" then 'si la valeur de la cellule de ligne i et de la colonne 1 = "" alors
Rows(i).EntireRow.Hidden = True 'on cache la ligne

else ' sinon
Rows(i).EntireRow.Hidden = false 'on affiche la ligne
end if
i=i+1 'on passe à la ligne suivante
loop
end sub
0
Villette54 Messages postés 300 Date d'inscription   Statut Membre Dernière intervention   28
 
Ta macro fonctionne parfaitement,

Je te remercie pour ton aide.

Bonne journée :)

PS : Merci pour les 'commentaires qui m'aide à mieux comprendre et donc à progresser. En revanche, peux-tu me dire ce que signifie le "loop" à la fin ? Merci.
0
melanie1324 Messages postés 1561 Statut Membre 155
 
do while est une boucle qui ne va pas sans loop
do while est le début de la boucle
loop est la fin de la boucle.

c'est comme quand tu écris sub et end sub.
0
Villette54 Messages postés 300 Date d'inscription   Statut Membre Dernière intervention   28
 
Ok merci pour l'info !
0
bruillois
 
Bonjour, cette macro est elle valable pour excel 2007? car pour moi elle ne fonctionne pas
0