• Initiateur de la discussion Initiateur de la discussion ONYXTEQUILA
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

O

ONYXTEQUILA

Guest
Bonjour à tous,

Je voudrais savoir si c'est possible d'interdire l'utilisation du menu "fichier, imprimer" dans excel. J'ai crée un bouton "imprimer". Autrement dit , obliger l'utilisateur à cliquer sur le bouton "imprimer" au lieu de faire "fichier, imprimer".

Merci d'avance

onyxtequila
 
Re : Bouton "impression"

Bonjour

Peut-être avec un petit booleen public

tu mets ton booleen à true dans le code de ton bouton avant d'imprimer et tu le remets à false après

et dans le thisworkbook

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If toto = False Then Cancel = True
End Sub

Bon courage
 
Re : Bouton "impression"

Bonjour ONYXTEQUILA

peut être comme ci dessous, code à placer dans le module "ThisWorkbook :

Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Cancel = True
End Sub

Par contre il faudra sans doute désactiver les procédures evènementielles ponctuellement en rajoutant 2 lignes de code dans ta macro qui lance l'impression, comme ci dessous :

Code:
Private Sub CommandButton1_Click()
Application.EnableEvents = False
'TON CODE
Application.EnableEvents = True
End Sub

bonne journée
@+
 
Re : Bouton "impression"

Re

Bonjour à toi aussi

Pour le Application.EnableEvents = False il est impératif d'y faire très attention. Car en cas de bug Bonjour les dégats. Voilà pourquoi perso j'utilise toujours une variable public de type booleen

Voir ce fil d'explication.

https://www.excel-downloads.com/threads/peut-on-empecher-un-evenement-de-se-produire.19860/

et on en a parlé aussi sur d'autres fils Quelques exemples :

https://www.excel-downloads.com/threads/somme-dans-uns-seule-cellule.58183/
https://www.excel-downloads.com/threads/desactiver-le-worksheet-_hange.36393/
https://www.excel-downloads.com/threads/desactiver-une-macro-usf.56485/
https://www.excel-downloads.com/thr...entielles-de-meme-type-sur-le-workbook.64237/

Bonne journée
 
Re : Bouton "impression"

rebonjour

en fait, ce code fonctionne mais ce que je voulais c'est interdire le "fichier, imprimer" et obliger l'utilisateur à se servir du bouton "imprimer" que j'ai créé.

Peut-être que tu pourras m'aider encor sur ce coup là

Merci

Onyxtequila
 
Re : Bouton "impression"

Re Onyxtequila

a priori c'est bien ce que fait le code que nous t'avions donné, il interdit de passer par barre de menu => fichier > imprimer, je comprend pas bien ce que tu veux de plus. Soit un message à l'utilisateur comme ci dessous :

le code deviendrait :

Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If toto = False Then
MsgBox "Passer par le bouton prévu à cet effet"
Cancel = True
End If
End Sub

ou alors tu peux peux être lancer ta proc associé au bouton :

Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If toto = False Then
Cancel = True
Feuil1.CommandButton1_Click
End If
End Sub

@+
 
Re : Bouton "impression"

Re ONYXTEQUILA

il faut définir ta variable en public en tête d'un module standard comme ci dessous :

Code:
Public toto As Boolean

il faut ensuite mettre à true cette même variable sur l'évènement click de ton bouton comme ci de ssous :

Code:
Private Sub CommandButton1_Click()
tot = True
'TON CODE
End Sub

et là ca devrait marcher, sinon mets ton fichier en pièce jointe.

bonne soirée
@+
 
Re : Bouton "impression"

Rebonjour

J'ai du mal à comprendre j'envoie le fichier si tu peux le regarder ce serait sympa. Je ne suis pas aussi doué que vous tous en vba, je débute, tout ça est très compliqué

Merci beaucoup

onyxtequila
 
Re : Bouton "impression"

Re

Bon pour recapituler

dans un module en haute de culi-ci avant tout code

Public Toto as Boolean

puis dans le code de ton bouton

toto=true
ton code d'impression
toto=false

et dans le thisworkbook

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If toto = False Then Cancel = True
End Sub
 
Re : Bouton "impression"

Re

C'est bon ça marche, désolé mais je débute et tout ce qui vous parait simple est pour moi compliqué. A force, je devrais pouvoir m'en sortir.

En tout cas, un grand merci à tous ceux qui sont intervenu pour m'aider.

Bonne soirée

onyxtequila
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Lecture vocale USF
Réponses
5
Affichages
285
Réponses
3
Affichages
214
  • Question Question
Microsoft 365 couleur et ligne
Réponses
6
Affichages
292
Réponses
4
Affichages
332
Réponses
23
Affichages
672
Réponses
32
Affichages
1 K
Retour