Bug sur le filtre auto ?

starius

XLDnaute Nouveau
Bonjour tout le monde !

Dans mon code VBA, j'ai une bizzarrerie :

Par vba, j'ouvre un fichier qui contient tout un tas de ligne et je fais un filtre automatique sur la première colonne qui contient des dates :

Code:
Selection.AutoFilter Field:=1, Criteria1:="16/07/2007"

Jusque là, pas de soucis, il me retourne le bon nombre d'enregistrements. En revanche, quand je veux faire la même chose à partir d'une variable, à savoir tous les enregistrements à partir d'une certaine date :

Code:
critere1=date_debut
Selection.AutoFilter Field:=1, Criteria1:=">= " & critere1

Cela ne fonctionne pas ! Je ne comprends pas où est l'erreur...

Merci d'avance pour votre aide !
 

starius

XLDnaute Nouveau
Re : Bug sur le filtre auto ?

Merci pour la piste Lionel :D Je me suis dit, à oui, tiens, exact !

Mais ça marche pas...

J'ai essayé de cette manière aussi :

Code:
    Worksheets(1).Range("A1").Select
    critere1 = ">=" & debut
    Selection.AutoFilter Field:=1, Criteria1:=critere1

Je vois vraiment pas... Quand je remplace la variable par la donnée, ça ne fonctionne pas non plus, peut-être ma syntaxe n'est elle pas bonne ?

Code:
Selection.AutoFilter Field:=1, Criteria1:="16/07/2007"
 

Staple1600

XLDnaute Barbatruc
Re : Bug sur le filtre auto ?

Bonjour


Un autre forumeur a rencontré le même problème

https://www.excel-downloads.com/threads/probleme-de-date-systeme-lors-dun-tri-dans-une-macro.78638/

J'ai voulu tester (et sous XL2000) le problème apparait aussi

quand on utilise VBA

quand on fait le filtre "manuellement" cela fonctionne.


Je n'ai pas trouvé d'ou cela peut venir (ni la solution)

extrait de ma réponse dans le fil cité
Et celle-là ne fonctionne pas (mais en manuel cela fonctionne ??????????)
Code:
Code:
[/I][LEFT][I]Sub Macro5()
Selection.AutoFilter Field:=2, Criteria1:=">=13/07/07", Operator:=xlAnd _
        , Criteria2:="<=13/07/07"
End Sub
[/I] [/LEFT]
[I]

 
Dernière édition:

starius

XLDnaute Nouveau
Re : Bug sur le filtre auto ?

Désolé, j'avais pas vu ce post...

A mon avis, cela vient du type du champ. Si je fais le filtre sur une donnée string, ça passe... A rien n'y comprendre....
Enfin, si par hasard, je trouve, je vous tiens informé ! ;)
 

starius

XLDnaute Nouveau
Re : Bug sur le filtre auto ?

Alors, j'ai peut-être une piste...

Dans mon fichier de données, sur le champ en question, qui est un champ date, je l'ai changé avec les propriétés. Il était en format *14/03/2001. J'ai tout changé en date 14/03/01.

J'ai l'impression que l'astérisque fait que c'est un format de date particulier...

Dans mon code :

Code:
critere1 = Format(debut, "dd/mm/yy") 
    Worksheets(1).Range("A1").AutoFilter Field:=1, Criteria1:=critere1

où critere1 est un Variant et debut, une Date

Je ne saurais pas expliquer le pourquoi du comment mais le fait est que ça marche pour l'instant... Reste à voir avec le >=...

Edit : non, ça ne fonctionne pas... Car critere1 est maintenant considéré comme texte. Peut être que cela t'aidera néanmoins stapple...
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Bug sur le filtre auto ?

Re


Non je reste toujours bloqué au même stade
(sans rien comprendre)


Aucune des macros ci-dessous ne fonctionnent

(sauf qu'elles renseignent bien le critère du filtre
que l'on voit peut voir aprés l'éxécution du code)

Mais toutes les lignes sont masquées par le filtre ?????????
Code:
Sub Macro1()
Range("D1").Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=1, Criteria1:="=14/07/07", Operator:=xlAnd
End Sub
Sub XMacro1()
Dim X
X = "14/07/07"
Range("D1").AutoFilter Field:=1, Criteria1:="=" & X, Operator:=xlAnd
End Sub

Sub XMacro2()
Dim X
X = "14/07/07"
Range("D1").AutoFilter 1, "=" & X, xlAnd
End Sub

Sub XMacro3()
Dim X
X = Format(Date, "dd/mm/yy")
Range("D1").AutoFilter 1, "=" & X, xlAnd
End Sub
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : Bug sur le filtre auto ?

Bonjour à tous,

Il doit y avoir une solution mais en VB, je ne sais pas par contre je mes suis aperçu que je l'utilise dans une macro Excel4 (ancêtre des macros VB)
Voici le code
Datedeb est le contenu d'une cellule
Voici un extrait:

=SELECTIONNER("l1c2")
datedeb=CELLULE("contenu")
=FILTRE(7;"<="&datedeb)
 

MJ13

XLDnaute Barbatruc
Re : Bug sur le filtre auto ?

Re bonjour
Voici une solution en Excel 4 en attendant une solution en VB.
Pour les fonctions Excel 4, il y a aussi mon site (avec macrofun.hlp).
Voir sur le lien ci dessous.
 

Pièces jointes

  • filtre date VB.xls
    46.5 KB · Affichages: 86

Nevil

XLDnaute Occasionnel
Re : Bug sur le filtre auto ?

Bonjour a tous,

J'ai deja eu ce genre de probleme il y a environ 1an, et j'en ai perdu la tete !
Le seul moyen que j'ai trouve (si je me souviens bien), c'est de changer le format de colonne ou se trouve tes dates et les mettre en format "nombre", tout en sachant que les nombres trouvees sont proportionnels aux dates reelles.
Et donc dans ta macro, il faut d'abord que tu convertisses ton critere de date en nombre, et le filtre auto fonctionnera.

J'espere ne pas te dire de betise car je te sort ca de vieux souvenirs ...

Tien nous au courant, merci

Nevil
 

Nevil

XLDnaute Occasionnel
Re : Bug sur le filtre auto ?

Re Salut a tous,

Nan je n'ai pas encore essayé ta solution, je vais le faire soit ce soir si je suis motivé à programmer, soit demain vu que je vais etre forcé de programmer...

Et effectivement, j'ai eu le temps cet aprem de reproduire ma solution, et elle fonctionne. Certes c'est du bidouillage, mais la seule solution que j'avais trouvé à l'époque, mais je suis ouvert à toutes proposition.

A bientot Xldiens
 

Discussions similaires

Statistiques des forums

Discussions
314 630
Messages
2 111 382
Membres
111 118
dernier inscrit
gmc