Filtres chronologiques

Bonjour,

j'ai deux feuilles dans mon classeur.

Dans la première, j'ai la macro suivante qui me permet d'effectuer un filtre dynamique selon les valeurs renseignées en ligne 9.

Dans la deuxième, j'ai une cellule qui me permet de calculer une date : aujourdhui()-200

Lorsqu'un utilisateur tape un mot en ligne 9, je veux que mon filtre dynamique se lance (ça c'est OK, on l'utilise depuis plusieurs mois sans soucis) et que en plus de cela, en colonne G un filtre chronologique s'opère avec comme critère dates supérieures à : aujourdhui()-200 jours.

Mon problème: le filtre dynamique fonctionne mais le filtre chrono me masque toutes les lignes.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim dercol As Integer, i As Long, derlig As Long
Dim date1 As Variant

dercol = Cells(10, Cells.Columns.Count).End(xlToLeft).Column   'défini la dernière colonne remplie en ligne 10
derlig = Range("A" & Rows.Count).End(xlUp).Row                 'défini la dernière ligne remplie en colonne A

If Not Intersect(Target, Range("A9", Cells(9, dercol))) Is Nothing Then  'Condition : si modification d'une cellule en ligne 9

  For i = 1 To dercol

     Select Case Target.Address
        Case Cells(9, i).Address
            If Target = "" Then    'si la cellule est vidée
                Range("A10", Cells(derlig, dercol)).AutoFilter Field:=i 'critère de filtre: ""
                Range("A10", Cells(derlig, dercol)).AutoFilter Field:=7
            Else
               Range("A10", Cells(derlig, dercol)).AutoFilter Field:=i, Criteria1:="*" & Cells(9, i).Value & "*"  'si la cellule contient une valeur alors le critère de filtre est: valeur de la cellule
               Range("A10", Cells(derlig, dercol)).AutoFilter Field:=7, Criteria1:=">" & Sheets("mise au point des macros").Cells(2, 10)
            End If
     End Select
  Next i
End If

End Sub

A savoir que quand je rentre dans le menu déroulant de mon filtre," filtre chrono" est bien sélectionné, "après" est bien coché, la date renseignée dans le champ est la bonne. Lorsque je clique sur ok,le filtre se met en place et m'affiche les lignes désirées. C'est un peu bizare...

Merci d'avance pour votre aide.

Megatron

Bonjour

Sans fichier pour tester pas évident du tout

Il me semble que pour filtrer sur ">" ou "<" par rapport à une date il faut employer Csng

Modifies la macro (partie surlignée)

Range("A10", Cells(derlig, dercol)).AutoFilter Field:=7, Criteria1:=">" &Csng(Sheets("mise au point des macros").Cells(2, 10))

Si pas ça : ton fichier avec la démarche à suivre pour arriver au défaut

Bonjour Banzai64,

Et bien écoute, ta solution semble fonctionner, merci à toi!

Si jamais je me rends compte de quelque chose je te tiens au courant.

Megatron

Rechercher des sujets similaires à "filtres chronologiques"