Page 1 sur 1

[RÉSOLU] problème récupération données complète VAL

Publié : lun. 27/juin/2016 16:38
par david
Le problème avec

Code : Tout sélectionner

Resultat = Val(Chaine$
c'est : "La conversion s'arrêtera au premier caractère non numérique"

je travaille sur un programme qui récupère un montant H.T. et un taux de TVA dans un fichier
j'utilise donc Readfile

le problème c'est lorsque mon taux à des chiffres après la virgule qui ne sont pas pris en compte
comment contourner cela rapidement, récupérer le texte avant et celui après la virgule et bidouiller ou existe-t-il quelque chose de plus propre?

Merci par avance

ci-après un bout de code simplifié avec mes propres variables

Code : Tout sélectionner

Dim ProdHT1.s (5) 
Dim ProdTVA1.s (5)


ProdHT1(1) ="10"
ProdTVA1(1)="5.50"


valdeurHT1 = Val(ProdHT1(1))
valdeurTVA = Val(ProdTVA1(1))/100

Debug valdeurHT1
Debug valdeurTVA




resultat = valdeurHT1 + (valdeurHT1 * 1+ valdeurTVA)

Debug Str(resultat)

Re: problème récupération données complète VAL

Publié : lun. 27/juin/2016 17:10
par Ar-S
utilise des floatants si tu veux des virgules

Code : Tout sélectionner

Dim ProdHT1.s (5)
Dim ProdTVA1.s (5)


ProdHT1(1) ="10"
ProdTVA1(1)="5.50"


valdeurHT1.f = ValF(ProdHT1(1))
valdeurTVA.f = ValF(ProdTVA1(1))/100

Debug valdeurHT1
Debug valdeurTVA




resultat.f = valdeurHT1 + (valdeurHT1 * 1+ valdeurTVA)

Debug "resultat "+ StrF(resultat)

Re: problème récupération données complète VAL

Publié : lun. 27/juin/2016 17:14
par case
ou si tu veux les virgules séparément tu peux utiliser stringfield pour couper en deux ta chaine
a$="15,5"
Debug Val(StringField(a$,1,","))
Debug Val(StringField(a$,2,","))

Re: problème récupération données complète VAL

Publié : lun. 27/juin/2016 17:17
par Marc56
Sans précision contraire, une variable numérique en PB est de type integer.

Code : Tout sélectionner

Dim ProdHT1.s (5)
Dim ProdTVA1.s (5)

ProdHT1(1)  = "10.00"
ProdTVA1(1) = "5.50"

valdeurHT1.f = ValF(ProdHT1(1))
valdeurTVA.f = ValF(ProdTVA1(1))

Debug valdeurHT1
Debug valdeurTVA

resultat.f  = valdeurHT1 * (1 + valdeurTVA / 100) 

Debug StrF(resultat, 2)
Je n'ai pas compris si tu cherchais à calculer le montant ttc ou autre ? J'ai donc mis une formule ht > ttc

Code : Tout sélectionner

10.0
5.5
10.55
PS. La version 5.50 B1 de PB (5.50B1) apporte une nouvelle fonction qui sera très utile: FormatNumber()

:wink:

[RESOLU]Re: problème récupération données complète VAL

Publié : lun. 27/juin/2016 20:24
par david
merci merci
ca fonctionne nikkel

par contre je ne sais pas comment 'résolu'..

Re: [RESOLU]Re: problème récupération données complète VAL

Publié : mar. 28/juin/2016 8:44
par TazNormand
david a écrit :merci merci
ca fonctionne nikkel

par contre je ne sais pas comment 'résolu'..
Il faut éditer ton premier message et changer le titre en ajourant [RÉSOLU]. Pour cette fois je le fais pour toi :wink: