Obliger une saisie d'entier probleme

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

4 réponses

  1. Modérateur
    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
    1. je ne comprends pas vraiment comment faire utiliser la booléenne dans cas la peut tu me le mettre en code stp ?
      0
      1. Contributeur
        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
        1. 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