VBA MACRO FILTRE SUR DATE par Worksheet_Change(ByVal Target As Range)

  • Initiateur de la discussion Initiateur de la discussion chris6999
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

chris6999

XLDnaute Impliqué
Bonjour

Je ne parviens pas à réaliser un filtre sur une valeur de type date.

Lorsque je saisis une date en B1 je souhaite faire un filtre sur cette date en fonction des valeurs de la colonne 1.

If Target.Address(0, 0) = "B1" Then
If Target.Value = "" Then
Range("$A$3:$B$3").AutoFilter Field:=1
Else
Range("$A$3:$B$3").AutoFilter Field:=1, Criteria1:="=" & Target.Value & "*"
End If
End If

Pouvez-vous me dire comment il faut s'y prendre.

Merci
 

Pièces jointes

Bonsoir chris6999, mapomme 🙂

Si les dates sont valides essaie comme ceci Criteria1:="=" & Format([B1], "dd/mm/yyyy" ou [B1].Value2

Moi je ferais comme ceci

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If [B1] = "" Then 
        Range("$A$3:$B$3").AutoFilter
    Else
        Range("$A$3:$B$3").AutoFilter Field:=1, Criteria1:=">=" &Format([B1].Value,"dd.mm.yyyy"),    Operator:=xlAnd, _
        Criteria2:="<=" & Format([B1].Value, "dd.mm.yyyy")
    End If
End Sub
 
Dernière édition:
Bonjour

J'avais beaucoup d'espoir en lisant ta proposition car il me semblait bien que j'étais confronté à un pb de format.
Mais non malheureusement cela ne fonctionne pas non plus.
Mes dates sont pourtant bien valides...

Merci encore
 
Re

Et comme ceci

VB:
Private Sub Worksheet_Change(ByVal R As Range)
 
    If R.Address = "$B$1" And R = "" Then
        Range("A3:B26").AutoFilter
    Else
        Range("A3:B26").AutoFilter Field:=1, Criteria1:="=" & Format(R.Value, "dd.mm.yyyy")
    End If
End Sub

filtre.gif


Sinon prend au moins la version Excel 2010 LOL 😉😀
 
Re

Un autre test comme ceci, qui sait?? 🙄

VB:
Private Sub Worksheet_Change(ByVal R As Range)
Dim DateRepere As Date

    If R.Address = "$B$1" And R = "" Then
        Range("A3:B26").AutoFilter
    Else
        DateRepere = DateSerial(Year(R.Value), Month(R.Value), Day(R.Value))
        Range("A3:B26").AutoFilter Field:=1, Criteria1:="<" & CLng(DateRepere)
    End If
End Sub
 
Bonsoir à tous,

Voir fichier joint ?
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Address(0, 0) = "B1" Then
      If Target.Value = "" Then
         Range("A3:B3").AutoFilter Field:=1
      Else
         On Error Resume Next
         Range("A3:B3").AutoFilter Field:=1, Criteria1:="=" & CDate(Range("b1"))
         On Error GoTo 0
      End If
   End If
End Sub
 

Pièces jointes

Bonsoir à tous,

Voir fichier joint ?
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Address(0, 0) = "B1" Then
      If Target.Value = "" Then
         Range("A3:B3").AutoFilter Field:=1
      Else
         On Error Resume Next
         Range("A3:B3").AutoFilter Field:=1, Criteria1:="=" & CDate(Range("b1"))
         On Error GoTo 0
      End If
   End If
End Sub

Bonjour

Je viens de tester ton fichier mais chez moi le filtre ne fonctionne pas.
Je crois que je vais laisser tomber...
Merci encore pour votre aide à tous les deux
 
Bonjour le fil, le forum, chris6699, Lone-Wolf, mapomme

@Lone-wolf
Tu te compliques la tâche 😉
VB:
Private Sub Worksheet_Change(ByVal R As Range)
    If R.Address = "$B$1" And R = "" Then
        Range("A3:B26").AutoFilter
    Else
        Range("A3:B26").AutoFilter Field:=1, Criteria1:="<" & CLng(R)
    End If
End Sub

Test OK sur Excel 2013
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
409
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
18
Affichages
867
Réponses
4
Affichages
453
Réponses
5
Affichages
717
Retour