probleme inpubox et bouton annuler

G

Guigui

Guest
hello le forum,

Je souhaite demander a l'utilisateur de mon fichier combien de copie il désire d'une impression. pas de probleme pour ceci mais si il clique "annuler", j'ai un plantage.

Private Sub CommandButton1_Click()
Dim N As String
N = InputBox("Combien de copie imprimer ?", "NOMBRE D'EXEMPLAIRE ?", "1")
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=N, Collate:=True
End Sub

je ne vois pas ce qui cloche..

merci d'avance pour votre aide
Guillaume
 
Y

Yeahou

Guest
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
 

Statistiques des forums

Discussions
312 939
Messages
2 093 789
Membres
105 836
dernier inscrit
Frederic14