Excel: filtrer date sur un intervalle donné par une macro
vinsou82
Messages postés9Date d'inscriptionmercredi 5 septembre 2007StatutMembreDernière intervention25 septembre 2009
-
25 sept. 2009 à 15:56
dedenet2
Messages postés372Date d'inscriptionvendredi 27 juillet 2007StatutMembreDernière intervention22 juillet 2013
-
26 sept. 2009 à 13:42
Bonjour,
J'espere ne pas m'etre trompé de section, voilà j'ai un fichier de données Excel avec diverses colonnes et nottament une colonne de dates diverses que je souhaite filtrer selon le début et la fin d'une période de dates renseignée dans deux cellules "début" "fin" à l'aide d'un macro.
Donc j'ai enregistré ceci qui ne fonctionne que pour les valeurs bidons 39148 et 39195 rentrée dans le filtre lors de l'enregistrement:
Sub dates()
'
' dates Macro
' Macro enregistrée le 25/09/2009 par Vinc
'
'
Columns("L:L").Select
Selection.AutoFilter Field:=1, Criteria1:=">=39148", Operator:=xlAnd, _
Criteria2:="<=39195"
End Sub
Et je souhaite obtenir quelque chose du genre:
Sub dates()
'
' dates Macro
' Macro enregistrée le 25/09/2009 par Vinc
'
'
Columns("L:L").Select
Selection.AutoFilter Field:=1, Criteria1:=">=range ("q4")", Operator:=xlAnd, _
Criteria2:="<=range ("r4")", "
End Sub
Mais ceci ne focntionne pas, et j'ai esayé plein de combinaisons en ajoutant des " dans tous les sens ou en les enlevant mais rien n'y fait!
range ("q4") et range ("r4") étant les celluls "début" et "fin" de mon intervalle à filtrer selon les dates q'on y rentre.
dedenet2
Messages postés372Date d'inscriptionvendredi 27 juillet 2007StatutMembreDernière intervention22 juillet 20132 26 sept. 2009 à 13:42
Bonjour ,
Voici une solution
Pour éviter les bugs , je verifie si les formats de Q4 et R4 sont bien des "dates"
Dim DateDebut As Date
Dim DateFin As Date
'Verifier si date
If IsDate(Range("Q4").Value) = False Or _
IsDate(Range("R4").Value) = False Then
MsgBox "N'est pas une date !"
Exit Sub
End If
DateDebut = Range("Q4").Value
DateFin = Range("R4").Value
Columns("L:L").Select
Selection.AutoFilter Field:=1, _
Criteria1:=">=" & CLng(DateDebut), _
Operator:=xlAnd, Criteria2:="<=" & CLng(DateFin)