Filtre élaboré sous Excel 2007, critère

Fermé
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 - 12 sept. 2008 à 23:14
 kat95 - 26 avril 2011 à 20:56
Bonjour,
Mon filtre élaboré dans une procédure fonctionne correctement sous Excel 2003:
Range("Global!Base_de_donnees").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("LiBasePlaq!Criteres"), CopyToRange:=Range("LiBasePlaq!Extraire"), _Unique:=False

Mais plus sous Excel 2007 au niveau du critère.

Pour par exemple critère : 123 ou 12.10.2007 tout fonctionne
Pour critère : >123 ou <>12.10.2007 (càd avec les opérateurs) j’obtiens aucune valeurs….
Le critère se trouve dans une cellule de la plage « LiBasePlaq!Criteres »
Merci de votre aide.

A voir également:

7 réponses

Bonjour, je pense avoir trouvé une solution, j'imagine que c'est un bug pour la version 2007... mais je ne parle que pour la date...
en fait le format de la cellule est bien une date type 12/02/2007.
dans la zone de critère, pour effectuer le filtre avancé, il faut bien saisir >12/02/2007 en temps normal et sur les versions antérieures !
sauf que : avant d'indiquer le signe '>' ou un autre signe, il faut transformer le format de la cellule en format standard, mais que dans la zone de critère. il s'affichera donc à la place de 12/02/2007 = 37663 (ce chiffre étant la codification d'excel pour repérer une date à partir de l'année 1900).
une fois le changement de format de cellule effecuté, on rajoute le signe dont on a besoin > ou < ou <> ou <= ou >=. on obtient donc dans la cellule >37663.
a partir de là, on peut lancer le filtre avancé et ça fonctionne... et sans modif de macro ou autre... !!
par contre, pour afficher toutes les lignes correspondantes au 12/07/2007, il n'y a rien besoin de faire, ça fonctionne nikel...

par contre, lorsqu'on utilise les fonctions de calculs =bdsomme(base;champs;zonecritère), la création de la zone de critère fonctionne très très bien sans modifier le format de la cellule. on reste à la saisie type >12/07/2007.

voilà.... j'y ai mis bien 40 min mais j'ai trouvé une solution en attendant de trouver mieux....
1
wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 242
12 sept. 2008 à 23:39
Bonjour

1 - as tu essayé sur 2007 de le faire manuellement ?
2 - as tu toujour sur 2007 recommancé les manip avec l'enregistreur de macro

personnelement, les filtres elabores sur les dates je les trouves penibles, j'utilise le format standard, avec les date en Format Entier

sur 2007 je n'ai pas encore essayé, mais sur 2002 je n'ai plus de problemes de cette maniere
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
13 sept. 2008 à 00:01
Bonsoir,
Merci, je vais essayer vos propositions demain.
Chose étrange que je viens de découvrir, si j'ouvre mon classeur en *.xls , dpnc version 2003 sous Excel 2007, tout fonctionne correctement. Cela foire avec le classeur en *.xlsx ou *xlsm uniquement.
Bonne fin de soirée.
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
13 sept. 2008 à 08:19
Bonjour Wilfried_42
Concernant vos propositions (j’ai essayé avec date, nombre ou texte):
1 - as tu essayé sur 2007 de le faire manuellement ? Fonctionne correctement.
2- as tu toujours sur 2007 recommencé les manip avec l'enregistreur de macro ? Oui pendant l’enregistrement cela fonctionne. Par contre lors de l’exécution de la macro, plus de filtrage pour les critère avec opérateur de comparaison.

Pour le travail avec les dates est certes un peut plus complexe mais fonctionne super bien chez moi.

Ou donc se cache la faute … !
0
wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 242
13 sept. 2008 à 09:27
re:

alors la : moi, je viens de faire le contraire, j'ai fait un classeur sur 2007 voici le fichier https://www.cjoint.com/?jnjtM3Fjvc
ca marche tres bien

ensuite je l'ai enregistré en format 97 / 2003, je l'ai chargé sans probleme avec excel 2002
et devine,
ca marche super, je n'ai pas modifier la macro que voici
    Sheets("Feuil2").Cells.Clear
    Sheets("Feuil1").Range("base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("Feuil1").Range( _
        "crit"), CopyToRange:=Sheets("Feuil2").Range("A1"), Unique:=False


pas une seule difference entre les deux codes
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
13 sept. 2008 à 10:59
Bonjour,
Merci pour l'exemple très intéressent.
De mon côté le critère se trouve directement dans la zone de critère sans passé par (="<="&F1 ) et c'est bien là le problème.
0
wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 242
13 sept. 2008 à 11:27
re:

cet exemple etait que pour te montrer un methode que j'utilise et qui fonctionne tres bien

meme si j'utilise une userform, j'utilise des cellules intermediaires et je construis mon filtre de la meme maniere
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
13 sept. 2008 à 14:00
Bonjour,
Oui j'ai très bien compris votre démarche et je vous en remercie.
Je vais même en profiter et l'adopter dans les cas qui se reproduiront.

Je viens de parcourir l'aide de MS dont la marche à suivre est identique à la mienne ... il y a donc un problème que je ne désespère pas de trouver...

En attendant j'utiliserai votre méthode.

Merci et bon week-end.
0
Bonjour,
Oui merci maloriane mais alors autant mettre la date format anglo-saxon, c'est plus rapide je trouve...
A noté qu'ils n'ont pas corrigé chez microsoft sur 2010 pareil !
0