André, voici un code qui t'économisera un clic, à ajouter dans thisworkbook à la suite de l'optimisation de Ti...
Tiens moi au courant si satisfaisant stp, Merci, FD
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
ByVal Target As Excel.Range)
Dim Ctrl As CommandBarControl
Dim Cel As Range, Plage As Range
Dim NbItem As Long, Boucle As Long
Dim DejaPris As Boolean
For Each Ctrl In Application.CommandBars("cell").Controls
If Ctrl.Tag = "brccm" Then Ctrl.Delete
Next Ctrl
With ActiveCell
If .Row = 1 Then Exit Sub
ReDim ListItem(1 To .Row)
Set Plage = Range(Cells(1, .Column), .Offset(-1, 0))
End With
For Each Cel In Plage
'inutile de boucler au delà de NbItem, le reste sera vide !
For Boucle = 1 To NbItem
If Cel.Value = ListItem(Boucle) Then
DejaPris = True
Exit For
End If
Next Boucle
If Not DejaPris And Cel.Value <> "" Then
NbItem = NbItem + 1
ListItem(NbItem) = Cel.Value
With Application.CommandBars("cell").Controls _
.Add(Type:=msoControlButton, before:=6, temporary:=True)
.Caption = CStr(Cel.Value)
.OnAction = "EcrisValeur(" & NbItem & ")"
.Tag = "brccm"
End With
End If
DejaPris = False
Next Cel
Application.CommandBars("cell").ShowPopup
End Sub