Bonjour, Salut ThauThème,
Suggestion : une ListBox sur la feuille. Une liste des items que l'on souhaite pouvoir insérer dans une cellule est affectée à sa propriété ListFillRange. Non visible par défaut. Rendue visible par clic droit sur la cellule que l'on veut remplir et positionnée sur cette cellule.
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim i%
Set c = Target
With lbxLst
.Left = c.Left
.Top = c.Top
.TopIndex = 0
.Visible = True
.Activate
End With
Cancel = True
End Sub
Ici ListBox nommée lbxLst. TopIndex = 0 est destiné à afficher la liste à partir du début dans la ListBox, et Activate à lui donner le focus. La cellule cliquée est mémorisée dans une variable module :
Dim c As Range
L'utilisateur peut choisir un ou plusieurs items de la liste (ou aucun !). En déplaçant le curseur hors de la ListBox cela déclenche l'évènement LostFocus :
Private Sub lbxLst_LostFocus()
Dim T, i%, m%
With lbxLst
For i = 0 To .ListCount - 1
If .Selected(i) Then
T = T & Chr(10) & .List(i)
m = m + 1
.Selected(i) = False
End If
Next i
.Visible = False
End With
If m > 0 Then
T = Replace(T, Chr(10), "", 1, 1)
With c
.Value = T
If m > 1 Then .WrapText = True
End With
End If
Set c = Nothing
End Sub
Les items sélectionnés sont récupérés et affectés à la cellule...
Cordialement.