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 SubA 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