Thank you for all advices and examples.
I can fix problem by this code : analyzing year --> month---> day. It is now working.
Private Sub CommandButton1_Click()
Dim a, LngIndex As Long
Dim ytCrit, mtCrit, dtCrit As Long
Dim yuCrit, muCrit, duCrit As Long
Dim sCrit As String
Dim tCrit, uCrit As Date
Dim tngSource As Range
Set tngSource = Worksheets("Sheet2").Range("A2:K1000")
' 2.between two days
'textbox1
tCrit = TextBox1.Value
ytCrit = Val(Year(tCrit))
mtCrit = Val(Month(tCrit))
dtCrit = Val(Day(tCrit))
With Me.ListBox1
.ColumnCount = 11
.ColumnWidths = "80;80;80;0;0;110;150;0;80;80;80;"
.List = tngSource.Cells.Value
' date format
For LngIndex = o To .ListCount - 1
.List(LngIndex, 6) = UCase(Format(CDate(.List(LngIndex, 6)), "dd/mm/yyyy"))
Next
For a = .ListCount - 1 To 0 Step -1
If Not Year(.List(a, 6)) = ytCrit Then
If Not Year(.List(a, 6)) > ytCrit Then
.RemoveItem a
End If
End If
Next a
For a = .ListCount - 1 To 0 Step -1
If Year(.List(a, 6)) = ytCrit And (Month(.List(a, 6)) > mtCrit Or Month(.List(a, 6)) < mtCrit) Then
If Not Month(.List(a, 6)) > mtCrit Then
.RemoveItem a
End If
End If
Next a
For a = .ListCount - 1 To 0 Step -1
If Year(.List(a, 6)) = ytCrit And Month(.List(a, 6)) = mtCrit Then
If Not Day(.List(a, 6)) >= dtCrit Then
.RemoveItem a
End If
End If
Next a
End With
'textbox2
uCrit = TextBox2.Value
yuCrit = Val(Year(uCrit))
muCrit = Val(Month(uCrit))
duCrit = Val(Day(uCrit))
With Me.ListBox1
For a = .ListCount - 1 To 0 Step -1
If Not Year(.List(a, 6)) = yuCrit Then
If Not Year(.List(a, 6)) < yuCrit Then
.RemoveItem a
End If
End If
Next a
For a = .ListCount - 1 To 0 Step -1
If Year(.List(a, 6)) = yuCrit And (Month(.List(a, 6)) > muCrit Or Month(.List(a, 6)) < muCrit) Then
If Not Month(.List(a, 6)) < muCrit Then
.RemoveItem a
End If
End If
Next a
For a = .ListCount - 1 To 0 Step -1
If Year(.List(a, 8)) = yuCrit And Month(.List(a, 9)) = muCrit Then
If Not Day(.List(a, 10)) <= duCrit Then
.RemoveItem a
End If
End If
Next a
End With
End Sub