Problème de valeur je pense

  • Initiateur de la discussion Initiateur de la discussion sophie34
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

sophie34

XLDnaute Junior
Bonjour à tous et toutes,

Contexte:

J'ai userform dans lequel je souhaiterai faire un multiplication en direct selon cette formule

P = P0 x (0.15+0.85 x S0/S1)

J'ai 4 TextBox qui reprennent ces informations.
Textbox2 -> P0
Textbox3 -> S0
Textbox4 -> S1
Textbox6 -> P

Code utilisé:

Code:
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

Sub Calcul()
If TextBox2 <> "" And TextBox3 <> "" And TextBox4 <> "" Then
TextBox6 = Evaluate(TextBox2 * (1 * TextBox3 / TextBox4))
End If
End Sub

Pour une facilité et rapidité de saisie, j'aimerai utiliser intégralement le pavé numérique.

Problème rencontré:

Quand je rentre mes trois valeurs, il me renvoi à l'erreur 13 qui me parle de valeur.

Merci pour votre solution.
Cordialement
Sophie.
 

Pièces jointes

Re : Problème de valeur je pense

Je ne comprends pas bien où je dois faire ces modifs, si c'est dans la formule ou dans les appartenances textbox_change ?
Je potasse mon bouquin, ils en parlent mais je n'ai pas vu où l'intégrer ... je cherche.
 
Re : Problème de valeur je pense

Bonjour Sophie, Joss, bonjour le forum,

Pour ta fomule il te faut convertir les données. Plutôt que Val je te conseillerais la convertion en valeur de type Double (CDbl) :
Code:
Sub Calcul()
If TextBox2 <> "" And TextBox3 <> "" And TextBox4 <> "" Then
TextBox6 = Evaluate(CDbl(TextBox2.Value) * (1 * CDbl(TextBox3.Value) / Cdbl(TextBox4.Value)))
End If
End Sub
 
Re : Problème de valeur je pense

Bonjour,

peut-être avec :
Code:
Sub Calcul()
  If Not IsNumeric(TextBox2) Or Not IsNumeric(TextBox3) Or Not IsNumeric(TextBox4) Then Exit Sub
  TextBox6 = CDbl(TextBox2) * (0.15 + 0.85 * CDbl(TextBox3) / CDbl(TextBox4))
End Sub

salut Robert
 
Re : Problème de valeur je pense

C'est bon C'est bon !!! J'ai trouvé en combinant Robert et Jocelyn.
Je vous remercie

MERCI MERCI MERCI !!!

PS: J'aimerai également introduire un MsgBox en fonction une valeur OUI ou NON inséré dans une cellule ...
(si "oui" alors actualisation du prix par rapport à .... / si "non" alors actualisation à 2%)
Je n'y arrive pas non plus
Quelqu'un connait la solution ?
 
Re : Problème de valeur je pense

Bonjour le fil, bonjour le forum,

Pour ton deuxième problème il te faudra, je pense, passer par une macro événementielle Change appliquée à une seule cellule. Comme tu es restée très vague, je te propose un exemple à adapter à ton cas à placer dans le composant VBA de l'onglet dans lequel tu veux que ça fonctionne (clique avec le bouton droit en bas dans le nom de l'onglet et choisis l'option Visualiser le code...),
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'si la cellule éditée est différente de A1, sort de la procédure (restraint donc l'action à A1 uniquement)
If Target.Address <> "$A$1" Then Exit Sub
If UCase(Target.Value) = "OUI" Then
    '?? actualisation du prix (à toi de coder)
ElseIf UCase(Target.Value) = "NON" Then
    '?? actualisation du prix à 2% (à toi de coder)
End If
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
896
Retour