Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Col%, DL%, ListName$, NomFeuille$
On Error GoTo Fin
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("Q1:Q10000")) Is Nothing Then
If Cells(Target.Row, "E") = "" Then Exit Sub ' car pas d' OP.
Col = Application.Match(Cells(Target.Row, "E"), Sheets("Feuil2").[1:1], 0) ' recherche OP dans la liste
If Col = 0 Then Exit Sub ' car l' OP n'existe pas
With Sheets("Feuil2")
NomFeuille = .Name ' Nom de la feuille
DL = .Cells(65000, Col).End(xlUp).Row ' Dernière cellule
ListName = "=" & NomFeuille & "!R2C" & Col & ":R" & DL & "C" & Col & "" ' Def de la plage
ActiveWorkbook.Names("Liste").RefersToR1C1 = ListName ' Affecter Nom
End With
End If
Fin:
End Sub