Bonjour,
Connais-tu la syntaxe Cells ? Cela t'évitera de devoir avoir 2 variables pour la colonne :
1 2 3 4 5
| '--- syntaxe de Cells : ---
Cells(num_ligne, num_colonne)
'--- tu peux donc l'utiliser ainsi : ---
col_num = ActiveCell.Column
dern = Cells(Rows.Count, col_num).End(xlUp).Row |
Du coup, pour sélectionner une plage de cellules, tu peux faire ainsi :
Set plage = Range(Cells(2, col_num), Cells(dern, col_num))
Le UCase n'est pas vraiment nécessaire.
Pourquoi "w" & "2" et pas "w2" ?
Ta plage ne commence-t-elle pas en colonne A ? Pourquoi tu commences en colonne W ? Après Field, il faut mettre le n° de champ que tu veux filtrer. Si ta plage va de la colonne C à F, et que tu veux filtrer sur la colonne C, alors le n° de champ est 1 et pas 3.
Ta colonne est bien après la colonne W, du coup ?
Tu peux essayer ceci :
Range(Cells(2, 23), Cells(dern, col_num)).AutoFilter Field:=col_num - 23 + 1, Criteria1:=val_rech, Operator:=xlAnd
Partager