Bonjour Bernard, le Forum.
Comme dans ton exemple modifié ci-joint, je te propose le code suivant :
Dans le module de la feuille 1 :
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim Ok As Boolean
Dim C As Byte, L As Byte
Cancel = True
If Not Application.Intersect(Target, Range("c8:f17")) Is Nothing Then
'Mémorise les coordonnées de la cellule cible
L = Target.Row
C = Target.Column
'Vérifie que la cellule précédente ne soit pas vide
Select Case C
Case 3
Ok = Cells(L, 1) <> ""
Case Else
Ok = Cells(L, C - 1) <> ""
End Select
If Ok Then UserForm1.Show
End If
End Sub
Dans le module de code du Userform :
Private Sub ListBox1_Click()
'La dernière colonne ne peut contenir que l'expression "Valider"
If ActiveCell.Column = 6 And ListBox1.Text <> "valider" Then Exit Sub
ActiveCell = ListBox1.Text
Unload Me
End Sub
Cordialement.
Didier_mDF