J'ai une chaine de caractère qui a pour contenue un double, puisse la convertir

Signaler
Messages postés
19
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
27 novembre 2010
-
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
-
bonjour
j'ai une chaine de caractère qui a pour contenue un double, puisse la convertir en double?
NB=RS1!scor1 avec RS1!scor1 contient "183.6251"

Merci

7 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
129
NB = CDbl(RS1!scor1)
Messages postés
19
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
27 novembre 2010

un message s'affiche : TYPE IMPCOMPATIBLE
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Cdbl a besoin d'un numérique
T'as alors le choix ... choisis

Private Sub Command1_Click()
  toto = "111.111"
  Dim titi As Double
  titi = Val(toto)
  MsgBox titi
  MsgBox CDbl(Val(toto))
End Sub
Messages postés
19
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
27 novembre 2010

Merci et bon courage a toute l'equipe de VBFrance
Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
9
Va faire un tour du coté des regional settings : "." <> "," etc...

@+

E.B.
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
@+: Ju£i?n



Pensez:



Réponse acceptée
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
CDbl(Val(toto))

étrange...
Val retourne d'ores et déjà un Double...

je me re-re-re-re-répète...

Val s'attend arecevoir un numérique utilisant un format internationnal.
"12.78" par exemple.

CDbl (et ses amis) se basent sur les paramètres régionnaux.
"12,78" attendu avec les settings Fr, par exemple

en cas d'erreur, Val renverra 12, s'arretant dès qu'il decèle un caractère qu'il juge ne pas faire partie du nombre

en cas d'erreur, CDbl crashera.

faire ce genre de tests, si tu ignore le format de la chaine :

sBuffer = "12.78"
If IsNumeric(sBuffer) Then
Value = CDbl(sBuffer)
Else
Value = Val(sBuffer)
End If

ainsi, pas de crash, et une chaine reconnue au mieux.