Calcul dans un Userform

Bonjour à vous,

J'en suis à mes débuts en VBA. Dans le cadre de mon cours, je dois créer un Userform et automatiser certaines tâches. J'ai créé une feuille "Frais de déplacements" dans laquelle je fais apparaître les informations que nous saisissons dans le Userform. J'aimerais que se calculent les frais réclamés par l'employé, soit les kilomètres parcourus, multipliés par le taux remboursé par kilomètre (0,48$) et qu'ils s'affichent dans ma feuille "Frais de déplacement". Je vous joins mon fichier pour que vous voyiez ce que j'ai fait jusqu'à maintenant. Aussi, j'aimerais que la feuille s'imprime après que toutes les informations aient été saisies. Comment faire? Je vous remercie à l'avance

Bonjour Sweetclau, le forum,

J'aimerais que se calculent les frais réclamés par l'employé, soit les kilomètres parcourus, multipliés par le taux remboursé par kilomètre (0,48$) et qu'ils s'affichent dans ma feuille "Frais de déplacement"

Essaies ceci:

Private Sub TxtKilometres_Change()
'Déclaration de la constante (prix remboursé par kilomètre)
Const Remboursement = 0.48
TxtFrais.Value = TxtKilometres * Remboursement
End Sub

Pour l'impression, à tester

ActiveSheet.PrintOut 

ou

Sheets("Frais de déplacements").PrintOut

Cordialement,

Merci beaucoup! Je teste le tout à mon retour à la maison

Ça fonctionne parfaitement! Petite question, le nom de la macro "TxtKilometres_Change()" doit absolument s'appeler ainsi j'imagine? Peux-tu m'expliquer pourquoi? Dernière petite chose, si j'aimerais qu'apparaisse un signe de dollar après le montant des frais comment dois-je faire?

Merci beaucoup!

Bonjour Sweetclau

TxtKilometres_Change()

,

C'est le code associé à ta Textbox, si tu modifies le nom de la procédure, tu génèreras une erreur, ce n'est pas une macro à proprement parlé, mais un évènement (Change) lié à ta TextBox TxtKilomètres.

j'aimerais qu'apparaisse un signe de dollar après le montant des frais

Il faut définir le format de la textBox

TxtFrais.Value = Format(TxtKilometres * Remboursement, "00.00 $")  
Private Sub TxtKilometres_Change()
'Déclaration de la constante (prix remboursé par kilomètre)
Const Remboursement = 0.48
TxtFrais.Value = Format(TxtKilometres * Remboursement, "00.00 $")    '
End Sub

Cordialement,

Bonjour,

Attention ! si je puis me permettre !

Une TextBox ne contient que du texte.

La fonction Format produit un texte formaté. On ne formate en aucun cas un contenant mais un contenu, qui demeure du texte.

Les opérations sur du texte, sans conversion préalable en nombres, me paraissent hasardeuses.

A toutes fins utiles.

Cordialement.

Bonjour MFerrand,

Merci pour ton intervention

Attention ! si je puis me permettre !

Oui oui tu peux ! J'ai encore tellement à apprendre

Peux-tu jeter un œil à ma nouvelle proposition ci-jointe ? (et la corriger si nécessaire )

Merci,

Cordialement,

Ça marche il semble ! Tu as la chance que les conversions se fassent automatiquement... Tant que c'est comme ça !

Place tout de même ta déclaration de constante au niveau Module, ça t'évitera de la répéter dans les procédures et pour la modifier, il n'y aura qu'un endroit où le faire.

Cordialement.

Merci à vous deux! Que signifie CDbl?

Bonjour Sweetclau,

Cdbl sert à convertir les données de la textbox en nombre décimal .

https://msdn.microsoft.com/fr-fr/vba/language-reference-vba/articles/type-conversion-functions

Cordialement,

Bonjour MFerrand,

Ça marche il semble ! Tu as la chance que les conversions se fassent automatiquement... Tant que c'est comme ça !

Place tout de même ta déclaration de constante au niveau Module, ça t'évitera de la répéter dans les procédures et pour la modifier, il n'y aura qu'un endroit où le faire.

Merci pour ta remarque judicieuse, mais je t'avoue que je ne saisie pas bien ce que je dois faire.

Le seul module dans VBAproject est celui qui contient la macro servant à ouvrir l'UserForm ?

Donc, sans abuser, pourrai-tu nous répondre à la demande initiale telle qu'elle devrait être traitée de façon pro, car j'ai le sentiment de n'avoir fait que du bidouillage et je souhaiterai vraiment pouvoir en retirer une leçon,

Bien cordialement,

Rechercher des sujets similaires à "calcul userform"