Calcul Sub Faux

Bonjour a tous,

je suis actuellement sur un petit programme que je dois réaliser. Voici son énoncé :

Faire une procédure Sub nommée Bill permettant de calculer le montant d'une facture en rentrant successivement les codes, quantités et prix des articles achetés (on ne connaît pas à l'avance le nombre de produits achetés). Le programme doit permettre d'entrer la somme remise par le client et de calculer la monnaie à rendre.

J'ai écrits le programme suivant :

Sub bill()

Dim CODE As Integer

Dim QTE As Integer

Dim PRIX As Currency

Dim TOTAL As Currency

Dim MONTANT As Currency

Dim MONNAIE As Currency

Dim REP As String * 1

TOTAL = 0

REP = "O"

Do While REP = "O"

CODE = InputBox("Entrez le code du produit :")

PRIX = InputBox("Entrez le prix du produit :")

QTE = InputBox("Entrez la quantité achetée :")

REP = InputBox("Autre article à entrer (O/N) ?")

Loop

MsgBox ("Total à payer :" & TOTAL)

MONTANT = InputBox("Entrez le montant donné par le client :")

MONNAIE = MONTANT - TOTAL

MsgBox ("Monnaie à rendre :" & MONNAIE)

End Sub

Mais a chaque fois il me dit que le montant total est 0 !!!

Je n'arrive pas à voir ce que j'ai oublié..

Auriez-vous une idée?

Seb

Bonjour

Il faudrait calculer le TOTAL !

Je dois mettre quoi et où?

je sèche complètement

J'ai ajouté une ligne (ici en gras) mais lorsqu'il me donne le total, il ne prends pas en compte le premier article...

PS : je débute en programmation

Dim PRIX As Currency

Dim TOTAL As Currency

Dim MONTANT As Currency

Dim MONNAIE As Currency

Dim REP As String * 1

TOTAL = 0

REP = "O"

Do While REP = "O"

CODE = InputBox("Entrez le code du produit :")

PRIX = InputBox("Entrez le prix du produit :")

QTE = InputBox("Entrez la quantité achetée :")

REP = InputBox("Autre article à entrer (O/N) ?")

TOTAL = QTE * PRIX

Loop

MsgBox ("Total à payer :" & TOTAL)

MONTANT = InputBox("Entrez le montant donné par le client :")

MONNAIE = MONTANT - TOTAL

MsgBox ("Monnaie à rendre :" & MONNAIE)

End Sub

Bonjour

Il faudrait calculer le TOTAL !

Dim PRIX As Currency

Dim TOTAL As Currency

Dim MONTANT As Currency

Dim MONNAIE As Currency

Dim REP As String * 1

TOTAL = 0

REP = "O"

Do While REP = "O"

CODE = InputBox("Entrez le code du produit :")

PRIX = InputBox("Entrez le prix du produit :")

QTE = InputBox("Entrez la quantité achetée :")

REP = InputBox("Autre article à entrer (O/N) ?")

TOTAL = QTE * PRIX

Loop

MsgBox ("Total à payer :" & TOTAL)

MONTANT = InputBox("Entrez le montant donné par le client :")

MONNAIE = MONTANT - TOTAL

MsgBox ("Monnaie à rendre :" & MONNAIE)

End Sub

Re

TOTAL = TOTAL + (QTE * PRIX) pour cumuler...

Bonjour Seb,

En laissant TOTAL = 0 avant le Do, essaye avec : TOTAL = TOTAL + QTE * PRIX

Tu peux mettre des parenthèses comme l'a indiqué 78chris, mais c'est facultatif car les règles de priorité des opérateurs font que la multiplication sera exécutée en premier.

dhany

Bonjour Seb,

En laissant TOTAL = 0 avant le Do, essaye avec : TOTAL = TOTAL + QTE * PRIX

Tu peux mettre des parenthèses comme l'a indiqué 78chris, mais c'est facultatif car les règles de priorité des opérateurs font que la multiplication sera exécutée en premier.

dhany

Merci à vous 2!

Le problème venait bien de là!

J'ai ajouté la ligne indiqué et mon programme fonctionne bien désormais!

Merci!

Bonjour

Tu peux mettre des parenthèses comme l'a indiqué 78chris, mais c'est facultatif car les règles de priorité des opérateurs font que la multiplication sera exécutée en premier.

Cela va sans dire, mais ayant donné des cours Excel à des centaines d'utilisateurs et reçu moult classeurs d'origines variées farcis d'erreurs, j'ai pu constater que la priorité des opérateurs a été oubliée par un pourcentage hélas faramineux des utilisateurs et du coup j'ai pris le parti de mettre systématiquement les ( ) et d'inciter les stagiaires à le faire...

Au moins cela oblige à réfléchir à l'ordre du calcul .

Rechercher des sujets similaires à "calcul sub faux"