Voici le code en question:
Option Explicit
Private I As Integer, r(), T As String, Cl As Integer
Sub Afficher_List()
r = Feuil2.Range("A7:K" & Feuil2.[A1048576].End(xlUp).Row)
With FrmRecherche.ListBox1
.ColumnWidths = "150;100;100;70;60;40;70;30;70;60;130"
.ColumnCount = 11
'.List = R'ligne répetée plus bas !
For I = 1 To UBound(r)
r(I, 9) = Format(r(I, 9), "dd/mm/yyyy") 'j'ai modifié ici tu avait marqué 4 au lieu de 9
Next I
.List = r
End With
FrmRecherche.TextBox2.Value = UBound(r) 'affiche le nombre de produits
End Sub
Sub Filtrer_List()
Dim j As Integer, Tbl(), k As Integer, Col As Integer
r = Feuil2.Range("A7:K" & Feuil2.[A1048576].End(xlUp).Row)
With FrmRecherche
.ListBox1.Clear
Col = .ComboBox1.ListIndex + 1
T = .TextBox1.Value
With .ListBox1
For I = 7 To UBound(r)
If UCase(Left(r(I, Col), Len(T))) = UCase(T) Then
j = j + 1
ReDim Preserve Tbl(1 To UBound(r, 2), 1 To j)
For k = 1 To 11
Tbl(k, j) = r(I, k)
r(I, 9) = Format(r(I, 9), "dd/mm/yyyy")
Next k
End If
Next I
If j <> 0 Then .Column = Tbl Else .Clear
End With
.TextBox2.Value = j
End With
End Sub