XL 2010 Petite erreur et pourtant bien rodée...

sophie34

XLDnaute Junior
Bonjour,

J'utilise des Userforme pour calculer automatiquement des formules pour lesquelles seules quelques valeurs changent.

J'utilise toujours les mêmes procédés, sauf que cette fois ci .... c'est pas bon !!!
Effectivement la formule est un peu plus compliquée mais le principe reste le même à quelques parenthèses ou crochets près.

Voici le code, pourriez-vous m'expliquer pourquoi les Cmd (textBox) de la dernière ligne n’apparaissent pas en bleu.
Merci

Code:
Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub TextBox2_Change()
Calcul
TextBox2 = Replace(TextBox2, ".", ",")
End Sub

Private Sub TextBox3_Change()
Calcul
TextBox3 = Replace(TextBox3, ".", ",")
End Sub
Private Sub TextBox4_Change()
Calcul
TextBox4 = Replace(TextBox4, ".", ",")
End Sub

Private Sub TextBox6_Change()

End Sub

Private Sub TextBox7_Change()
Calcul
TextBox7 = Replace(TextBox7, ".", ",")
End Sub

Private Sub TextBox8_Change()
Calcul
TextBox8 = Replace(TextBox8, ".", ",")
End Sub
Sub Calcul()
  If Not IsNumeric(TextBox2) Or Not IsNumeric(TextBox3) Or Not IsNumeric(TextBox4) Or Not IsNumeric(TextBox7) Or Not IsNumeric(TextBox8) Then Exit Sub
  TextBox6 = CDbl(TextBox2) * [0.125 + 0.875 * (0.80 * CDbl(TextBox3) / CDbl(TextBox4) + 0.20 * CDbl(TextBox7) / CDbl(TextBox8)]
 
End Sub

Private Sub UserForm_Click()

End Sub
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Vous ne pouvez pas utiliser de crochets droits pour modifier des priorités de calculs: il faut des parenthèses.
Les crochets droits servent seulement à évaluer une expression rédigée selon la syntaxe en vigueur dans les expressions de formules de cellules en notation A1 native.
 

sophie34

XLDnaute Junior
Bonjour Dranreb,

Merci de t'être penché sur mon sujet.
J'ai donc modifié les crochets par les parenthèse, et là j'ai une erreur de compilation.

J'ai rajouté des parenthèses entre pour différencier la sommes

Code:
  TextBox6 = CDbl(TextBox2) * (0.125 + 0.875 * ((0.80 * CDbl(TextBox3) / CDbl(TextBox4)) + (0.20 * CDbl(TextBox7) / CDbl(TextBox8)))

Mais j'ai toujours une erreur de compilation.
Quelqu'un voit d'où provient l'erreur ?

Merci.
 

Dranreb

XLDnaute Barbatruc
Essayez voir comme une des deux façons suivantes selon le résultat souhaité :
VB:
TextBox6 = CDbl(TextBox2) * (0.125 + 0.875 * 0.8 * CDbl(TextBox3) / CDbl(TextBox4) + 0.2 * CDbl(TextBox7) / CDbl(TextBox8))
TextBox6 = CDbl(TextBox2) * (0.125 + 0.875 * (0.8 * CDbl(TextBox3) / CDbl(TextBox4) + 0.2 * CDbl(TextBox7) / CDbl(TextBox8)))
 
Dernière édition:

sophie34

XLDnaute Junior
Les CDcl sont bien affichés en Bleu donc je n'ai plus de pb de débeugage, par contre le calcul en Textbox 6 ne se fait plus non plus :(
Est-ce une question de priorité ?

Voilà à quoi ressemble mon userform:
upload_2017-1-31_16-16-6.png
 

Dranreb

XLDnaute Barbatruc
Corrigé comme suit le Catpion de votre Label qui comportait 4 "(" et seulement 2 ")" :
Code:
P = P0 × ( 0.125 + 0.875 × ( 0.80 × ICHT IMEn / ICHT IMEo + 0.20 ×  FSD2n / FSD2o ) )
et ça correspond à la 2ième instruction proposée au poste #4.
Par ailleurs vous n'invoquez nulle part votre Sub Calcul.
 

Discussions similaires

Réponses
9
Affichages
883

Statistiques des forums

Discussions
312 496
Messages
2 088 980
Membres
103 996
dernier inscrit
KB4175