Option Compare Text
Const Row_Data = 4 ' Ligne où commencent les données
Function Bld_List()
Dim Plage As Range, Cel As Range, Nb_Rows As Long, I As Long
' Suppession des noms existants de type Bd_
On Error Resume Next
With Me.Names
For I = .Count To 1 Step -1
If .Item(I).Name Like "'" & Me.Name & "'!Bd_*" _
Then .Item(I).Delete
Next
End With
On Error GoTo 0
' Calcul du nombre de lignes de données
Nb_Rows = (Cells(Rows.Count, "A").End(xlUp).Row - Cells(Row_Data, "A").Row) + 1
For Each Cel In [E:F].Rows(Row_Data - 1).Cells ' pour Colonnes Nom et Prénom
' On crée un nom désignant une plage de données en colonne
Nameid = "Bd_" & Cel.Address(False, False)
Set Plage = Cells(Row_Data, Cel.Column).Resize(Nb_Rows)
Me.Names.Add Nameid, "='" & Me.Name & "'!" & Plage.Address
Cel.Interior.Color = 3969910
' on définit une listes de validation à partir du nom créé
With Cel.Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=" & Nameid
End With
Next
End Function