Probleme chaine

Signaler
Messages postés
1
Date d'inscription
vendredi 27 novembre 2009
Statut
Membre
Dernière intervention
24 janvier 2010
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Bonjour,
je suis en train de faire un programme qui convertit mètre en pouce. Mon problème c'est qu'il n'accepte pas les nombres a virgule.
quand je met un nombre a virgule il va au "Else"
MsgBox " Au moins un des caractères n'est pas un chiffre"

Pouvez vous m'aidez.

Private Sub cmdConversion2_Click()
Dim resulpied As String
Dim resulpouce As String
Dim pied As String
Dim finalpouce As String
Dim iemepouce As String
Dim finaliemepouce As String
Dim inbChiffres As Integer
Dim ipos As Integer

For ipos = 1 To Len(txtMetres.Text) 'pour chaque caractere
If Mid(txtMetres.Text, ipos, 1) >= "0" And Mid(txtMetres.Text, ipos, 1) <= "9" Then 'si c'est un chiffre
inbChiffres = inbChiffres + 1 'on a trouvé un chiffre
End If
Next ipos
If inbChiffres = Len(txtMetres.Text) Then ' si ce sont tous des chiffres
pied = txtMetres.Text * 3.2808
resulpied = Fix(txtMetres.Text * 3.2808)
resulpouce = Mid(pied, InStr(1, pied, ",")) * 12
finalpouce = Fix(resulpouce)
iemepouce = Mid(resulpouce, 2, InStr(1, resulpouce, ","))
finaliemepouce = Dec2Frac(iemepouce)
lblPieds.Caption = resulpied & "' " & finalpouce & "'' " & finaliemepouce
ElseIf txtMetres.Text = "" Then
MsgBox "vous n'avez rentrez aucun donnee"
Else
MsgBox " Au moins un des caracteres n'est pas un chiffre"
End If
End Sub

1 réponse

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
salut,

If Mid(txtMetres.Text, ipos, 1) >= "0" And Mid(txtMetres.Text, ipos, 1) <= "9"


.. oui, tu ne testes que de "0" à "9"
VB est parfois un peu bête, le pauvre se cantonne à faire ce qu'on lui dit...

je ne donne pas plus d'infos car de toute façon :
pied (string) = txtMetres.Text (string) * 3.2808 (double), tout est à recoder....

*s'il y a 2 virgules?
*une lettre?
*une apostrophe (séparateur US)?
*une devise?
*nombre correct mais négatif?

il y a une phase de conception à revoir
néanmoins si tu es parti pour, on t'aidera (on ne fera pas le travail à ta place, par contre)

bon courage

[hr]