Merci pour vos réponses
j'ai essayé comme ceci en activant la reference "Microsoft Visual Basic for Applications Extensibility 5.3"
Sub essai() ' dans un module
If Range("a1") = "" Then
Call Xray
Else
MsgBox " deja remplie"
Exit Sub
End If
End Sub
et
Sub test() 'dans un second module
Dim i%
With ThisWorkbook.VBProject.VBComponents("essai").CodeModule 'Pensez à changer le nom du module
For i = 1 To .CountOfLines
If .Lines(i, 1) = "Call Xray" Then .ReplaceLine i, "'Call Xray"
Next
End With
End Sub
j'obtient le message d'erreur "l'accès par programme au projet visual basic n'est pas fiable"
finalement c'est résolu ! en tout cas merci pour réponses elles sont geniales !!