OVH Cloud OVH Cloud

Filtre élaboré en VBA

4 réponses
Avatar
Ermam
Je souhaite automatiser la réalisation d'un filtre élaboré en le faisant en
VBA. Je me suis servi de l'enregistreur de macro mais je bute sur la façon
de pouvoir
la cellule d'arrivée (J1039).

Sheets("PHI").Range("J1:J1039").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets("PHI").Range("J1:J1039"),
CopyToRange:=Range("O2"), _
Unique:=True

En effet cette cellule est variable car j'alimente ce fichier tous les
semaines et je voudrais prendre en compte systématiquement la dernière
cellule remplie (sachant qu'il n'y a pas de cellule vide entre J1 et la
dernière remplie)

Merci pour votre aide

4 réponses

Avatar
j
la ligne de la dern cellule de jj est à
range("j:j").cells.find("*",,,,,xlprevious).row

(find cherche la première cellule non vide (contenant quelquechose
représenté par le joker *) en partant de j1 et en allant vers le haut
(xlprevious), ce qui revient à dire en partant du bas puisqu'il n'y a rien
au dessus de j1...
(clair comme du jus de boudin, non ?)


http://jacxl.free.fr/



"Ermam" a écrit dans le message de news:
3fb7d68d$0$251$
Je souhaite automatiser la réalisation d'un filtre élaboré en le faisant
en

VBA. Je me suis servi de l'enregistreur de macro mais je bute sur la façon
de pouvoir
la cellule d'arrivée (J1039).

Sheets("PHI").Range("J1:J1039").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets("PHI").Range("J1:J1039"),
CopyToRange:=Range("O2"), _
Unique:=True

En effet cette cellule est variable car j'alimente ce fichier tous les
semaines et je voudrais prendre en compte systématiquement la dernière
cellule remplie (sachant qu'il n'y a pas de cellule vide entre J1 et la
dernière remplie)

Merci pour votre aide




Avatar
Balain
Bonsoir,

J'ai une petite préférence pour :
Range("J1", Range("J1").End(xlDown))
dans ce cas où il n'y a aps de cellules vides dans la colonne.

Balain


"" a écrit dans le message de
news:
la ligne de la dern cellule de jj est à
range("j:j").cells.find("*",,,,,xlprevious).row

(find cherche la première cellule non vide (contenant quelquechose
représenté par le joker *) en partant de j1 et en allant vers le haut
(xlprevious), ce qui revient à dire en partant du bas puisqu'il n'y a rien
au dessus de j1...
(clair comme du jus de boudin, non ?)


http://jacxl.free.fr/



"Ermam" a écrit dans le message de news:
3fb7d68d$0$251$
Je souhaite automatiser la réalisation d'un filtre élaboré en le faisant
en

VBA. Je me suis servi de l'enregistreur de macro mais je bute sur la
façon


de pouvoir
la cellule d'arrivée (J1039).

Sheets("PHI").Range("J1:J1039").AdvancedFilter Action:=xlFilterCopy,
_


CriteriaRange:=Sheets("PHI").Range("J1:J1039"),
CopyToRange:=Range("O2"), _
Unique:=True

En effet cette cellule est variable car j'alimente ce fichier tous les
semaines et je voudrais prendre en compte systématiquement la dernière
cellule remplie (sachant qu'il n'y a pas de cellule vide entre J1 et la
dernière remplie)

Merci pour votre aide








Avatar
AV
J'ai une petite préférence pour :
Range("J1", Range("J1").End(xlDown))
dans ce cas où il n'y a aps de cellules vides dans la colonne.


Au cas ou...mieux vaut "l'attrapper par dessous" :

Range("J1", [J65536].End(3))

AV

Avatar
Ermam
Je te remercie pour ta réponse et j'ai donc le choix entre la solution de
et toi

Merci

"AV" a écrit dans le message de
news:
J'ai une petite préférence pour :
Range("J1", Range("J1").End(xlDown))
dans ce cas où il n'y a aps de cellules vides dans la colonne.


Au cas ou...mieux vaut "l'attrapper par dessous" :

Range("J1", [J65536].End(3))

AV