Bonjour le fil, bonjour le forum,
Une proposition VBA si ça intéresse quelqu'un (à placer dans le composant VBA : Feuil1 (BDD)) :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
If Target.Address <> "$G$3" Then Exit Sub 'si le changement a lieu ailleurs que dans la cellule G3, sort de la procédure
Range("G5").CurrentRegion.ClearContents 'efface d'éventuelles anciennes valeurs
TV = Range("A1").CurrentRegion 'définit le tableau des valeurs TV
For I = 2 To UBound(TV) 'boucle sur toutes ls lignes I du tableau des valeurs TV (en partant de la seconde)
If TV(I, 1) = Target.Value Then 'condition : si la donnée ligne I colonne 1 de TV est égale à G3
'définit la cellule de destination DEST (G5 si G5 est vide, sinon la première cellule vide de la colonne G)
Set DEST = IIf(Range("G5").Value = "", Range("G5"), Cells(Application.Rows.Count, "G").End(xlUp).Offset(1, 0))
DEST.Value = TV(I, 2) 'renvoie dans DEST la donnée ligne I colonne 2 de TV
End If 'fin de la condition
Next I 'prochaine ligne de la boucle
End Sub
@James : encore merci...