XL 2019 Interdire l'impression du menu fichier d'Excel, mais l'autoriser via une macro.

RJSCVF

XLDnaute Nouveau
Bonjour à tous !
J'avais posté récemment une discussion sur le tri automatique et laquelle à reçu satisfaction.
J'ai une préoccupation ! La voici :
J'ai un classeur qui contient 7 feuilles. je voudrais désactiver, uniquement dans trois feuilles de ce classeur, le bouton imprimer d'Excel du menu Fichier ou Ctrl+P, mais cependant autoriser l'impression seulement par un bouton 'Imprimer et Archiver' que j'ai créé à l'aide d'une macro. Pour les 4 autres feuilles (qui n'ont pas le bouton 'Imprimer et Archiver'), l'impression se fera normalement par le menu Fichier d'Excel, Ctrl+P inclus.
Merci pour votre aide.
Amicalement
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonsoir le fil,

[Préambule]
Tu sais que ce genre de protection est illusoire et facilement contournable?
[/Préambule]

De plus avec les dernières versions d'Excel, c'est plus coton de "programmer" le ruban.

Donc est-ce que le jeu en vaut la chandelle?
 

Staple1600

XLDnaute Barbatruc
Re

Un petit exemple (pour te monter comment cela est facilement "outrepassable")
A mettre dans ThisWorkBook
VB:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If PrtOK Then
Cancel = False
Else
MsgBox "Vous n'êtes pas autorisé à imprimer cette feuille!", vbCritical, "Achtung,Baby !!!"
Cancel = True
End If
End Sub
A mettre dans un module standard
VB:
Sub test_OUI()
Impression Sheets("Feuil1"), True
End Sub
Sub test_NON()
Impression Sheets("Feuil2"), False
End Sub

Private Sub Impression(f As Worksheet, vPrint As Boolean)
PrtOK = vPrint
f.PrintPreview 'aperçu avant impression
'f.printout ' pour imprimer
End Sub
NB: Pour tester, il faut deux feuilles dans le classeur nommées Feuil1 et Feuil2
 

RJSCVF

XLDnaute Nouveau
Bonjour Staple1600 !
Merci pour la réponse.
J'ai essayé les codes que tu m'as envoyés. Ils ne répondent pas tout à fait à ce que je cherche à faire.
Mais après réflexion, je trouve qu'il serait plus simple que la macro de 'Imprimer et Archiver' soit lancée lorsque l'utilisateur fait une impression classique (ou Ctrl+P) ?
Votre aide est la bienvenue, si vous voudriez bien m'aider avec un code qui peut faire cela.
Merci
 

Staple1600

XLDnaute Barbatruc
Bonsoir

Tu as les mis les codes au bon endroit
Parce que lors de mes tests, cela fonctionne.

PS: Mais bon, il suffit d'ouvrir le classeur dans Libre Office, ou sans activer les macros pour laisser l'utilisateur imprimer sans restriction.
 

Discussions similaires


Haut Bas