Private Sub Worksheet_Change(ByVal Target As Range)
Dim col As Byte 'déclare la variable col (COLonne)
'si le changement a lieu ailleurs que dans la plage B12:C12 ou si la selection contient plus d'une seule cellule, sort de la procédure
If Application.Intersect(Target, Range("B12:C12")) Is Nothing Or Selection.Cells.Count > 1 Then Exit Sub
If Range("B12") = "" Or Range("C12") = "" Then Exit Sub 'si B12 ou C12 est vide, sort de la procédure
Select Case UCase(Range("C12").Value) 'agit en fonction de la lettre (convertie em majuscule) renseignée en C12
Case "A" 'cas "A"
col = 2 'définit la colonne col
Case "B", "C", "D", "E", "F", "G", "H", "I", "J" 'cas "B" à "J"
col = 3 'définit la colonne col
Case "K", "L", "M", "N", "O", "P" 'cas "K" à "P"
col = 4 'définit la colonne col
Case "Q", "R", "S" 'cas "Q" à "S"
col = 5 'définit la colonne col
Case "T", "U", "V", "W", "X", "Y", "Z" 'cas "T" à "Z"
col = 6 'définit la colonne col
End Select 'fin de l'action en fonction de
'place en D2 le resultat de l'intersection de la ligne "recherche de B12 dans la colonne A" et de la colonne "col"
Range("D12").Value = Cells(Columns(1).Find(Range("B12"), , xlValues, xlWhole).Row, col).Value
End Sub