Bonsoir
Essaie en chnageant les codes ainsi, mais às-tu vraiment besoin d'un userform?
pourquoi tu n'utilises pas validation de données sous la forme liste déroulante
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Then
Target.Select
UserForm4.Show
End If
End Sub
Private Sub ListBox1_Click()
ActiveCell.Offset(0, 1) = ListBox1
ActiveCell.Offset(0, 2).Select
Unload Me
End Sub