[Résolu] VB script : Conversion Str en Int

VB script : Conversion Str en Int [Résolu] - VB/VBA/VBS - Programmation

Marsh Posté le 03-08-2017 à 10:50:09    

Salut  :hello:  
 
Un truc qui va paraître bête mais j'ai cherché pas mal sur le net, et rien ne fonctionne :(
 
Je dois bêtement lire 2 lignes d'un mail et additionner les montants contenus dans ces 2 lignes.
 
Exemple dans le mail:
 
Copier:  1000  
Printer:  500    
 
 
Je dois obtenir 1500, et tout ce que j'arrive à avoir, c'est 1000500
 
Est-ce qu'il y aurait un moyen simple de faire une addition ?
 
J'ai tenté avec des CINT(), VAL(), des variables intermédiaires, mais rien ne marche  :cry:  
 
Merci d'avance.  Voilà le bout de code :
 
 
 

Code :
  1. Total1 = 0
  2. Total1Array = split(MailBodyArray(x+8),":" )
  3. Total1 = Trim(Total1Array(1))
  4. Total1Array = split(MailBodyArray(x+9),":" )
  5. Total1 = Trim(Total1Array(1))
  6. Total1 = Total1 + Trim(Total1Array(1))


Message édité par Fishes le 03-08-2017 à 14:49:04

---------------
Topic CoC HFR, viendez :o
Reply

Marsh Posté le 03-08-2017 à 10:50:09   

Reply

Marsh Posté le 03-08-2017 à 12:43:37    

Bonjour,
 
En appelant google avec "how to convert string in int" je tombe sur la fonction Cint.
Cint : https://www.w3schools.com/asp/func_cint.asp

Reply

Marsh Posté le 03-08-2017 à 13:29:47    

Merci mais comme indiqué, j'ai testé ça.  Erreur "Type mismatch".
 
Edit pour être plus précis.
 

Code :
  1. Total1 = 0
  2. Total1Array = split(MailBodyArray(x),":" )
  3. Total1 = Trim(Total1Array(1))
  4. Test1 = CInt(Total1)


 
Ça plante à la dernière ligne avec Cint.  Pourtant quand j'utilise la fonction VarType(Test1), il me renvoie bien la valeur 8 (soit vbString)...


Message édité par Fishes le 03-08-2017 à 13:38:22

---------------
Topic CoC HFR, viendez :o
Reply

Marsh Posté le 03-08-2017 à 14:00:16    

Et comme ceci :  
 

Code :
  1. Total1 = 0
  2. Total1Array = split(MailBodyArray(x+8),":" )
  3. Total1 = Cint(Trim(Total1Array(1)))
  4. Total1Array = split(MailBodyArray(x+9),":" )
  5. Total1 = Total1 + Cint(Trim(Total1Array(1)))


 
 
Est-ce que ça passe ?

Reply

Marsh Posté le 03-08-2017 à 14:40:21    

En tout cas ça va plus loin :)

 

J'ai bien mes 2 "nombres" (j'ai séparé en 2 variables pour que ça soit plus clair), à savoir que dans mes 2 chaînes c'est "152290 et 15048".

 

Il reste une erreur sur Total1: Overflow.

 

Pourtant ça devrait bien rentrer dans un Integer non ?

 
Code :
  1. Total1Array = split(MailBodyArray(x+1),":" )
  2. TotalCopy = Trim(Total1Array(1))
  3. Total1Array = split(MailBodyArray(x+2),":" )
  4. TotalPrint = Trim(Total1Array(1))
  5. Total1 = CInt(TotalCopy) + CInt(TotalPrint)
 


Re-Edit : J'ai remplacé par CLng, et ça fonctionne...  Bizarre j'ai vu des sites qui parlaient de 32xxx max, et d'autres de 2,147,483,647.

 

Enfin, merci :)

   

Message cité 1 fois
Message édité par Fishes le 03-08-2017 à 14:48:37

---------------
Topic CoC HFR, viendez :o
Reply

Marsh Posté le 03-08-2017 à 16:24:59    

Heureux d'avoir pu t'aider.

Reply

Marsh Posté le 03-08-2017 à 16:31:33    

Fishes a écrit :

En tout cas ça va plus loin :)
J'ai bien mes 2 "nombres" (j'ai séparé en 2 variables pour que ça soit plus clair), à savoir que dans mes 2 chaînes c'est "152290 et 15048".
Il reste une erreur sur Total1: Overflow.
Pourtant ça devrait bien rentrer dans un Integer non ?

Code :
  1. Total1Array = split(MailBodyArray(x+1),":" )
  2. TotalCopy = Trim(Total1Array(1))
  3. Total1Array = split(MailBodyArray(x+2),":" )
  4. TotalPrint = Trim(Total1Array(1))
  5. Total1 = CInt(TotalCopy) + CInt(TotalPrint)


Re-Edit : J'ai remplacé par CLng, et ça fonctionne...  Bizarre j'ai vu des sites qui parlaient de 32xxx max, et d'autres de 2,147,483,647.
Enfin, merci :)


 
Pour éviter le TRIM(), tu aurais pu utiliser VAL()  :

Code :
  1. TotalCopy = Val(Split(MailBodyArray(x + 1), ":" )(1))
  2. TotalPrint = Val(Split(MailBodyArray(x + 2), ":" )(1))
  3. Total1 = TotalCopy + TotalPrint



---------------
Cordialement, Patrice
Reply

Marsh Posté le 03-08-2017 à 17:12:14    

:jap:
 
Je testerai même ceci, mais demain :
 
Total1 = Val(Split(MailBodyArray(x + 1), ":" )(1)) + Val(Split(MailBodyArray(x + 2), ":" )(1))
 
Merci  :hello:


---------------
Topic CoC HFR, viendez :o
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed