InputBox

  • Initiateur de la discussion Denis
  • Date de début
D

Denis

Guest
Bonjour le forum,

je suis au milieu d'une macro et je coince...

A l'aide d'une InputBox je demande à l'utilisateur de saisir un numéro de semaine avec l'instruction suivante :
NumSem = InputBox("Entrer le numéro de la semaine ")
(j'ai défini NumSem comme Integer)
Je compare ensuite cette valeur à d'autres valeurs de type Integer.

Lorsqu'utilisateur saisit bien une valeur, pas de problème.

Par contre, s'il appuie sur le bouton "Annuler", le programme plante. J'ai vu en fait que, lorsqu'un clic sur le bouton "Annuler" est effectué, la valeur False est renvoyée. Comme ma variable NumSem est de type integer il y a incompatibilité de type...

Comment faire pour garder la valeur saisie par l'utilisateur sous forme de nombre pour pouvoir la comparer et éviter ce plantage ?

Merci pour votre aide et bonne journée à vous tous

Denis
 
A

Arnaud

Guest
salut,

tu peut par exemple récupérer t'a valeur dans un Variant, ce qui te permet donc de récup autant les integer que les boolean et après tu test ta variable pour savoir son type en faisant un IsNumeric(TaVariable)
si tu reçois true c que ta chaine est numéric.
 
@

@+Thierry

Guest
Bonsoir Denis, Arnaud, le Forum

La réponse d'Arnaud est tout à fait correcte. Mais juste dans un autre ordre d'idée on peut aussi créer un gestionnaire d'erreur simple :

Sub InputBoxNumSem()
Dim NumSem As Byte

On Error GoTo ErrorHandler
NumSem = InputBox("Entrer le numéro de la semaine ")

'<<<< Ta Macro Ici

Exit Sub

ErrorHandler:
If Err = 13 Then
MsgBox "Vous devez Saisir un Numéro de Semaine, sinon la macro ne s'exécutera pas"
Else
MsgBox "Erreur non gérée " & Err.Number & " " & Err.Description
End If
End Sub

Bonne Soirée
@+Thierry
 

Discussions similaires

Réponses
8
Affichages
533

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 016
dernier inscrit
Mokson