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
 

Statistiques des forums

Discussions
312 111
Messages
2 085 391
Membres
102 882
dernier inscrit
Sultan94