Sélection plage filtrée avec nb ligne variabl

MarctO -  
 melanie1324 -
Bonjour,
En utilisant VBA, je souhaite sélectionner une plage de cellule filtrée (par ex. "non vide") et aplliquer un fomrat particulier à ces cellules. J'arrive à reproduire cette fonction avec un fichier fixe (qui m'a servi à batir ma macro), mais dès que les cellules filtrées sont différentes et/ou le nombre total de ligne du fichier change, cela part en "sucette": Les valeurs des cellules ont été en registrés en dures dans la macro initiale... Il faudrait arriver à déclarer les cellules avec un variable (?).
Merci pour votre aide
A voir également:

3 réponses

melanie1324
 
Bonjour,

Tu peux faire une mise en forme conditionnelle que tu appliques à toute ta colonne.
Par ex, si la valeur de ta cellule = "", alors fonds blanc sinon fonds rouge. (format, mise en forme conditionnelle)

Pour le faire, je te conseille de le faire dans une première cellule puis de revenir sur ta condition et d'enlever les $ qui s'y trouvent.
Ensuite, copie ton format et colle le sur toute ta colonne.
0
MarctO
 
Bonjour Mélanie, et merci pour ta rapide réponse.
Je ne souhaite pas passer par les formes conditionnelles (trop limitées et fastidieux si je souhaite formater toutes une ligne en fonction d'une valuer.
Je souhaite reproduire simplement ce que j'arrive à faire dans XL, c.a.d. filter selon une valeur et changer le format de toute la ligne. J'arrive à reporduire cela en macro, mais dès que mon nombre de ligne totale du fichier change, le formatage va trop bas (s'il y a moins de lignes) ou s'arrête trop haut (si plus de lignes).
En résumé, lorsque je cré ma macro, les valeurs des zones à formater restent écrites en dur, et les dernières lignes du fichier ne sont pas prises en compte.
Je ne suis pas sur d'avoir étré très clair, n'hésites pas me questionner pour + d'infos.
Marc
0
melanie1324
 
Bonjour,

je te suggère alors de rajouter une boucle dans ta macro :

i=1
j=1
cells(i,j).select
do while selection <> ""
'tu mets ta macro

i=i+1
loop

En espérant que cela peut t'aider.
Il faut appliquer cela sur la colonne ou tu as tout le temps une valeur sinon ca ne marchera pas.
0