Private Sub UserForm_Initialize()
Dim Compteur&, Dico_Devis, Dico_Noms, Dico_Villes, Dico_Factures
Set Dico_Noms = CreateObject("Scripting.Dictionary")
Set Dico_Villes = CreateObject("Scripting.Dictionary")
Set Dico_Devis = CreateObject("Scripting.Dictionary")
Set Dico_Factures = CreateObject("Scripting.Dictionary")
If Not Worksheets("A.Fact").Range("A2").Value = "" Then
Tab_Devis = Worksheets("A.Fact").Range("A2:K" & Worksheets("A.Fact").Cells(Worksheets("A.Fact").Rows.Count, 1).End(3).Row).Value
For Compteur = LBound(Tab_Devis, 1) To UBound(Tab_Devis, 1)
If Not Dico_Factures.Exists(Tab_Devis(Compteur, 1)) Then Dico_Factures.Add Tab_Devis(Compteur, 1), Compteur + 1
Next Compteur
End If
Tab_Devis = Worksheets("A.DV").Range("A2:L" & Worksheets("A.DV").Cells(Worksheets("A.DV").Rows.Count, 1).End(3).Row).Value
For Compteur = LBound(Tab_Devis, 1) To UBound(Tab_Devis, 1)
Tab_Devis(Compteur, 11) = Compteur + 1
If Dico_Factures.Exists(Tab_Devis(Compteur, 1)) Then Tab_Devis(Compteur, 12) = Dico_Factures(Tab_Devis(Compteur, 1))
If Not Dico_Noms.Exists(Tab_Devis(Compteur, 4)) Then Dico_Noms.Add Tab_Devis(Compteur, 4), Tab_Devis(Compteur, 4)
If Not Dico_Villes.Exists(Tab_Devis(Compteur, 6)) Then Dico_Villes.Add Tab_Devis(Compteur, 6), Tab_Devis(Compteur, 6)
If Not Dico_Devis.Exists(Year(Tab_Devis(Compteur, 2))) Then Dico_Devis.Add Year(Tab_Devis(Compteur, 2)), Year(Tab_Devis(Compteur, 2))
Next Compteur
ReDim Tab_Devis_Filtre_Final(LBound(Tab_Devis, 1) To UBound(Tab_Devis, 1), LBound(Tab_Devis, 2) To UBound(Tab_Devis, 2))
Tab_Devis_Filtre_Final = Tab_Devis
Dim lig&: lig = Worksheets("A.Fact").Cells(Rows.Count, 1).End(3).Row
TextBox1 = "FACT" & Year(Date) & "-" & Format(lig, "000") 'N° Facture
JourFre = Format(Date, "dd/mm/yyyy"): Rechercher.List = Tab_Devis
FiltreNom.List = Dico_Noms.Keys: FiltreVille.List = Dico_Villes.Keys: FiltreDevis.List = Dico_Devis.Keys
Re_Ini_Rechercher Me.FiltreNom.Text, Me.FiltreVille.Text, Me.FiltreDevis.Text
End Sub