XL 2010 AutoFilter entre 2 dates UserForm et TextBox

  • Initiateur de la discussion Initiateur de la discussion modus57
  • 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 !

modus57

XLDnaute Occasionnel
Bonsoir.

Je sollicite votre aide pour un petit souci que je rencontre lors d'un filtre entre 2 dates avec un formulaire qui contient 2 TextBox le premier pour la date de début et le second pour la date de fin.

Voici mon code mais il ne filtre rien :
VB:
Private Sub CommandButton1_Click()
    If TextBox1 = "" Then
        MsgBox "Entrer Une Date De Début"
    Else
        If TextBox2 = "" Then
            MsgBox "Entrer Une Date De Fin"
        Else
            Dim datedbut As String
            Dim datefin As String
            datedebut = Format(TextBox1, "dd-mm-yyyy")
            datefin = Format(TextBox2, "dd-mm-yyyy")
            ActiveSheet.ListObjects("Tableau2").Range.AutoFilter Field:=3, Criteria1:=">=" & datedebut, Operator:=xlAnd, Criteria2:="<=" & datefin
        End If
    End If
End Sub
Comment régler ce problème.

Merci d'avance pour vos réponses.
 
Bonjour,
Personnellement j'utiliserais plutôt les fonctions CDate pour convertir les 2 TexBoxes en variables dates, si la colonne à filtrer contient des valeurs en format date.
VB:
Private Sub CommandButton1_Click()
    Dim DateDébut As Date
    Dim DateFin As Date
           
    If Not IsDate(TextBox1) Then
        MsgBox "Entrer une date de début valide."
    Else
        If Not IsDate(TextBox2) Then
            MsgBox "Entrer une date de fin valide."
        Else
            DateDébut = CDate(TextBox1)
            DateFin = CDate(TextBox2)
            ActiveSheet.ListObjects("Tableau2").Range.AutoFilter Field:=3, _
                Criteria1:=">=" & DateDébut, Operator:=xlAnd, Criteria2:="<=" & DateFin
        End If
    End If
End Sub
 
Dernière édition:
Bonjour,

Hé bien puisque je n'ai pas eu de réponse, après avoir fouiné voici la solution que j'ai trouvé pour celle ou celui que cela peut intéressé :
VB:
Private Sub CommandButton1_Click()
  Dim DLig As Long, StartDate As Long, EndDate As Long

  Application.ScreenUpdating = False
  With Sheets("Feuil1")
    .Activate
    ' Trouver la dernière ligne du tableau
    DLig = .Range("A" & Rows.Count).End(xlUp).Row
    ' Vérifier le filtre auto
    If .FilterMode = False Then
      .Range("A1:C1").AutoFilter
    Else
      ' Supprimer le filtre sur les dates (au cas ou)
      .Range("A1:C1").AutoFilter Field:=3
    End If
    ' Fourchette de date
    StartDate = DateValue(TextBox1)
    EndDate = DateValue(TextBox2)
    ' Filtrage des dates selon leur numéro de série
    .Range("A1:C1").AutoFilter Field:=3, Criteria1:=">=" & StartDate, Operator:=xlAnd, Criteria2:="<=" & EndDate
  End With
  Application.ScreenUpdating = True
End Sub
Ceci dit, si on utilise l'enregistreur voilà la macro obtenue :
Code:
    ActiveSheet.ListObjects("Tableau2").Range.AutoFilter Field:=3, Criteria1:=">=07-05-2008", Operator:=xlAnd, Criteria2:="<=20-05-2010"
Si on lance cette macro ça ne filtre rien ??

Merci quand même.
 
- 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
3
Affichages
303
Réponses
4
Affichages
362
Réponses
2
Affichages
405
Retour