Problème de calcul avec le pourcentage dans Textbox

Rebonjour à tous,

et bein voilà, comme d'habitude on arrange une chose et ça casse ailleurs.

dans la PJ, dans le bouton pourcentage, celui-ci me donne un résultat érroné. Pourtant j'utilise le même code mais en affichant le résultat sur la feuille.

Merci d'avance.

Amicalement Jacky

71calculatrice-v2.zip (28.26 Ko)

Bonsoir,

Je ne sais pas vraiment si ça te suffira, essaye le code suivant :

txtResultat.Value = Format(v / 100, "0.00%")

Bonsoir Raja,

merci d'avoir répondu.

Non, ce n'est pas ça. J'aimerais obtenir le résultat de l'opération. C'est à dire 120*30% = à ???

A+

Amicalement Jacly

Bonsoir à tous,

je pense avoir trouvé

'J'ai déclaré total en haut du module en Byte
Private Sub cmdPrc_Click()
If total > 0 Then
Select Case total
 Case "%"
      val1 = txtResultat.Value
      val2 = val2 * val1 / 100
      Selection.Value = val2
End Select
End If
End Sub

Mais si quelqu'un a une meilleure sugestion, elle est la bienvenue.

Amicalement Jacky

Bonjour,

If total > 0 Then ' donc c'est un numérique

Select Case total

Case "%" ' ???????

Pas très cohérent tout ça, tu as de la chance que ça marche...

De plus le select case est totalement inutile à-priori.

eric

Bonjour Eric,

effectivement, je n'avais pas besoin de mettre Select Case. J'ai donc modifié le code comme ceci:

Private Sub cmdPrc_Click()
If Me.cmdPrc.Value > 0 Then
      val1 = txtResultat.Value
      val2 = (val2 * val1) / 100
      txtResultat.Value = val2
End If
End Sub

Maintenant, on en a parler dans un autre post, j'aimerais pouvoir faire ceci en une seule opération, c'est à dire:

140 + val2 (ici = 42) et 140 - val2

au lieu de trouver d'abord 42 et ensuite additionner ou soustraire 140 - 42. Comment garder en mémoire le premier 140 ??

A bientôt

Amicalement Jacky

Bonjour,

Comment garder en mémoire le premier 140 ??

Si ton userform reste ouvert tu pourrais utiliser la propriété .tag d'un des contrôle, txtResultat.tag par exemple.

Ou bien déclarer une variable Static qu'elle soit conservée entre 2 appels.

eric

Rebonjour Eric,

désolé, mais je ne sais pas comment coder. Pourrais-je avoir un coup de main?

Merci infiniment

Amicalement Jacky

Quand tu traites le résultat, avec la touche + par exemple, sauvegarde la valeur :

txtResultat.tag=txtResultat

Et quand tu en as besoin tu le récupères. Par exemple la somme :

resultat= txtResultat+txtResultat.tag

(il faut peut-être des cdbl(), je n'ai pas testé)

eric

Désolé de t'embêter Eric, mais je n'y arrive pas.

Avec le peu de renseignement que tu fournis sur le fonctionnement voulu je ne peux t'aider plus.

Pose une question plus précise si tu veux des réponses précises.

On n'est pas sensé se prendre la tête et perdre du temps à essayer de tout deviner...

eric

Re Eric,

Quand tu traites le résultat, avec la touche + par exemple, sauvegarde la valeur :

txtResultat.tag=txtResultat

Et quand tu en as besoin tu le récupères. Par exemple la somme :

resultat= txtResultat+txtResultat.tag

(il faut peut-être des cdbl(), je n'ai pas testé)

Dans le code que j'ai montré dans le post précédent txtResultat.Value = val2. Val2 est le résultat de ( 140*30%).

Si j'ai bien compris, dans le bouton égal je mets d'abord la ligne " resultat= txtResultat+txtResultat.tag " et ensuite

" txtResultat.Value = resultat " ?

Si j'ai bien compris, dans le bouton égal je mets d'abord la ligne " resultat= txtResultat+txtResultat.tag " et ensuite

" txtResultat.Value = resultat " ?

Pose-toi la question de quand et à quelles conditions tu dois sauvegarder un résultat intermédiaire.

Quand tu as trouvé la réponse tu mets txtResultat.tag=txtResultat au bon endroit.

Pose-toi la question de quand et à quelles conditions tu dois utiliser le résultat intermédiaire.

Là tu l'utilise avec txtResultat.tag

Ces questions là toi seul a la réponse. Tu sais comment doit fonctionner ta calculatrice non ?

eric

Rechercher des sujets similaires à "probleme calcul pourcentage textbox"