Remplacer un virgule par un point [Résolu]

320C 99 Messages postés dimanche 24 avril 2011Date d'inscription 15 janvier 2014 Dernière intervention - 9 janv. 2013 à 11:36 - Dernière réponse :  Utilisateur anonyme
- 11 janv. 2013 à 23:19
Salut à tous !

J'ai un problème avec l'application que je conçois sous VB 6.0
j'aimerai bien faire de calcul entre textbox, mais si le nombre entré contient un virgule le calcul ne donne pas la bonne réponse càd que il ignore la partie après la virgule

Ma question est celle ci :

Ainsi, est bien possible d'avoir un code qui remplace le virgule par de point ?

Merci pour l'aide !

Théom@f
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 9 janv. 2013 à 11:48
3
Merci
Bonjour,
utilise par exemple Cdbl(text1.text) (mais uniquement si le point n'a pas été utilisé).
Le plus simple est peut-être encore d'interdire (au Keypress) la saisie de la virgule. Ce sujet a été traité un nombre si considérable de fois que je ne doute pas une seconde que le moteur de recherches de ce forum (si, si, il y en a un) te conduira à une infinité de discussions à ce propos.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 81 internautes ce mois-ci

Commenter la réponse de ucfoutu
Meilleure réponse
us_30 2117 Messages postés lundi 11 avril 2005Date d'inscription 14 mars 2016 Dernière intervention - 9 janv. 2013 à 12:48
3
Merci
Bonjour,

Recherches vers la fonction "REPLACE" ou "CDBL" (comme dit) selon le besoin.

Amicalement,
Us.

Merci us_30 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 81 internautes ce mois-ci

Commenter la réponse de us_30
Meilleure réponse
320C 99 Messages postés dimanche 24 avril 2011Date d'inscription 15 janvier 2014 Dernière intervention - 9 janv. 2013 à 13:07
3
Merci
Merci à tous pour l'aide !

il y a aussi ce lien qui permet de palié au problème
ce vraiment super !

Encore merci !


Théom@f

Merci 320C 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 81 internautes ce mois-ci

Commenter la réponse de 320C
Meilleure réponse
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 10 janv. 2013 à 15:08
3
Merci
Salut

ton code ne réagit pas à mon application


il faut voir comment tu l'as utilisé

j'ai un peu modifié

private Function Verifie(contenu As TextBox) As Boolean
'la fonction reçoit un textbox comme parametre 
'et verifie si le textbox.text est numérique 
'et modifie le séparateur décimal selon le 'séparateur definit par le p.c
Dim sDecimalSeparator As String
sDecimalSeparator = Mid$(CStr(1 / 2), 1, 1)

If Not IsNumeric(contenu.text) Then
   Verifie = False
    Exit Function
End If

If InStr(1, CStr(contenu.text), ".") Then
   If sDecimalSeparator = "," Then
    contenu.text = Replace(contenu.text, ".", ",")
     Verifie = True
     Exit Function
   End If
     Verifie = True
      Exit Function
End If
  
If InStr(1, contenu.text, ",") Then
   If sDecimalSeparator = "." Then
       contenu.text = Replace(contenu.text, ",", ".")
         Verifie = True
          Exit Function
    End If
     Verifie = True
      Exit Function
End If
 
 Verifie = True
 
End Function


pour faire les calculs entre deux textboxs
text1 et text2
If Verifie(Text1) And Verifie(Text2) Then
 Dim prod,add As Double
prod = CDbl(Text1.text) * CDbl(Text2.text)
add = CDbl(Text1.text) + CDbl(Text2.text)
End If

Merci cs_ShayW 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 81 internautes ce mois-ci

Commenter la réponse de cs_ShayW
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 9 janv. 2013 à 15:12
0
Merci
Bonjour

le problème n'est pas seulement de remplacer
la , par .
mais d'analyser le contenu de ta texbox
peut etre ainsi

Private Function Verifie(ByRef contenu As String) As Boolean
Dim sDecimalSeparator As String
sDecimalSeparator = Mid$(CStr(1 / 2), 1, 1)

If Not IsNumeric(contenu) Then
   Verifie = False
    Exit Function
End If

If InStr(1, CStr(contenu), ".") Then
   If sDecimalSeparator = "," Then
     contenu = Replace(contenu, ".", ",")
     Verifie = True
     Exit Function
   End If
     Verifie = True
      Exit Function
End If
  
If InStr(1, contenu, ",") Then
   If sDecimalSeparator = "." Then
        contenu = Replace(contenu, ",", ".")
         verife = True
          Exit Function
    End If
     Verifie = True
      Exit Function
End If
 
 Verifie = True
 
        
End Function


pour utiliser
Dim t As String

t = Text1.Text
If Verifie(t) Then
 Dim x As Double
 x = CDbl(t) + 5
End If
Commenter la réponse de cs_ShayW
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 9 janv. 2013 à 15:17
0
Merci
faute de frappe dans le code

au lieu de
verife = True

plutot
  Verifie True True
Commenter la réponse de cs_ShayW
320C 99 Messages postés dimanche 24 avril 2011Date d'inscription 15 janvier 2014 Dernière intervention - 10 janv. 2013 à 12:20
0
Merci
Salut ShayW,
ton code ne réagit pas à mon application
j'ai eu à l'essayé mais rien ne se passe !



Je m'y mettre peu après et je te donnerais la suite ,
Merci !

Théom@f
Commenter la réponse de 320C
320C 99 Messages postés dimanche 24 avril 2011Date d'inscription 15 janvier 2014 Dernière intervention - 11 janv. 2013 à 12:05
0
Merci
Ok ! ShayW, Super en fait c mieux malgès que ce long

Je fais comme t'a écris, je déclarer la fonction en privé e tmis le code dans change ...
Et le tour est joué

Merci !
Théom@f
Commenter la réponse de 320C
320C 99 Messages postés dimanche 24 avril 2011Date d'inscription 15 janvier 2014 Dernière intervention - 11 janv. 2013 à 12:10
0
Merci
Mais la function c'est mieux en public
sur tout le coup ! OK


Théom@f
Commenter la réponse de 320C
Utilisateur anonyme - 11 janv. 2013 à 12:21
0
Merci
Bonjour ShayW,

Mid, IsNumeric, CStr, Instr, Replace sont obsolètes.
Utilise SubString, IsNumeric (sur chaîne), ToString, IndexOf, Replace (sur chaîne).

Ensuite :
private Function Verifie(contenu As TextBox) As Boolean
   '...     
   Verifie = True
end function

Utilise plutôt :
Return True
Commenter la réponse de Utilisateur anonyme
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 11 janv. 2013 à 13:08
0
Merci
Bonjour Banana32

c'est en vb6
Commenter la réponse de cs_ShayW
Utilisateur anonyme - 11 janv. 2013 à 23:19
0
Merci
c'est en vb6

Oui, ça confirme ce que j'ai dit à mon patron aujourd'hui, j'ai besoin de vacances
Commenter la réponse de Utilisateur anonyme

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.