Salut,
Comme tu ne fournis pas de fichier exemple, j’ai été obligé d’en créer un moi-même pour faire mes tests Dans le fichier ci-joint, ton code fonctionne parfaitement. Ton problème doit donc venir par exemple d’une feuille mal orthographiée ou je ne sais quoi. Sans voir ton fichier, c’est pratiquement impossible de t’aider plus.
Tu pourrais simplifier ton code de la manière suivante
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Worksheets("Résultats et Impression").Range("E5:G6,E8:G9,E11:G11,B13:D14,A17:C29,D17:G29,A31:C43,D31:G43,A45:G48").ClearContents
End Sub
Si en plus tu es sur la feuille "Résultats et Impression" lorsque tu refermes ton fichier, tu pourrais même laisser tomber cette référence.
Et enfin, si tu le désires, tu pourrais encore forcer l’enregistrement automatique de ton fichier lorsque tu le refermes – mais avec les risques que ça comporte – afin qu’Excel ne te demande pas à chaque fois si tu veux enregistrer les dernières modifications apportées par le code.
Cordialement.