le code :
Option Explicit
Dim source As Workbook, f As Worksheet, fp As Worksheet, tablo, tabloR()
Dim dte As Date, dico As Object
Dim i&, j&, k&
Private Sub ListBox1_Click()
dte = ListBox1
k = 0
For i = 1 To UBound(tablo, 1)
If DateSerial(Year(tablo(i, 7)), Month(tablo(i, 7)), Day(tablo(i, 7))) = CDate(ListBox1) _
And tablo(i, 10) = "En réparation" Then
ReDim Preserve tabloR(1 To UBound(tablo, 2) - 1, 1 To 1 + k)
For j = 2 To UBound(tablo, 2)
tabloR(j - 1, k + 1) = tablo(i, j)
Next j
k = k + 1
End If
Next i
Sheets("Feuil2").Activate
Set fp = ActiveSheet
f.Range("B10:m10").Copy fp.Range("A11")
fp.Range("A12").Resize(UBound(tabloR, 2), 10) = Application.Transpose(tabloR)
fp.Range("A11").CurrentRegion.Copy
Application.DisplayAlerts = False
'sort de ton listbox une fois cliqué sur la date
'Unload Me
End Sub
Private Sub UserForm_initialize()
Set source = ThisWorkbook
Set f = Sheets("Feuil1")
Set dico = CreateObject("Scripting.Dictionary")
tablo = f.Range("A11:M" & f.Range("A" & Rows.Count).End(xlUp).Row)
For i = 1 To UBound(tablo, 1)
dico(DateSerial(Year(tablo(i, 7)), Month(tablo(i, 7)), Day(tablo(i, 7)))) = ""
Next i
ListBox1.List = Application.Transpose(dico.keys)
End Sub
je ne comprend pas la ligne :
dico est déclarer comme variable Objet
ensuite on créer un objet :
Set dico = CreateObject("Scripting.Dictionary")
ensuite on attribue ??
dico(DateSerial(Year(tablo(i, 7)), Month(tablo(i, 7)), Day(tablo(i, 7)))) = ""
c'est bien ça ?