Macro filtre de date

gawella38

XLDnaute Nouveau
Bonjour,

J'ai beau chercher un peu partout ici ou ailleurs je ne trouve pas de réponse à mon problème qui ne me paraissait pourtant pas si compliqué à la base...

Je suis en Excel 2007 et je n'arrive pas appliquer des filtr automatique de date à l'aide d'une macro... le premier filtre est bien reconnu comme un filtre de date mais le 2ème devient un "filtre textuel" ! Pourquoi ? Mystère...

Quelqu'un a-t-il déjà rencontrer ce problème et si oui auriez-vous une solution ?

ci-joint un petit fichier pour illustrer mon problème.

Merci de votre aide

Gawella
 

Pièces jointes

  • macro_filtre_date.xls
    40 KB · Affichages: 53

Vorens

XLDnaute Occasionnel
Re : Macro filtre de date

Salut,

Le prob vient d'ici

Code:
ActiveSheet.Range("$A$4:$C$14").AutoFilter Field:=1, Criteria1:=">= debut", Operator:=xlAnd, Criteria2:="<=fin"

Plus prècisement, au variable que constitue ton critère début et fin qui ne sont pas reconnu car si tu les remplace par des date hard codée le filtre fonctionne.

Mnt on sait ou sa va pas, mais pas encore trouver comment ecrire correctement cette ligne
 

gawella38

XLDnaute Nouveau
Re : Macro filtre de date

merci pour cette précision mais en effet ça ne m'avance pas beaucoup parce que je n'ai pas de solution...

Personne n'a jamais rencontrer ce problème ? Je vais finir par croire que c'est moi qui suis tordue :confused:

D'autres idées donc ?
 

Vorens

XLDnaute Occasionnel
Re : Macro filtre de date

Re, si le prob est connu,

Voila une solution, mais j'ai pas encore test je vien just de la trouver. Deja la synthaxe change mais il faut visiblement egallement passer les variables date en long

voici ce que je viens d'écrire mais c'est pas encore tout a fait au point,

Private Sub filtre_Click()


'debut = CDate(Format(Range("debut"), "dd/mm/yyyy"))
'fin = CDate(Format(Range("fin"), "dd/mm/yyyy"))





Dim dDate As Date
Dim dDate2 As Date

Dim lDate As Long
Dim Ldate2 As Long



If IsDate(Range("C1")) Then

dDate = Range("C1")
dDate = DateSerial(Year(dDate), Month(dDate), Day(dDate))
End If



If IsDate(Range("C2")) Then

dDate2 = Range("C2")
dDate2 = DateSerial(Year(dDate), Month(dDate), Day(dDate))
End If



lDate = dDate
Ldate2 = dDate2


'ActiveSheet.Range("$A$4:$C$14").AutoFilter Field:=1, Criteria1:="<=" & lDate, Operator:=xlAnd, Criteria2:=">=" & Ldate2

ActiveSheet.Range("$A$4:$C$14").AutoFilter Field:=1, Criteria1:=">=" & lDate, Operator:=xlAnd, Criteria2:="<=" & Ldate2

End Sub

Source: Excel Hyperlink Usage. AutoFilter Date Criteria in Excel VBA

Tu va au paragraphe: DATES IN AUTOFILTER CRITERIA


J'ai pas trop trop le temps de finir donc je te donne ce que j'ai trouver si des fois tu trouve avant moi.
 

Vorens

XLDnaute Occasionnel
Re : Macro filtre de date

Reuh,

Voila j'ai trouvé. Copie le code suivant et c'est tout bon


Private Sub filtre_Click()

Dim dDate As Date
Dim dDate2 As Date

Dim lDate As Long
Dim Ldate2 As Long



If IsDate(Range("C1")) Then

dDate = Range("C1")
dDate = DateSerial(Year(dDate), Month(dDate), Day(dDate))
End If



If IsDate(Range("C2")) Then

dDate2 = Range("C2")
dDate2 = DateSerial(Year(dDate2), Month(dDate2), Day(dDate2))
End If


lDate = dDate
Ldate2 = dDate2

ActiveSheet.Range("$A$4:$C$14").AutoFilter Field:=1, Criteria1:=">=" & lDate, Operator:=xlAnd, Criteria2:="<=" & Ldate2

End Sub


Ps: macro écrite sur le tas donc pas optimisée mais fonctionnelle.

A ploush
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Macro filtre de date

Bonjour,

Voir PJ

Code:
Sub filtre2Dates()
   [A4].AutoFilter Field:=1, Criteria1:=">=" & CDbl(Range("c1"))
   [A4].AutoFilter Field:=2, Criteria1:="<=" & CDbl(Range("c2"))
End Sub

Sub tout()
  On Error Resume Next
  ActiveSheet.ShowAllData
End Sub

JB
Formation Excel VBA JB
 

Pièces jointes

  • Copie de macro_filtre_date.xls
    41.5 KB · Affichages: 65
Dernière édition:

gawella38

XLDnaute Nouveau
Re : Macro filtre de date

Merci infiniment à tous les 2 !!!!! Les 2 solutions fonctionnent.

Par simple curiosité, BOISGONTIER (si tu repasses par ici) à quoi correspond le [A4] de ta formule ?
ça c'est juste pour ma culture perso.

Merci merci et encore merci !!
 

Discussions similaires

  • Question
Microsoft 365 TEXTBOX
Réponses
7
Affichages
337

Statistiques des forums

Discussions
312 321
Messages
2 087 243
Membres
103 497
dernier inscrit
JP9231