Actualiser un Textbox en fonction des autres Textbox

Bonjour,

J'ai parcouru plusieurs forums sans pour autant trouver la réponse à ma problématique.

Je cherche à :

- afficher en temps réel dans le Textbox3 le résultat de l'opération Textbox1 * Textbox2 si ma case bouton_non est cochée

- afficher en temps réel dans le Textbox3 le résultat de l'opération Textbox1 * coeff_oui * Textbox2 * coeff_oui si ma case "bouton_oui" est cochée

Le textbox coeff_oui est visible uniquement si l'utilisateur coche le "bouton_oui"

J'ai appliqué un code trouvé sur un forum pour obliger à saisir des chiffres et je remplace le . par une virgule

J'ai mis dans Textbox1_Change et Textbox2_Change l'appel de la macro qui réalise l'opération pour avoir la modification en temps réel.

Si Textbox1 ou Textbox2 se retrouve vide alors je voudrais afficher dans Textbox3 la valeur 0 car dans tous les cas l'opération sera impossible.

Pourriez-vous me venir en aide s'il vous plait, et soyez indulgents car je débute :)

Je poste mon fichier ci-dessous et 2 images qui montrent le résultat souhaité.

PS: Ce fichier est un exemple qui viendra compléter mon projet.

JB

bouton oui bouton non

Bonjour Jean-BaptisteP,

D'abord quelque soit la coche du bouton le coefficient minimum doit être 1. Ou tout autre minimum.

Ensuite revois ton premier exemple. Car 5 X 5 X 10 = 250 et non 2500.

On peut tester qu'une case bouton. Par exemple celle du Oui. Si celle-ci est à True alors il faudra multiplier par le maximum Inscris en coefficient. Et si sa valeur est à False, ne pas le faire.

Enfi un seul textbox vide annulera l.'opération.

Bonjour JBP

Tu as oublié de faire référence à ton USF, il faut faire ainsi

Sub calcul_multiplication_non()
  With UserForm1
    If .TextBox1 <> "" And .TextBox2 <> "" Then
      .TextBox3.Value = Format(CDbl(.TextBox1.Value) * CDbl(.TextBox2.Value), "# ##0.0")
    Else
      .TextBox3.Value = 0
    End If
  End With
End Sub

Sub calcul_multiplication_oui()
  With UserForm1
    If .TextBox1 <> "" And .TextBox2 <> "" Then
      .TextBox3.Value = Format(CDbl(.TextBox1.Value) * CDbl(.TextBox2.Value) * CDbl(.coeff_oui.Value), "# ##0.0")
    Else
      TextBox3 = 0
    End If
  End With
End Sub

Ensuite dans ton USF, tu as oublié

Private Sub coeff_oui_Change()
If bouton_non Then Module2.calcul_multiplication_non
If bouton_oui Then Module2.calcul_multiplication_oui
End Sub

Avec ces corrections, ça semble fonctionner

A+

Edit : oups, salut X Cellus

@ BrunoM45,

Pas de souci. Je répondais de mon phone et me disais qu'il y aurais bien une âme charitable qui corrigerais son code avant que j'ouvre mon mon ordi.

A +

Bonjour XCellus,BrunoM45,

Tout d'abord un grand merci à vous !

Pour répondre à votre remarque XCellus, je cherchais bien à réaliser l'opération: 5 X 10 X 5 X 10 soit un résultat de 2500 mais ce n'est pas un souci je vais corriger

Je rencontre un petit souci : Lorsque je sélectionne le bouton "oui" si je renseigne les Textbox 1 et 2, le résultat s'affiche bien. Par contre si j'efface un des deux textbox, le résultat ne repasse pas à "vide". Est-ce que cela peut être corrigé ?

Sinon c'est vraiment top, merci beaucoup !

jb

JB

Bonjour,

Vous ne semblez pas comprendre la notion d'objet conteneur et de filiation

Regardez bien les lignes de code, il y a une différence visible entre le non et le oui pour le TextBox3

A+

Bonjour BrunoM45,

Oui j'ai bien remarqué que le .Value est absent pour le Textbox3 en "Oui"

Je laisse comme cela, merci beaucoup.

JB

Re,

C'est une erreur de ma part, une coquille que j'ai laissé

Il faut bien mettre

.TextBox3.Value = 0

A+

Bonjour BrunoM45,

Merci beaucoup c'est parfait !

Je clos le sujet !

Bonne journée

Rechercher des sujets similaires à "actualiser textbox fonction"