Option Explicit
Sub ChargeCboConducteur()
Dim Plage As Range, Cel As Range
Dim PlageBlanc As Range, CelBlanc As Range
Dim Dico As New Dictionary, Lg&, Chauffeur$, MD As Date, Kms&
frm_Saisie.cboConducteur.Clear
Set Plage = Range("TabSalarie[PERMIS]").Cells
For Each Cel In Plage
If StrConv(Cel.Text, vbUpperCase) = "OUI" Then
Lg = Cel.Row - Range("TabSalarie").Row + 1
If Not Dico.Exists(Range("TabSalarie[Salarié]").Cells(Lg)) Then Dico.Add Range("TabSalarie[Salarié]").Cells(Lg).Text, ""
End If
Next Cel
Set PlageBlanc = Range(Range("TabSuivi").ListObject.ListColumns(DateRetour).Range.SpecialCells(xlCellTypeBlanks).Address)
For Each CelBlanc In PlageBlanc
Lg = CelBlanc.Row - Range("TabSuivi").Row + 1
If Range("TabSuivi").ListObject.ListRows.Count = 0 Then GoTo Saut
Set Plage = Range("TabSuivi[[Conducteur]:[Passager8]]").ListObject.ListRows(Lg).Range.SpecialCells(xlCellTypeConstants, xlTextValues)
For Each Cel In Plage
Select Case TrvSuivi
Case False
If Dico.Exists(Cel.Text) Then Dico.Remove (Cel.Text)
Case True
If Range("TabSuivi").Cells(Lg, Vehi) <> frm_Saisie.cboVehi.Text Then
If Dico.Exists(Cel.Text) Then Dico.Remove (Cel.Text)
Else
Chauffeur = Range("TabSuivi").Cells(Lg, Conducteur)
MD = Range("TabSuivi").Cells(Lg, DateMad)
Kms = Range("TabSuivi").Cells(Lg, KmsMAD)
End If
End Select
Next Cel
Next CelBlanc
Saut:
frm_Saisie.cboConducteur.List() = Dico.Keys
If TrvSuivi Then frm_Saisie.cboConducteur.Text = Chauffeur: frm_Saisie.TxtDate = MD: frm_Saisie.txtKms = Kms
End Sub
Sub ChargelsbPassager()
Dim Plage As Range, Cel As Range
Dim PlageBlanc As Range, CelBlanc As Range
Dim Dico As New Dictionary, DicoVoit As New Dictionary, Lg&, Mot$
frm_Saisie.lsbPassager.Clear
Set Plage = Range("TabSalarie[Salarié]").Cells
For Each Cel In Plage
If Not Dico.Exists(Cel.Text) Then Dico.Add Cel.Text, ""
Next Cel
Set PlageBlanc = Range(Range("TabSuivi").ListObject.ListColumns(DateRetour).Range.SpecialCells(xlCellTypeBlanks).Address)
For Each CelBlanc In PlageBlanc
Lg = CelBlanc.Row - Range("TabSuivi").Row + 1
If Range("TabSuivi").ListObject.ListRows.Count = 0 Then GoTo Saut
Set Plage = Range("TabSuivi[[Conducteur]:[Passager8]]").ListObject.ListRows(Lg).Range.SpecialCells(xlCellTypeConstants, xlTextValues)
For Each Cel In Plage
Select Case TrvSuivi
Case False
If Dico.Exists(Cel.Text) Then Dico.Remove (Cel.Text)
Case True
If Range("TabSuivi").Cells(Lg, Vehi) <> frm_Saisie.cboVehi.Text Then
If Dico.Exists(Cel.Text) Then Dico.Remove (Cel.Text)
Else
If Not DicoVoit.Exists(Cel.Text) Then DicoVoit.Add Cel.Text, ""
End If
End Select
Next Cel
Next CelBlanc
Saut:
If Dico.Exists(frm_Saisie.cboConducteur.Text) Then Dico.Remove (frm_Saisie.cboConducteur.Text)
frm_Saisie.lsbPassager.List() = Dico.Keys
If TrvSuivi Then
For Lg = 0 To frm_Saisie.lsbPassager.ListCount - 1
Mot = frm_Saisie.lsbPassager.List(Lg)
If DicoVoit.Exists(Mot) Then frm_Saisie.lsbPassager.Selected(Lg) = True
Next Lg
End If
End Sub