Ma macro filtre sur une valeur "texte" ne fonctionne pas avec une valeur "date"

chris6999

XLDnaute Impliqué
Bonjour

J'essaye vainement de comprendre pourquoi la macro ci-après ne fonctionne pas avec une valeur de recherche de type date alors que cela fonctionne très bien avec les valeurs textes.
Le prinicpe est le suivant :
Lorsque je tape une valeur texte dans la cellule B4 le filtre s'active et sélectionne les lignes lorsque la valeur ou une partie de cette valeur est présente dans la colonne 1 (NOM).

Je souhaitais ajouter un autre filtre sur la valeur date de naissance à partir de la cellule E4 sachant que les dates de naissance sont saisies dans la colonne 2 (C)

J'ai vainement essayé d'utiliser la macro ci après pour le filtre date mais cela ne fonctionne pas...


Private Sub Worksheet_Change(ByVal Target As Range)
' Si modification de la cellule b4
If Target.Address(0, 0) = "B4" Then
' Si la cellule contient une valeur
If Target.Value <> "" Then
' Filter sur cette valeur
Range("A6:F6").AutoFilter Field:=1, Criteria1:="=*" & Target.Value & "*"

Else
' Supprimer le filtre
Range("A6:F6").AutoFilter Field:=1
End If
End If
End Sub


Le top serait de pouvoir mettre à la suite ces deux macros pour que l'on puisse faire une sélection à partir du nom ou de la date de naissance (ou les deux en même temps?...)

Mon problème c'est de retirer la sélection uniquement lorsque B4 et E4 sont vides.

Quel casse tête!

Je vous mets un fichier test pour que vous compreniez mieux mon problème.

Merci d'avance pour votre aide
Cordialement
 

Pièces jointes

  • fichier test.xls
    141 KB · Affichages: 84
  • fichier test.xls
    141 KB · Affichages: 92
  • fichier test.xls
    141 KB · Affichages: 92

pierrejean

XLDnaute Barbatruc
Re : Ma macro filtre sur une valeur "texte" ne fonctionne pas avec une valeur "date"

Bonjour chris6999

Vois si cela te convient
 

Pièces jointes

  • fichier test.xls
    143.5 KB · Affichages: 92
  • fichier test.xls
    143.5 KB · Affichages: 100
  • fichier test.xls
    143.5 KB · Affichages: 98

chris6999

XLDnaute Impliqué
Re : Ma macro filtre sur une valeur "texte" ne fonctionne pas avec une valeur "date"

Merci Pierrejean

J'ai essayé de tester ta proposition mais la sélection sur date de naissance ne fonctionne pas.
Est_ce normal?

Dis moi si tu comprends pourquoi

Bonne soirée
 

pierrejean

XLDnaute Barbatruc
Re : Ma macro filtre sur une valeur "texte" ne fonctionne pas avec une valeur "date"

Re

Teste cette version : elle a été créée sous Excel 2000 alors que la precedente l'avait été sous Excel 2010
 

Pièces jointes

  • fichier test_2003.xls
    145.5 KB · Affichages: 90

chris6999

XLDnaute Impliqué
Re : Ma macro filtre sur une valeur "texte" ne fonctionne pas avec une valeur "date"

Merci pierrejean

Effectivement cela fonctionne bien pour les dates. Par contre, au niveau de la recherche par nom la macro ne parvenait plus à filtrer lorsque je cherche par partie de texte.
Par exemple pour afficher toutes les lignes qui contenaient DU sans être obligé de saisir le nom complet.
J'ai donc combiné les deux codes et cela semble fonctionner.
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("B4") = "" And Range("E4") = "" Then
Range("A6:F6").AutoFilter Field:=3
Range("A6:F6").AutoFilter Field:=1
Exit Sub
End If
If Target.Address(0, 0) = "B4" Then
' Si la cellule contient une valeur
If Target.Value <> "" Then
' Filter sur cette valeur
Range("A6:F6").AutoFilter Field:=1, Criteria1:="=*" & Target.Value & "*"

Else
' Supprimer le filtre
Range("A6:F6").AutoFilter Field:=1
End If


End If
If Target.Address = "$E$4" Then
ActiveSheet.Range("$A$6:$F$13").AutoFilter Field:=1
'crit = Format(Target.Value, "dd/mm/yyyy")
crit = Target.Value
fi = 3
Range("A6:F6").AutoFilter Field:=fi, Criteria1:=crit
Application.EnableEvents = False
Range("B4") = ""
Application.EnableEvents = True
End If
End Sub

Je te remercie pour ton aide
Bon dimanche
 

Discussions similaires

Statistiques des forums

Discussions
312 228
Messages
2 086 421
Membres
103 205
dernier inscrit
zch