XL 2016 filtrer les dates entre deux dates spécifiques

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 !

BalighTomy

XLDnaute Nouveau
salut
Dans userform1
C.UsedRange.AutoFilter 1, ">=" & Me.TextBox1.Value, xlAnd, "<=" & Me.TextBox2.Value
le filtre entre deux dates ne fonctionne pas . merci d'avance
 

Pièces jointes

Bonsoir à tous,

Il faut en effet convertir les dates en nombres comme le fait TooFatBoy ou comme ceci :
VB:
c.UsedRange.AutoFilter 1, ">=" & CLng(CDate(TextBox1)), xlAnd, "<=" & CLng(CDate(TextBox2))
Il faut s'assurer auparavant que les TextBox contiennent bien des dates.

A+
 
Bonjour le Fil
Ou avec cette version :
VB:
c.UsedRange.AutoFilter 1, ">=" & CLng(DateValue(Me.TextBox1.Value)), xlAnd, "<=" & CLng(DateValue(Me.TextBox2.Value))
x.Cells.ClearContents
c.UsedRange.SpecialCells(xlCellTypeVisible).Copy 'Ici aussi j'ai modifié
Bonne Journée
Jean marie
 
salut tout le monde
même problème . voila j'ai utilisé la méthode simple .
VB:
Option Explicit
Private Sub CommandButton1_Click()
Frame1.Visible = True
ListBox1.Visible = False
End Sub
Private Sub CommandButton2_Click()
Frame2.Visible = True
ListBox1.Visible = False
End Sub
Private Sub CommandButton3_Click()
'Dim c As Worksheet
'Set c = ThisWorkbook.Sheets("source")
'Dim x As Worksheet
'Set x = ThisWorkbook.Sheets("filtre")

'c.UsedRange.AutoFilter 1, ">=" & Me.TextBox1.Value, xlAnd, "<=" & Me.TextBox2.Value
'c.UsedRange.AutoFilter 1, ">=" & CLng(CDate(TextBox1)), xlAnd, "<=" & CLng(CDate(TextBox2))
'c.UsedRange.AutoFilter 1, ">=" & 1 * CDate(Me.TextBox1.Value), xlAnd, "<=" & 1 * CDate(Me.TextBox2.Value)
'c.UsedRange.AutoFilter 1, ">=" & CLng(DateValue(Me.TextBox1.Value)), xlAnd, "<=" & CLng(DateValue(Me.TextBox2.Value))
'x.Cells.ClearContents
'c.UsedRange.SpecialCells(xlCellTypeVisible).Copy 'Ici aussi j'ai modifié
'x.Cells.ClearContents
'c.UsedRange.Copy

'x.Range("a1").PasteSpecial xlPasteValues
'x.Range("a1").PasteSpecial xlPasteFormats

'c.AutoFilterMode = False
'Dim last_row As Long
'last_row = Application.WorksheetFunction.CountA(x.Range("A:A"))

'If last_row = 1 Then last_row = 2
'With Me.ListBox1
'.ColumnHeads = True
'.ColumnCount = 10
'.ColumnWidths = "50"
'.RowSource = x.Name & "!a2:j" & last_row
'End With
Call search_between_two_dates_in_listbox
ListBox1.Visible = True
End Sub
Function search_between_two_dates_in_listbox()
Dim i As Integer
Dim j As Integer
Dim ListCount1 As Integer
ListCount1 = ListBox1.ListCount - 1
If TextBox1 <> "" Then
For i = ListCount1 To 0 Step -1
If (ListBox1.list(i, 0) < CDate(TextBox1)) Then
ListBox1.RemoveItem (i)
End If
Next i
End If
ListCount1 = ListBox1.ListCount - 1
If TextBox2 <> "" Then
For j = ListCount1 To 0 Step -1
If (ListBox1.list(j, 0) > CDate(TextBox2)) Then
ListBox1.RemoveItem (j)
End If
Next j
End If
End Function
Function format_columns_in_listbox()
Dim i As Integer
For i = 0 To ListBox1.ListCount - 1
ListBox1.list(i, 1) = (Format(ListBox1.list(i, 1), "dd.mm.yyyy"))
Next
End Function
Function show_data_in_listbox()
ListBox1.ColumnCount = 10
ListBox1.ColumnWidths = "50;50;50;50;50;50;50;50;50;50"
Sheets("source").Activate
Dim lastrow As Long
lastrow = Cells(Rows.Count, "A").End(xlUp).Row
ListBox1.list = Range("A2:J" & lastrow).Value
End Function
Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
Me.TextBox1 = MonthView1
Frame1.Visible = False
End Sub
Private Sub MonthView2_DateClick(ByVal DateClicked As Date)
Me.TextBox2 = MonthView2
Frame2.Visible = False
End Sub
Private Sub Textbox1_AfterUpdate()
On Error Resume Next
Me.TextBox1 = Format(CDate(Me.TextBox1), "dd mmm yyyy")
End Sub
Private Sub Textbox2_AfterUpdate()
On Error Resume Next
Me.TextBox2 = Format(CDate(Me.TextBox2), "dd mmm yyyy")
End Sub
Private Sub UserForm_Initialize()
Call show_data_in_listbox
Call format_columns_in_listbox
Frame1.Visible = False
Frame2.Visible = False
End Sub
 

Pièces jointes

salut TooFatBoy, voila les 3 solutions mais rien . merci bien l’équipe 🥰
VB:
'c.UsedRange.AutoFilter 1, ">=" & CLng(CDate(TextBox1)), xlAnd, "<=" & CLng(CDate(TextBox2))
'c.UsedRange.AutoFilter 1, ">=" & 1 * CDate(Me.TextBox1.Value), xlAnd, "<=" & 1 * CDate(Me.TextBox2.Value)
'c.UsedRange.AutoFilter 1, ">=" & CLng(DateValue(Me.TextBox1.Value)), xlAnd, "<=" & CLng(DateValue(Me.TextBox2.Value))
 
- 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
338
Réponses
8
Affichages
466
Réponses
2
Affichages
201
  • Résolu(e)
Microsoft 365 DateDif()
Réponses
5
Affichages
170
Retour