Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
987 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Gestion des float : "," et "."

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Gestion des float : "," et "."

n°368263
kowalski
Posté le 22-04-2003 à 11:04:42  profilanswer
 

Lors d'une extraction, des variables de types 12.000 sont sorties d'une base
 
Je veux les utiliser comme des float, probleme, mon PC a comme séparateur ","
Dans l'enteprise le Control Panel est bloqué.
Donc je cherche la commande, macro éventuelle qui me permet de faire reconnaitre 1.000 (string) en 1 (variable integer ou decimale)
 
Merci aux Nurs, Drashes etc etc qui vondront bien m'aider...
Ralala ces stages où on nous mets sur VBA alors qu'on est pas spécialiste :p

mood
Publicité
Posté le 22-04-2003 à 11:04:42  profilanswer
 

n°368363
kowalski
Posté le 22-04-2003 à 12:48:12  profilanswer
 

Vous n'avez pas d'idée ce matin ? Je suis presque persuadé qu'il y a une commande... ou un NumberFormat spécifique... reste à trouver lequel

n°368374
MagicBuzz
Posté le 22-04-2003 à 12:59:05  profilanswer
 

Jamais trouvé.
 
J'utilise cette fonction (de merde :D)
 

Code :
  1. function doDouble(val as string) as Double
  2.    dim localSep
  3.    dim inputSep
  4.    localSep = mid(cstr(1.1), 2, 1)
  5.    if instr(val, "." ) > 0 then
  6.       inputSep = "."
  7.    elseif instr(val, "," ) > 0 then
  8.       inputSep = ","
  9.    else
  10.       inputSep = ""
  11.    end if
  12.    if inputSep <> "" then
  13.       doDouble = cdbl(replace(val, inputSep, localSep))
  14.    else
  15.       doDouble = cdbl(val)
  16.    end if
  17. end function


 
 
C pas terrible, mais j'ai rien trouvé de mieu :D

n°368375
kowalski
Posté le 22-04-2003 à 13:01:26  profilanswer
 

Txs ! je m'étais codé une petite moulinette à partir des strings en attendant une commande VBA... Il n'y en a pas, je reste à ma moulinette !
 
:)
Ralala ce VBA/Excel :p

n°370086
drasche
Posté le 24-04-2003 à 07:52:33  profilanswer
 

Ton problème est que VB ne comprend que les expressions du genre "3.14" et non "3,14".  Si tu essayes de taper l'expression string "3.14" dans une variable de type Double, ça marchera.  Mais "3,14" générera une erreur.  Quand le cas se présente, il y a une manière courte de procéder:
 

Code :
  1. variable = CDbl(Replace("3,14", ",", "." ))


 
Dans mon boulot, je reçois jamais de nombre avec séparateur de milliers, et si tu en reçois, il faudra procéder de la même manière, mais pour les éliminer (donc remplacer par chaîne vide).


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°370231
MagicBuzz
Posté le 24-04-2003 à 11:27:24  profilanswer
 

drasche a écrit :

Ton problème est que VB ne comprend que les expressions du genre "3.14" et non "3,14".  Si tu essayes de taper l'expression string "3.14" dans une variable de type Double, ça marchera.  Mais "3,14" générera une erreur.  Quand le cas se présente, il y a une manière courte de procéder:
 

Code :
  1. variable = CDbl(Replace("3,14", ",", "." ))


 
Dans mon boulot, je reçois jamais de nombre avec séparateur de milliers, et si tu en reçois, il faudra procéder de la même manière, mais pour les éliminer (donc remplacer par chaîne vide).


Bah nan, le problème justement, c'est que si c'est du VBA (et non VB) le séparateur reconnu lors de l'interprétation des chaînes est dépendant des paramètres de l'utilisateur.
 
Autrement dis, si tu t'amuse à mettre "@" comme sépartateur de décimale dans tes paramètres régionnaux, ben ton VBA, il n'acceptera que "3@14", et non "3,14" ni "3.14" (par contre, il acceptera 3.14 :pt1cable:
 
Du coup ma fonction me semble la plus correcte, puisqu'elle permet de s'en sortir à coup sûr dans 100% des cas, même si l'utilisateur est un débile profonds qui utilise n'importe quoi.

n°370294
drasche
Posté le 24-04-2003 à 12:27:22  profilanswer
 

déformation professionnelle, je suis sur le même projet depuis 4 ans et le séparateur décimal ne peut strictement être que la virgule dans notre configuration  :pt1cable:


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Gestion des float : "," et "."

 

Sujets relatifs
pb gestion du TimeOut avec ReadFile[DEBUTANT] pb concernant la gestion des droits
Entre les double et les float...[perl] limiter le nombre de chiffre d'un float ?
gestion des apostrophes[PHP] Gestion courrier, documents....
Cherche bibliothèque C/C++ pour gestion/décompression de flux videogestion des chaines de caracteres
Gestion d entree sortieServlet :Gestion des sessions différente selon client IE6/Mozilla1.2.1
Plus de sujets relatifs à : Gestion des float : "," et "."


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR