Sub Afficher2()
Dim Lcol As Range, Lrow As Range
' On définit la plage où se situent les données
Set Lrow = Columns("A").Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
Set Lcol = Rows(2).Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
Set Data = Range("C3", Cells(Lrow.Row, Lcol.Column))
' On continue uniquement si la cellule selectionnée fait partie des données
If Not Intersect(Selection, Data) Is Nothing Then
UserForm2.Show
Else
MsgBox "vous n'avez pas sélectionné une cellule donnée", vbCritical
End If
End Sub