Bonjour Jean-Michel, bonjour le forum,
Une proposition VBA ci-dessous :
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes)
Dim I As Integer 'déclare la variable I (Incrément)
Dim K As Integer 'déclare la variable K (incrément)
Set O = Worksheets("Feuil1") 'définit l'onglet O
TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV
If TV(I, 1) = "Débit" Then 'condition : si la donnée en colonne 1 de TV est égale à "Débit"
K = K + 1 'incrémente K
ReDim Preserve TL(1 To K) 'redimensionne le tableau des lignes TL
TL(K) = TV(I, 2) 'récupère la donnée ligne I colonne 2 de TV dans la ligne K de TL
End If 'fin de la condition
Next I 'prochaine ligne de la boucle
With Range("E2").Validation 'prend en compte la validation de données dans la cellule E2
.Delete 'supprime une éventuelle ancienne validation
.Add xlValidateList, Formula1:=Join(TL, ",") 'définit la validation de données (liste avec TL comme argument)
End With 'fin de la prise en compte de la validation de données dans la cellule E2
End Sub