Probleme de débutant

yuyu1 Messages postés 8 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 30 juin 2005 - 8 mars 2005 à 19:34
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 - 10 mars 2005 à 00:39
Bonjour a tous,

Voilà, je suis étudiant en
devellopement informatique et aujourd'hui je n'ai pas pu avoir réponse a un problème.

Je voudrais faire une boucle avec la condition suivante :
- Tant que A différent d'un nombre entier, recommencer la boucle

J'ai essayé de faire A <> integer mais VB n'a pas l'air d'aimé...

Merci d'avance.

9 réponses

voilhes Messages postés 33 Date d'inscription lundi 20 janvier 2003 Statut Membre Dernière intervention 6 septembre 2006 6
8 mars 2005 à 20:07
while cdbl(cint(A))<>A

wend

-Francis-
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
8 mars 2005 à 20:30
while (a - Fix(a)) <> 0
- - - - - - - - - -
wend

Cint va planter si a > 32768

Daniel
0
yuyu1 Messages postés 8 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 30 juin 2005
9 mars 2005 à 08:42
Je vous remercie pour vos réponses rapides.

Je testerais vos différentes propositions plus celle de mon professeur en cours aujourd'hui.
0
yuyu1 Messages postés 8 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 30 juin 2005
9 mars 2005 à 10:55
Donc apres plusieurs essais, je n'ai toujours pas reussi a arriver au résultat demandé...

Je vous donne le code source en espérant que cela vous aide et que quelqu'un pourra trouver une solution à ma demande :

Private Sub cmdLaunch_Click()
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim réponse, réponse2, msg1, msg2, titre
msg1 = "insérer première valeure"
titre = "addition"
msg2 = "insérer deuxième valeure"
titre = "addition"
a = InputBox(msg1, titre)
b = InputBox(msg2, titre)
c = a + b
MsgBox "résultat = " & c, , Résultat


End Sub

Il faut trouver une solution afin d'éviter que le programme plante quand une valeur non numérique est inscrite dans l'InputBox.

Merci d'avance.

PS : Si une solution existe autrement qu'en utilisant les InputBox, je prend aussi :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jsem2k1 Messages postés 125 Date d'inscription samedi 11 décembre 2004 Statut Membre Dernière intervention 12 août 2008 1
9 mars 2005 à 14:11
The J

tu peux utilier la méthode isnumeric pour savoir s'il est possible de faire un transtipage

exemple
dim a as integer
dim rep as string

rep="rer"
Do Until IsNumeric(rep) = True
rep = InputBox( tralatata)
Loop


a = CInt(rep)

ici on va faire la boucle jusqua ce que la réponce de lutilisateur puisse être transtipé

Bonne chance
0
yuyu1 Messages postés 8 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 30 juin 2005
9 mars 2005 à 17:04
Voilà, Voilà, J'ai trouvé la solution a mon problème!

Même si vos propositions doivent fonctionné si elles sont bien utilisées, j'ai préféré prendre celle-ci :

Do
a = InputBox (msg1,Titre)
If Not IsNumeric(a) Then
MsgBox = "Veuillez saisir une valeure numérique"
End If
Loop While Not IsNumeric(a)


Dans ce cas précis, il ne faut pas déclarer la variable "a" en tant qu'Integer.

Ben
0
jsem2k1 Messages postés 125 Date d'inscription samedi 11 décembre 2004 Statut Membre Dernière intervention 12 août 2008 1
9 mars 2005 à 19:24
The J

cool sa resamble a ma solution !
0
Constant93 Messages postés 38 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 4 août 2007
10 mars 2005 à 00:28
J'ai peut-être pas rapport mais si tu fais...

Dim tavariable as integer

On error goto erreur ' si ce qui est entré est un chiffre, vb fera une erreur.

'code

erreur:

If err.number = (* voir plus loin...) then
msgbox "T'as un prob, blablabla...",,"titre"
end if

* Ici pour savoir quel est le chiffre bien tu enlève le On Error et tu démarre le prog.
il va avoir une erreur (et si elle a rapport) tu prend le numéro d'erreur et tu le met là.
tu remet On Error après. (Pas obligé de mettre le On Error avant de faire tout ça.)

En éspérant pouvoir t'aider et ne pas avoir l'air con,
bonne chance!
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
10 mars 2005 à 00:39
oui le On Error peut être utilisé de la même façon que le IsNumeric.
mais il y aura toujours le même problème, la virgule risque d'être acceptée ainsi que le point, le "E", le "+", le "-", l'espace et même le "€".

Daniel
0
Rejoignez-nous