Un calcul tout simple devenu une usine a gaz

Résolu
pascallac Messages postés 35 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 12 mai 2005 - 28 avril 2005 à 21:25
pascallac Messages postés 35 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 12 mai 2005 - 29 avril 2005 à 13:14
je suis toujours avec mon petit programme de cacul

au debut j'avais une inversion avec une addition et une concaténations
j'ais modifier ma ligne comme ci dessous
puissance17 = (Val(Wh1) + Val(Wh2) + Val(Wh3) + Val(Wh4) + Val(Wh5) + Val(Wh6) + Val(Wh7) + Val(Wh8) + Val(Wh9) + Val(Wh10) + Val(Wh11) + Val(Wh12))
maintenant ca fonction mais j'ai un probleme avec les decimals dans le resultat il n'y a pas de chiffre apres la virgule
j'ais effectué une recherche dans le forum j'ai trouvé la fonction CDbl
là commence mon usine a gaz fonction +fonction pour faire juste une addition

avez vous une solution plus facile, rapide , ou une autre methode


cordialement
pascal

10 réponses

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
28 avril 2005 à 21:57
remplace Val() par CDbl()

Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
3
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
28 avril 2005 à 22:03
avec Val() il faut un point décimal Val("123.46")
avec CDbl() ça dépend de ta configuration, soit ça passe soit ça se plante.

pour simplifier il faudrait un groupe de contrôle si c'est des contrôles ou un tableau si c'est des variables:

puissance17 = 0
For i = 1 to 12
puissance17 = puissance17 + Val (Wh(i))
next

Daniel
3
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
29 avril 2005 à 10:56
à toi de créer ton tableau de variables:
Dim Wh (1 to 12) As Double

ou ton groupe de TextBox avec comme nom "Wh" et les index de 1 à 12

PS:
- le i après le Next n'est pas obligatoire, il est même superflu, il est là juste pour la compréhension mais à tendance à ralentir le programme
- pour les espaces, VB les corrige automatiquement

Daniel
3
pascallac Messages postés 35 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 12 mai 2005
28 avril 2005 à 22:27
le remplacement de Val() par CDbl() c'est tres bien passé
mercis econs pour votre reponse

Gobillot pour la suite
puissance17 = 0
For i = 1 to 12
puissance17 = puissance17 + Val (Wh(i))
next
j'ais une erreur
j'essaye de la trouvée

cordialement
pascal
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
FFkiller Messages postés 72 Date d'inscription lundi 28 juin 2004 Statut Membre Dernière intervention 12 mai 2005 1
29 avril 2005 à 00:02
met next i

FFkiller
0
pascallac Messages postés 35 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 12 mai 2005
29 avril 2005 à 05:38
merci FFkiller
marche pas non plus
c'est une erreur "Sub, Function ou Property non définie (erreur 35)"


cordialement
pascal
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
29 avril 2005 à 08:23
n'aurait-tu pas mis par hasard un espace entre Val et (Wh(i))



sinon c'est Wh(i) qu'il ne reconnais pas comme tableau et cherche la fonction Wh qu'il ne trouve pas.




<hr size="2" width="100%">Si le cerveau était assez simple pour que nous puissions le comprendre,

nous serions assez bête pour ne pas le comprendre malgré tout.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
29 avril 2005 à 11:09
Je suis d'accord avec toi Daniel, VB corrige automatiquement les
espaces sauf justement pour Val (sur mon PC au moins). Je rencontre
régulièrement cette erreur lorsque j'utilise Val. D'ailleurs il ne me
corrige pas la majuscule pour la première lettre non plus, il faut que
je supprime manuellement l'espace pour qu'il reconnaisse la fonction
Val et mettre la majuscule.



Mais à vrai dire j'utilise très peu Val, je prefère cint et ses petits frères.




<hr size="2" width="100%">Si le cerveau était assez simple pour que nous puissions le comprendre,

nous serions assez bête pour ne pas le comprendre malgré tout.
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
29 avril 2005 à 11:26
on doit pas avoir le même éditeur alors, je met 50 espaces et il y a pas de problème je me retrouve avec zéro espace, surtout que la parenthèse est bien un caractère de séparation, c'est pas comme "&" qui lui peut être pris comme la fin d'un nom de variable si on oublie de mettre l'espace.
dans certains cas il laisse les espaces, ce qui permet d'aligner les zones:
Dim Wh1 As String
Dim Wh2 As String
une espèce d'indentation pour faire joli.

entre Val et Cint il y a pas de concurrence, ce sont des fonctions différentes et chacune à son rôle, au développeur d'utiliser la fonction qui lui convient, Val ne se plante pas mais peut tronquer la variable, pour Cint il faut obligatoirement une zone numérique avec le point décimal et le séparateur de millier définis dans les options régionales, aucun rapport avec Val qui ne reconnait que le point et l'espace .

Daniel
0
pascallac Messages postés 35 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 12 mai 2005
29 avril 2005 à 13:14
ok c'est bon ca fonctionne
j'ais fait plusieur erreur
ce n'est pas un tableau mais des champs rajoutés non indexés Wh1 Wh2 Wh3 ....
je l'ais donc indexés Wh1(0) Wh1(1) Wh1(2).....

apres je me suis servis du code de gobillot avec 2 modif en bleu

puissance17 = 0
For i = 0 To 11
puissance17 = puissance17 + Val(Wh1(i))
Next

pour les espace ce n'était pas un probleme VB me l'ais corrige

donc merci a tous

cordialement
pascal
0
Rejoignez-nous