Filtre sur dates

Bonjour,

Je souhaite filtrer le tableau ci-joint sur les dates.

Ex : ne conserver que les lignes correspondantes aux personnes nées entre le 01/01/1967 et le 31/12/1991

Comment procéder ?

Merci de votre aide

Bonsoir,

Il suffit d'activer le filtre automatique et de filtrer... Mais il va falloir régler un problème préalable car tes dates sont du texte et non des dates, le filtre ne peut donc les traiter comme dates. Il faut donc les convertir en dates...

Bonjour,

Utilises un filtre élaboré (regardes l'aide ou le net) mais d'abords il faut que tes dates soient dans un format date valide donc, utilise cette proc pour ça :

Sub Test()

    Dim Plage As Range
    Dim Cel As Range

    With Worksheets("Feuil1"): Set Plage = .Range(.Cells(2, 2), .Cells(.Rows.Count, 2).End(xlUp)): End With

    For Each Cel In Plage
        Cel.Value = CDate(Cel.Value)
    Next Cel

End Sub

Re,

Une procédure que tu pourras supprimer après usage...

Sub ConvertDates()
    Dim c As Range
    Application.ScreenUpdating = False
    With ActiveSheet
        For Each c In .Range(.Cells(2, 2), .Cells(.Rows.Count, 2).End(xlUp))
            c = DateValue(c)
        Next c
    End With
End Sub

Cordialement.

Edit : Salut Theze ! Pas vu avant... mais on a réussi tout de même une petite variante malgré le créneau étroit !

Bonne fin d'année.

Bonjour jmdhc,

voyez si le fichier joint répond à vos attentes

Merci à tous pour vos réponses rapides.

Juste une question à MFerrand : quelle est la fonction dans l'interface d'Excel qui correspond à ta macro pour convertir le format de cellule en Date (c = DateValue(c)) ?

J'avais essayé le clic droit + Format de cellule > Date mais ça ne fonctionne pas dans ce cas.

Merci

Bonjour,

pour le faire manuellement copie une cellule vide, sélectionne ta colonne et collage spécial addition.

Puis mettre le format date désiré sur la colonne.

eric

Bonjour,

Juste une question à MFerrand : quelle est la fonction dans l'interface d'Excel qui correspond à ta macro pour convertir le format de cellule en Date (c = DateValue(c)) ?

Ce serait logiquement DATEVAL, encore qu'il y a certainement quelque différence avec DateValue, le comportement diffère un peu.

Tu peux faire l'expérience, DATEVAL va te renvoyer un nombre, le numéro de série, si la cellule n'est pas préalablement en format de date. En manuel, l'opération la plus économique est celle indiquée par Eric, utilisant le collage spécial. Cela opère sur place, mais tu seras obligé de rétablir un format de date ensuite.

S'il y a peu de dates à convertir, ce sera manuellement rapide, d'ailleurs l'édition revalidation de la cellule suffit à provoquer le passage en type Date. C'est l'origine externe des données qui fait qu'Excel les a accueillies comme données texte sans accomplir son travail habituel de reconnaissance.

S'il y en a beaucoup, un petit bout de code que l'on n'a nul besoin de conserver ensuite est vite produit et permet de régler l'opération.

Cordialement.

Un grand merci à tous

Rechercher des sujets similaires à "filtre dates"