Obliger une saisie d'entier probleme

Luigiz31 -  
ccm81 Messages postés 11033 Statut Membre -
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. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    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
  2. Luigiz31
     
    je ne comprends pas vraiment comment faire utiliser la booléenne dans cas la peut tu me le mettre en code stp ?
    0
  3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
  4. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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