Vérification qu'un nombre est entier

  • Initiateur de la discussion Q
  • Date de début
Q

Q

Guest
Bonsoir!

En fait, je souhaite demander une variable à l'utilisateur est vérifier s'il s'agit bien d'un entier naturel non nul.

J'ai écrit la macro suivante:

[Dim N as Variant

Sub entrerN()

Do
N = InputBox(' Veuillez entrez une valeur de N entière positive')
Loop Until (IsNumeric(N) = True And N = Fix(N))
N = Fix(N)

End Sub]

Le problème avec cette macro , c'est que Fix ne prend en argument que les nombre et je pense que VB n'aime pas que je déclare en Variant. Le problème, c'est que si je ne le fait pas, et que je déclare en single, il me met un message d'erreur lorsque je rentre une lettre dans l'inputbox. En plus après j'utilise N comme un integer et je sais pas si le fait de faire fix(N) suffit à le faire assimiler à un integer pour la suite
 

Zon

XLDnaute Impliqué
Salut,

En utilisant application.inputbox tu peux mettre n en single et supprimer la boucle.

Sub entrerN()
Dim N!
n=nb
'ton traitement sur n

end sub


Function NB!()
NB = Fix(Application.InputBox('Saisir un nombre entier', 'Titre', , , , , , 1))
End Function
 

Jam

XLDnaute Accro
Salut Zon et Q,

Un p'tit ajout à la bonne soluce de Zon.

Il existe en vba la possibilité de tester les variables pour connaître leur type et éventuellement les convertir.

Resultat=VarType(MaVariable) renvoi une valeur déterminant le type de variable (cf Aide VBA pour plus de détail).

Après on peut la convertir genre (ici en nombre entier) Resultat=Cint(MaVariable).

Bonne journée
 

Discussions similaires

Statistiques des forums

Discussions
312 465
Messages
2 088 654
Membres
103 907
dernier inscrit
cosanostra93