Si vous créez des classeurs destinés à être utilisés par d’autres personnes, vous souhaiterez peut-être désactiver les options d’impression (menu et barre d’outils) chaque fois qu’un classeur spécifique est ouvert. Le moyen le plus simple de le faire consiste à utiliser la macro Auto_Open (qui s’exécute immédiatement après l’ouverture du classeur qui le contient) pour rendre les commandes d’impression de menu et de barre d’outils plus disponibles. Ce qui suit fera très bien l’affaire:

Sub Auto_Open()

'Prevent Printing via menu     MenuBars(xlWorksheet).Menus("File").MenuItems("Print...").Delete

'Turn off Print icon wherever it may be in the toolbars     For J = 1 To Toolbars.Count         For K = 1 To Toolbars(J).ToolbarButtons.Count             If Toolbars(J).ToolbarButtons(K).Id = 2 Then                 Toolbars(J).ToolbarButtons(K).Enabled = False             End If             If Toolbars(J).ToolbarButtons(K).Id = 3 Then                 Toolbars(J).ToolbarButtons(K).Enabled = False             End If         Next K     Next J End Sub

Vous pouvez également créer une macro spéciale Auto_Close qui restaure les menus et les barres d’outils lorsque le classeur est fermé:

Sub Auto_Close()

'Reset the menu items     For Each mb In MenuBars         mb.Reset     Next mb

'Reset the buttons     For J = 1 To Toolbars.Count         For K = 1 To Toolbars(J).ToolbarButtons.Count             If Toolbars(J).ToolbarButtons(K).Id = 2 Then                 Toolbars(J).ToolbarButtons(K).Enabled = True             End If             If Toolbars(J).ToolbarButtons(K).Id = 3 Then                 Toolbars(J).ToolbarButtons(K).Enabled = True             End If         Next K     Next J End Sub

Vous devez noter que ces macros ne s’exécutent que lorsque le classeur spécifique est ouvert et fermé. Cela signifie que votre capacité d’impression ne sera pas disponible tant que le classeur sera ouvert, même pour tous les autres classeurs ouverts que vous pourriez avoir.

Une autre approche consiste à annuler toute impression avant qu’elle ne démarre. Ce qui suit est une macro que vous pouvez placer dans un module de classeur:

Private Sub Workbook_BeforePrint(Cancel As Boolean)

Cancel = True End Sub

Chaque fois que quelqu’un essaie d’imprimer le classeur, le processus est automatiquement annulé. Sinon, les choix de menu et les boutons de la barre d’outils restent visibles. (Vous pouvez également modifier la macro non seulement pour annuler, mais pour afficher une boîte de message indiquant que les utilisateurs ne sont pas autorisés à imprimer.)

_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 (2556) s’applique à Microsoft Excel 97, 2000, 2002 et 2003.