Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim adr As String
    ' Choix_Personnel
    With cbxChoix
        .Visible = Not Intersect(Target, Range("$C$4:$E$16")) Is Nothing And Target.CountLarge = 1
        If .Visible Then
            adr = "SYNTHESE!" & Target.Address
            .ListFillRange = "'BDD'!" & Sheets("BDD").Range("T_BDD[[Choix]:[Personnel]]").Address
            .Left = Target.Left
            .Top = Target.Top
            .Height = Target.Height
            .ListRows = 15
            On Error Resume Next
            'Si la valeur de la cellule n'est pas dans la liste alors erreur
            .LinkedCell = adr
            On Error GoTo 0
        End If
    End With
        ' Choix_Vehicule
    With cbxChoix
        .Visible = Not Intersect(Target, Range("$F$4:$G$16")) Is Nothing And Target.CountLarge = 1
        If .Visible Then
            adr = "SYNTHESE!" & Target.Address
            .ListFillRange = "'BDD2'!" & Sheets("BDD2").Range("T_BDD2[[Choix]:[Vehicule]]").Address
            .Left = Target.Left
            .Top = Target.Top
            .Height = Target.Height
            .ListRows = 15
            On Error Resume Next
            'Si la valeur de la cellule n'est pas dans la liste alors erreur
            .LinkedCell = adr
            On Error GoTo 0
        End If
    End With
        ' Choix_Nuit
    With cbxChoix
        .Visible = Not Intersect(Target, Range("$H$4:$I$16")) Is Nothing And Target.CountLarge = 1
        If .Visible Then
            adr = "SYNTHESE!" & Target.Address
            .ListFillRange = "'BDD3'!" & Sheets("BDD3").Range("T_BDD3[[Choix]:[Lieu]]").Address
            .Left = Target.Left
            .Top = Target.Top
            .Height = Target.Height
            .ListRows = 15
            On Error Resume Next
            'Si la valeur de la cellule n'est pas dans la liste alors erreur
            .LinkedCell = adr
            On Error GoTo 0
        End If
    End With
End Sub