OVH Cloud OVH Cloud

Filtre élaboré (suite)

12 réponses
Avatar
petibonvm
re-bonjour,

suite à la contribution de AV, j'ai résolu mon pb de filtre élaboré.

mais j'ai un effet parasite que je n'arrive pas à supprimer : TOUTES les
lignes vides après la fin des données sont sélectionnées ???

Si l'un de vous a une idée ... voici le fichier
http://cjoint.com/?mskcwhxjCM


Merci d'avance pour votre aide

10 réponses

1 2
Avatar
AV
Perso je comprends pas quelles lignes tu veux supprimer ...

AV
Avatar
petibonvm
"AV" a écrit dans le message de
news:
Perso je comprends pas quelles lignes tu veux supprimer ...

AV

Oui, je me suis mal exprimé...

Ce que je ne comprends pas c'est pourquoi les lignes vides après les
data sont sélectionnées.

Avatar
docm
Bonjour.

C'est parce que le tri s'applique à toute la colonne dans la commande
suivante:
Columns("C:C").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range
_
(R), Unique:úlse

Si tu appliques le tri à une plus petite sélection, le tri ne s'appliquera
qu'à cette sélection:
Range("C1:C13").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range
_
(R), Unique:úlse

Sous toutes réserves.

"petibonvm" wrote in message
news:41c402fe$0$7807$

"AV" a écrit dans le message de
news:
Perso je comprends pas quelles lignes tu veux supprimer ...

AV

Oui, je me suis mal exprimé...

Ce que je ne comprends pas c'est pourquoi les lignes vides après les
data sont sélectionnées.




Avatar
petibonvm
"docm" a écrit dans le message de
news:
Bonjour.

C'est parce que le tri s'applique à toute la colonne dans la commande
suivante:
Columns("C:C").AdvancedFilter Action:=xlFilterInPlace,
CriteriaRange:=Range

_
(R), Unique:úlse

Si tu appliques le tri à une plus petite sélection, le tri ne
s'appliquera

qu'à cette sélection:
Range("C1:C13").AdvancedFilter Action:=xlFilterInPlace,
CriteriaRange:=Range

_
(R), Unique:úlse

Sous toutes réserves.
j'y avais bien pensé, mais ça ne marche pas, VBA renvoit une erreur

d'exécution 1004.

Avatar
docm
Il faut que la liste se trouve sur la feuille active
Sheets("Feuil1").Activate
avant d'effectuer la commande de tri.


Sous toutes réserves.


j'y avais bien pensé, mais ça ne marche pas, VBA renvoit une erreur
d'exécution 1004.



Avatar
petibonvm
"docm" a écrit dans le message de
news:
Il faut que la liste se trouve sur la feuille active
Sheets("Feuil1").Activate
avant d'effectuer la commande de tri.

j'y avais bien pensé, mais ça ne marche pas, VBA renvoit une erreur
d'exécution 1004.

çé pas ça, Je n'ai qu'une feuille dans le classeur...




Avatar
AV
Avec le fichier joint, si j'exécute la macro "Flitre_élaboré", la plage
sélectionnée après filtre est [C2] ce qui parait absolument logique par rapport
l'instruction contenue dans ton code "Range("C2").Select"
En bref, je ne vois pas où il peut y avoir problème...(XL2000)

AV
Avatar
petibonvm
"AV" a écrit dans le message de
news:
Avec le fichier joint, si j'exécute la macro "Flitre_élaboré", la
plage

sélectionnée après filtre est [C2] ce qui parait absolument logique
par rapport

l'instruction contenue dans ton code "Range("C2").Select"
En bref, je ne vois pas où il peut y avoir problème...(XL2000)

AV
Merci pour le test, je suis en Excel97, je vais voir si le pb veint de

là ....

Avatar
AV
Merci pour le test, je suis en Excel97, je vais voir si le pb veint de


Ok pour le problème et XL97

Remplacer :
Range("C2").Select
Columns("C:C").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range _
(R), Unique:úlse

par :
Range("C1:C" & [C65536].End(3).Row).AdvancedFilter _
Action:=xlFilterInPlace, CriteriaRange:=Range(R), Unique:úlse

PS : il est fortement souhaitable que ton tableau soit "indépendant" de ta zone
de critères (que tu devrais mettre dans une autre feuille)

AV

Avatar
petibonvm
NIKEL !!!!!!!

si on était plus prêt je te paierai un coup ......

Si j'abuse pas trop, je ne comprend pas pourquoi lorsque je remplace le
ET par un OU (en D2) ça ne renvoit pas le bon résultat ?

Encore Merci
1 2