Bonjour Guigui, le forum
ta macro plante car l'appui sur annuler renvoie faux, comme ce n'est pas un nombre et que tu as défini n en string, cela plante. Tu auras le même plantage si tu entres une lettre et valide.
Pour ce type d'utilisation, il vaut mieux utiliser la méthode inputbox plutôt que la fonction inputbox pour pouvoir spécifier le type de données, regarde dans l'aide pour les différences. Dans le code suivant, en cas d'annulation, n retournera un boolean faux donc 0 et toute autre donnée que des chiffres sera refusée à la saisie(n étant long, un chiffre à virgule sera arrondi et il n'y aura pas de plantage contrairement à l'utilisation d'un integer qui pourrait planter sur une valeur supérieure à 32767). On utilise un if pour borner des limites de nombre de copies.
Cordialement, A+
Private Sub CommandButton1_Click()
Dim N As Long
N = Application.InputBox(prompt:="Combien de copies imprimer ?", Title:="Nombre d'exemplaires", Default:=1, Type:=1)
If N > 0 And N < 1000 Then ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=N, Collate:=True
End Sub