Gary dispose d’un classeur en lecture seule auquel plusieurs utilisateurs peuvent accéder. Ils peuvent modifier les cellules mais pas enregistrer leur travail. En quittant le classeur, Gary souhaite que Excel se ferme simplement sans informer l’utilisateur qu’il est en lecture seule et en lui donnant la possibilité d’enregistrer une copie.

Pour ce faire, il est préférable d’utiliser une macro pour modifier l’indicateur Enregistré dans le classeur, juste avant de fermer. Cet indicateur indique, en interne, si un classeur doit être enregistré ou non. Si l’indicateur est False, Excel sait que le classeur n’a pas été enregistré (des modifications ont été apportées sans enregistrer). Si votre macro définit l’indicateur sur True, Excel se fermera directement car il pense que toutes les modifications ont été enregistrées.

Voici à quoi devrait ressembler la macro, dans sa forme la plus simple:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

If ThisWorkbook.ReadOnly Then     ThisWorkbook.Saved = True   End If End Sub

La macro doit être ajoutée à l’objet ThisWorkbook dans l’éditeur VBA.

De cette façon, il est automatiquement exécuté juste avant la fermeture du classeur. L’indicateur est défini sur True et lorsque la macro se termine, Excel poursuit ses procédures de fermeture normales. Étant donné qu’Excel pense qu’il n’y a pas de modifications non enregistrées, l’utilisateur ne voit aucun message et le classeur est fermé.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (10349) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.