Filtre sur date à partir de VBA (Excel 2010)

JR38

XLDnaute Nouveau
Bonjour

Je n'arrrive pas à faire fonctionner le filtrage sur dates à partir de VBA
Ci joint un petit exemple qui illustre les difficultés.

Merci
 

Pièces jointes

  • FiltreDate.xlsm
    18.1 KB · Affichages: 365
  • FiltreDate.xlsm
    18.1 KB · Affichages: 336
  • FiltreDate.xlsm
    18.1 KB · Affichages: 403
C

Compte Supprimé 979

Guest
Re : Filtre sur date à partir de VBA (Excel 2010)

Bonjour JR38 et bienvenue sur ce forum ;)

Pour qu'un filtrage fonctionne sur des dates, il faut utiliser le numéro de série de celles-ci
Voici le code
VB:
Sub FiltreSurDate()
  Dim DLig As Long, StartDate As Long, EndDate As Long


  Application.ScreenUpdating = False
  With Sheets("BDD")
    ' Activer la feuille (n'est pas nécessaire)
    .Activate
    ' Trouver la dernière ligne du tableau
    DLig = .Range("A" & Rows.Count).End(xlUp).Row
    ' Vérifier le filtre auto
    If .FilterMode = False Then
      .Range("A1:G1").AutoFilter
    Else
      ' Supprimer le filtre sur les dates (au cas ou)
      .Range("A1:G1").AutoFilter Field:=6
    End If
    ' --Fourchette de date
    StartDate = DateValue("01/01/2010")
    EndDate = DateValue("31/12/2010")
    ' Filtrage des dates selon leur numéro de série
    .Range("A1:G1").AutoFilter Field:=6, Criteria1:=">=" & StartDate, Operator:=xlAnd, Criteria2:="<=" & EndDate
    ' Copie des lignes
    .Range("A1:G" & DLig).Copy Destination:=.Range("A10")
  End With
  Application.ScreenUpdating = True
End Sub

A+
 

JR38

XLDnaute Nouveau
Re : Filtre sur date à partir de VBA (Excel 2010)

Re Bonjour BrunoM45

j'ai fini par comprendre pourquoi mon code en fonctionnait pas.
Les variables qui reçoivent les séries correspondant aux dates de début et de fin doivent être déclarées en Long

Encore merci et bonne journée
A+
 

Discussions similaires

Statistiques des forums

Discussions
314 205
Messages
2 107 234
Membres
109 779
dernier inscrit
totoland25