Probleme chaine

pierreht Messages postés 1 Date d'inscription vendredi 27 novembre 2009 Statut Membre Dernière intervention 24 janvier 2010 - 24 janv. 2010 à 20:03
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 24 janv. 2010 à 20:15
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

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 janv. 2010 à 20:15
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]
0
Rejoignez-nous