Multiplier deux tb dont le résultat doit aller dans un autre tb

Bonsoir à toutes et à tous,

Dans mon formulaire UserForm UF02_CBUPR, je souhaiterais pouvoir multiplier le tbPUABUPR par le tbQABUPR afin que le résultat apparaisse dans le tbTABUPR (ce sera toujours des chiffres avec virgule et à deux chiffres après la virgule). Cela est-il possible et si oui, comment procéder (code à créer, créer une procédure spécialisée ou dans une procédure existante, etc.). ? Désolé, mais je n'ai pas l'esprit de déduction. Peut-être ceci est-il possible avec un autre outil. À ce moment-là, je changerais si vous me dites quel objet qu'il serait préférable d'utiliser. D'avance merci pour votre aide.

5budgets1.xlsm (277.63 Ko)

Bonjour,

les textbox contiennent des chaines. Il faut donc les convertir en numérique pour pouvoir les additionner.
Un exemple de sub à appeler sur l'événement Change des 2 TextBox :

Private Sub somme()
    'tbPUABUPR par le tbQABUPR afin que le résultat apparaisse dans le tbTABUPR
    tbTABUPR = Format(CDbl(tbPUABUPR) + CDbl(tbQABUPR), "#.00")
End Sub

Pas de question à tiroirs stp.
Nouvelle question => nouveau topic
eric

Bonsoir Eriiic,

Je remplace le + par un * car il s'agit d'une multiplication.

J'ai suivi vos instructions mais cela ne fonctionne toujours pas.

8budgets1.xltm (294.00 Ko)

Si ça ne fonctionne pas c'est que tu n'as pas tout suivi.

xltm + fichier protégé, j'arrête là.

Pour rappel j'ai écris : à appeler sur l'événement Change des 2 TextBox
Bonne continuation, tu devrais y arriver tout seul
eric

Je ne comprends pas évènement change sur des deux textboxes : il faut que je crée une procédure tbPUABUPR_Change et une deuxième tbQABUPR_Change ? Et quelles instructions y inclure dans chacune.

3budgets1.xlsm (283.67 Ko)

C'est un gag ???
J'écris ça : tbTABUPR = Format(CDbl(tbPUABUPR) * CDbl(tbQABUPR), "#.00")
Tu mets ça : Format (CDbl(tbTABUPR) = Format(CDbl(tbPUABUPR) * CDbl(tbQABUPR), "#.00"))
Si même un copié-collé pose des difficultés, il va falloir trouver une autre occupation...

Et tu sembles ignorer que des objets ont des événements pour les faire réagir (?!?)
Tu devrais apprendre les bases, c'est le minimum avant de se lancer dans des trucs comme ça.

Private Sub tbPUABUPR_Change()
    Mutiplication
End Sub

idem pour l'autre

Je t'ai montré comment faire une opération avec des textbox, mais il faut aussi t'assurer de la saisie, que ça corresponde à une chaine convertible en numérique par vba.
Ta sub devrait plutôt être comme ça :

Private Sub Mutiplication()
    'Effectuer le produit de tbPUABUPR avec le tbQABUPR.
    On Error GoTo fin
    Debug.Print CDbl(tbPUABUPR), CDbl(tbQABUPR)
    On Error GoTo 0
    tbTABUPR = Format(CDbl(tbPUABUPR) * CDbl(tbQABUPR), "#.00")
    Exit Sub
fin:
    tbTABUPR = ""
End Sub

tu peux mettre en résolu je pense, je ne ferai pas tout à ta place.
eric

J'ai fait ce que j'ai cru comprendre faire mais le tabTABUPR reste toujours vide. chaine convertible en numérique par vba : comment faire pour qu'il en soit ainsi (modifier une propriété et, dans cas, laquelle ?)

11budgets1.xlsm (278.75 Ko)

Bonjour à tous,

J'ai fait ce que j'ai cru comprendre faire mais le tabTABUPR reste toujours vide.

J'ai rempli les 2 TextBox......l'opération s'effectue bien....

image

Cordialement,

Bonjour xorsankukai,

Je suis ravi que tu ai réussi à remplir le tbTABUPR. Chez moi, il reste vide. D'après les indications fournies par eriiic, peut-être dois-je signaler dans les deux procédures tbPUABUPR et tbQABUPR qu'il doit transformer ces deux tb texte en tb numéraires ?

Résultat : idée géniale. Cela fonctionne. Merci à toi et à eriiic. Je clos le sujet.

À part de décocher Suivre ce sujet, existe-t-il un autre moyen de clore le sujet. Et, enfin, à part d'écrire manuellement merci, y-a-t-il une icône ou autre moyen de le dire ?

...à appeler sur l'événement Change des 2 TextBox
(écrit 2 fois !)

Private Sub tbPUABUPR_Change()
    Mutiplication
End Sub

idem pour l'autre

Que faut-il de plus ?
Il faut être attentif à la lecture

J'ai résolu le problème. Regarde l'intervention de xorsankukai et la réponse que je lui ai faite. Merci pour ton aide

Re,

Regarde l'intervention de xorsankukai

Je n'ai fait que tester le fichier que tu as joint.....sans rien changer....

eriiic () a fait tout le boulot ! Merci à lui.

Bonne continuation,

MERCI À TOI AUSSI;

Dans les formules, que signifie #.oo ? Quand je souhaite taper un prix unitaire et une quantité, c'est la croix et la bannière pour obtenir l'acceptation de ma saisie. À toutes fins utiles, je signale que le nombre de chiffres avant la virgule est variable tandis que celui qui suit la virgule est toujours de deux. D'avance merci pour votre réponse.

Bonjour (oui, ça se dit),

tout est dans l'aide, ne pas hésiter à faire F1 sur Format : https://docs.microsoft.com/fr-fr/office/vba/language/reference/user-interface-help/format-function-v...
et un résumé aussi ici : https://www.excel-pratique.com/fr/fonctions-vba/format

eric

Bonsoir Eriiic,

(#)Espace réservé aux chiffres. Affiche un chiffre ou rien. Si l’expression mise en forme contient un chiffre à la position occupée par le signe # dans la chaîne de mise en forme, il est affiché ; sinon, rien n’est affiché à cet emplacement. Ce symbole se comporte comme l’espace réservé au chiffre 0 ; cependant, les zéros non significatifs et les zéros à droite ne sont pas affichés si le nombre compte un nombre de chiffres inférieur ou égal au nombre de caractères # situés de part et d’autre du séparateur décimal dans l’expression de mise en forme.
Si je mets plusieurs #, pourrais-je taper plus facilement mes prix unitaires et mes quantités ? Si je veux taper le prix unitaire suivant 1 425,55 et la quantité suivante 124,65, devrais-je taper, dans les trois procédures, # ###.00, les 00 représentant les deux chiffres après la virgule. D'avance merci pour votre aide.

Je vous prie de bien vouloir m'excuser pour avoir omis de vous saluer dans mon message.

un seul # suffit quelque soit le nombre de chiffres avant la virgule.
Sinon tu peux faire des essais si tu veux tester les formats.

Rechercher des sujets similaires à "multiplier deux resultat doit aller"