Annuler une impression ???

  • Initiateur de la discussion Initiateur de la discussion Petruchio
  • 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 !

P

Petruchio

Guest
J'ai créé une macro pour pouvoir choiusir le nombre de copie à imprimer et sur quelle imprimante.

Cependant lorsque je clique sur annule ds la fenetre du nombre de copie ou sur la fenetre du choix de l'imprimante ça lance l'impression qd meme.

Alors voilà ma macro
------------------------------------------------------------------------------------
Dim Message, Title, Default, MyValue

Message = "Nombre de copie"
Title = "Impression du classeur"
Default = "1"

MyValue = InputBox(Message, Title, Default)

Application.Dialogs(xlDialogPrinterSetup).Show

ActiveWorkbook.PrintOut Copies:=MyValue? Collate:=True
-------------------------------------------------------------------------------------


Voilà alors que faire ?

Merci
 
Bonjour Petruchio, le Forum

L'appui sur annuler n'implique pas une sortie de la routine
MyValue est variant, quand tu appuie sur annuler, la valeur renvoyée dans myvalue est vide. la routine se poursuit donc avec myvalue vide puisque tu n'as pas de test et provoque un plantage en essayant d'utiliser MyValue=0 (un variant renvoie une valeur en fonction du contexte, dans ce cas la , la valeur attendue est un entier et myvalue renvoie zéro).
il vaut mieux verrouiller la réponse utilisateur sur un nombre par un type 1
et vérifier la valeur renvoyée.

Cordialement, A+

Dim Message, Title, Default, MyValue, Type_Val As Integer

Message = "Nombre de copie"
Title = "Impression du classeur"
Default = "1"
Type_Val = 1
MyValue = InputBox(Message, Title, Default, Type_Val)
If MyValue = "" Then Exit Sub
Application.Dialogs(xlDialogPrinterSetup).Show

ActiveWorkbook.PrintOut Copies:=MyValue
 
Re bonjour petruchio, le Forum

le même code un peu clarifié

Dim MyValue
MyValue = Application.InputBox(Prompt:="Nombre de copie", Title:="Impression du classeur", Default:=1, Type:=1)
If MyValue > 0 Then
Application.Dialogs(xlDialogPrinterSetup).Show
ActiveWorkbook.PrintOut Copies:=MyValue
End If

Cordialement, A+
 
- 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

Réponses
10
Affichages
547
Réponses
1
Affichages
1 K
Réponses
1
Affichages
1 K
Réponses
5
Affichages
937
Réponses
0
Affichages
647
Réponses
8
Affichages
723
Retour