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