Bonjour,
Il me semble que l'event beforeprint repond à votre demande. A tester pour voir si le cancel ne lance effectivement pas la macro.
Si ce n'est pas possible alors je vous conseille d'imprimer votre fichier via un bouton vba qui lui verifiera ou non si vous confirmez l'impression. En effet il n'y a pas, pour Excel, d'event AfterPrint.
Private Sub Workbook_BeforePrint(Cancel As Boolean)
' votre macro
End Sub