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