XL 2013 filtre chronologique entre deux dates

nadem0068

XLDnaute Junior
Bonjour à tous,

une fois n'est pas coutume, je me tourne vers vous afin de solliciter votre aide. Je cherche à faire une macro qui agit comme le filtre chronologique "entre" deux dates que l'on trouve dans les toupies d'un tableau. Mes dates ce trouverais dans des cellules dont la valeur pourra changer bien sûr. j'ai voulus le faire avec l'enregistreur de macro mais ça ne marche paso_O. L'objectif étant de combiné cette action avec d'autre macro par la suite.
je joins un fichier pour être plus clair.

PS: Merci d'avance à tous ceux qui prendront le temps de ce penchais sur mon problème.;)
 

Pièces jointes

  • Filtre entre deux dates VBA.xlsm
    13.9 KB · Affichages: 8

Hasco

XLDnaute Barbatruc
Repose en paix
bonjour,

Dans le fichier joint la macro suivante, bien que la demande ne soit pas très précises.
Faut-il appliquer les limites sur les deux champs (Début et Fin) ou un seul ?

La macro applique la première date sur la colonne 'Début' et l'autre sur la colonne 'Fin'
VB:
Sub Filtre_entre_deux_dates()

 Dim crit1 As String, crit2 As String

    With ActiveSheet
        If Range("F1") <> "" And Range("G1") <> "" Then
            '
            ' Critères de date au format mois/jour/année
            crit1 = ">=" & Format(.Range("F1"), "mm/dd/yyyy")
            crit2 = "<=" & Format(.Range("G1"), "mm/dd/yyyy")
      
            With .ListObjects("Tableau1").Range
                .AutoFilter
                .AutoFilter Field:=2, Criteria1:=crit1, Operator:=xlAnd
                .AutoFilter Field:=4, Criteria1:=crit2, Operator:=xlAnd
            End With
        Else
            .ListObjects("Tableau1").Range.AutoFilter
        End If
    End With

End Sub
Cordialement
 

Pièces jointes

  • Filtre entre deux dates VBA.xlsm
    17.5 KB · Affichages: 19

nadem0068

XLDnaute Junior
Merci pour ton aide, c'est presque ça. j'ai trouver une solution qui marche sur la feuille active, cependant je voudrais l'activer à partir d'une autre feuille mais je tombe sur erreur que je n'arrive pas à modifier.
Je joins un fichier pour être plus clair l'effet en Feuil1 est celui voulu mais en Feuil2 ça ne marche pas.
si tu à une solution je t'en remercie d'avance. ;)
 

Pièces jointes

  • Filtre entre deux dates VBA.xlsm
    25.9 KB · Affichages: 10

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Je vois que je me suis donné de la peine pour rien et que vous ne comprenez pas ce que vous faites.

VB:
Sub Filtre_entre_deux_dates()
' Filtre_entre_deux_dates Macro
    Dim xDate As Date, xDate2 As Date
    On Error GoTo FIN
   
    Select Case ActiveSheet.Name
    Case "Feuil1"
        xDate = DateSerial([J2], [H2], 1)      ' début de mois
        xDate2 = DateSerial([J2], [H2] + 1, 0)    ' fin de mois
    Case "Feuil2"
        xDate = DateSerial([D2], [C2], 1)       ' début de mois
        xDate2 = DateSerial([D2], [C2] + 1, 0)  'fin de mois
    Case Else
        GoTo FIN
    End Select

    With Sheets("Feuil1")
        With .ListObjects("Tableau1").Range
            .AutoFilter
            .AutoFilter Field:=2, Criteria1:=">=" & Format(xDate, "mm/dd/yyyy"), Operator:=xlAnd, _
                        Criteria2:="<=" & Format(xDate2, "mm/dd/yyyy")
        End With
        .Range("A1") = "du 1 au " & Format(xDate2, "dd mmmm yyyy")
    End With
FIN:
    If Err.Number > 0 Then
        MsgBox "filtrage interrompu en raison de l'erreur suivante: " & vbCrLf & vbCrLf & Err.Description, vbExclamation, "Filtragedonnées"
    End If

Cordialement
 

Pièces jointes

  • Filtre entre deux dates VBA (1).xlsm
    25.6 KB · Affichages: 18
Dernière édition:

nadem0068

XLDnaute Junior
Bonjour,

Dans ton code tu appelles "Tableau1". Il faut donc que tu adaptes ton code pour qu'il puisse s'appliquer à "Tableau2" ou à je ne sais quoi, qui sera le nom de ton tableau sur la feuille 2.

Bonne continuation
bonjour,

je n'arrive pas à faire ce que tu me dit je poste mon fichier pour que cela soit plus clair.
le graphique eu Feuil2 est liée au tableau en Feuil1 c'est pour cela que je veut activé le filtre à partir de la Feuil2.
 

Pièces jointes

  • Diagramme de Gantt de projet1.xlsm
    29.8 KB · Affichages: 4

nadem0068

XLDnaute Junior
bonjour le fil
les date dans excel sont des numéros de serie formatées
on filtre par clng(cdate("xx/xx/xxxx")) et jamais de soucis ;)
a moins que tes dates soit des string dans tes cellules au quel cas il y a deja erreur dans le principe a la base
Bonjour,

merci pour ta réponse j'ai trouvé une solution mais je n'arrive pas à activer le filtre à partir d'une autre feuille. je joins un fichier en exemple.
 

Pièces jointes

  • Diagramme de Gantt de projet1.xlsm
    29.8 KB · Affichages: 16

Discussions similaires

Statistiques des forums

Discussions
312 338
Messages
2 087 399
Membres
103 537
dernier inscrit
alisafred974