Obliger une saisie d'entier probleme

Luigiz31 -  
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   -
bonjour a tous,
j'essai de faire une macro sous exel avec une input box dans laquelle je rentre un caractère et tant que ce caractère n'est pas un nombre et qu'il n'est pas entier sa affiche un msgbox. Le problème est que pour la boucle pour tester si c'est un entier ou un décimale est "zapper" il ne passe pas dedans et je ne comprend pas pourquoi.

Dim nombre as string
nombre = InputBox("Entrez une une valeur entière de x", "Valeur de x")
While IsNumeric(nombre) = False
MsgBox "Vous n'avez pas entré un nombre "
nombre = InputBox("entrez une une valeur entière de x", "Valeur de x")
Wend
While nombre Mod 1 <> 0
MsgBox "Vous n'avez pas entré un nombre entier "
nombre = InputBox("entrez une une valeur entière de x", "Valeur de x")
Wend
'blablabla

merci d'avance pour votre aide
A voir également:

4 réponses

NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
A la place de faire 2 boucles, fais-en une seule, et utilises une variable booléenne pour indiquer si le nombre est bon ou pas.
0
Luigiz31
 
je ne comprends pas vraiment comment faire utiliser la booléenne dans cas la peut tu me le mettre en code stp ?
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Bonjour,

Sub essai()
Dim rep As Integer
rep = Application.InputBox("Entrez une une valeur entière de x", "Valeur de x", Type:=1)
End Sub

0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour à tous

Ou si tu ne veux pas accepter une saisie non entière

Dim rep
Do
  rep = Application.InputBox("Entrez une une valeur entière de x", "Valeur de x", "", Type:=1)
Loop Until rep = Int(rep)


Cdlmnt
0