XL 2016 module pour calculer montant TTC

coronae35

XLDnaute Nouveau
Bonjour à tous,

J'espère que vous allez bien.
Etant novice sur VBA j'aurais besoin de votre aide pour créer un module qui me donne la possibilité de saisir une quantité vendue, un prix unitaire hors taxe, un taux de TVA et un pourcentage de de remise et qui affiche dans une fenêtre le montant TTC à payer

Merci d'avance pour votre aide
 

danielco

XLDnaute Accro
Au plus simple ?
VB:
Sub test()
  Dim HT As Double, TVA As Single, TTC As Double
  HT = InputBox("Entrez le montant")
  TVA = InputBox("Entrez le taux de TVA")
  HT = Replace(HT, ",", ".")
  TVA = Replace(TVA, ",", ".")
  TVA = Replace(TVA, "%", "")
  TTC = HT + HT * TVA / 100
  MsgBox TTC
End Sub
 

patricktoulon

XLDnaute Barbatruc
bonjour
on crée pas un module mais une macro dans un module
un petit exemple dans un userform
demo3.gif
 

Pièces jointes

  • prix ttc uht.xlsm
    17.2 KB · Affichages: 18

coronae35

XLDnaute Nouveau
Bonjour,

Je cherche plutôt à avoir un code comme ça :

Sub prix()
Dim montantht As Single
Dim taux As Single
Dim tva As Single
Dim ttc As Single
montantht = InputBox("Veuillez saisir un montant HT : ")
taux = InputBox("Quel est le taux de TVA ? ")
tva = montantht * taux / 100
ttc = montantht + tva
MsgBox ("Le montant de TVA est de : " & tva & " €.")
MsgBox ("Le montant TTC est de : " & ttc & "€.")
End Sub

mais je ne sais pas comment l'adapter dans mon cas

Bien à toi,
 
Dernière édition:

danielco

XLDnaute Accro
Pour une meilleure compréhension, ce qu'utilise Patrick s'appelle un formulaire ou userform. Je laisse Patrick le modifier. Mais, si tu ne maîtrise pas les userforms, utilise plutôt les inputboxes, beaucoup plus frustres, mais plus simple à manipuler.

Daniel
 

patricktoulon

XLDnaute Barbatruc
re
Allez c'est cadeau juste pour faire joujou avec une forme :le même génétiquement transformé ;) façon patosch
le userform se transforme en "inputboxPRIX" (4 inputbox en 1)(rigolo non?)
et en prime vous pouvez vous en servir comme un visionneur userform (comme une calculette)en cliquant sur le bouton dans la feuille
dans un module standard:
VB:
Option Explicit
'********************************************************************************
'MODE INPUTBOX
'appeler  l'inputboxPRIX comme suit!!!!!!!
Sub test() 'avec argument
'InpuboxPRIX.Calcule(prix uht, remise en pourcentage, TVA, quantité)
MsgBox InpuboxPRIX.Calcule(200.65, 10, 5.5, 4)
End Sub

Sub test2() 'appel sans argument les taper soit meme quand l'input est affiché
MsgBox InpuboxPRIX.Calcule
End Sub
'*********************************************************************************

'*********************************************************************************
'mode applicatif(UserForm)visionnage
Sub test3()
'simplement un show et taper soit meme les données
inputboxPRIX.Show  '(modal ou pas comme vous voulez selon votre besoins )
End Sub
'*********************************************************************************
les commentaire sont a portée de tous (pas très compliqué)
pour le code userform je vous livre un fichier exemple
demo3.gif


;)

si vous voulez je transforme ce userform en simple fonction histoire de rigoler un peu
 

Pièces jointes

  • prix ttc uht.xlsm
    21.1 KB · Affichages: 14
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonjour le fil,

coronae35
Si on reprends ton exemple du message#5
VB:
Sub prix()
Dim montantht As Double, taux As Double, tva As Double, ttc As Double, mess$
montantht = InputBox("Veuillez saisir un montant HT : ", "Montant", 100)
taux = InputBox("Quel est le taux de TVA ? ", "Taux par défaut: 20%", 20) / 100
tva = montantht * taux
ttc = (1 + taux) * montantht
mess = "Le montant de TVA est de : " & tva & " €." & Chr(13)
mess = mess & ("Le montant TTC est de : " & ttc & "€.")
MsgBox mess, vbInformation, "Résultats CALCUL"
End Sub
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
ou un qui prend tout
VB:
Option Explicit
Function prix()
Dim x, p#, le_prix$, mess$
mess = Replace("Veuillez saisir:|1°un montant HT|2°la remise|3°la tva|4°la quantité|séparés par un "":""", "|", vbCrLf)
mess = mess & " Exemple (200.45 : 10 : 5.5 : 4)"
le_prix = InputBox(mess, "Montant", 100)
x = Split(le_prix, ":")
p = Val(x(0)) * Val(x(3))
p = p - (p / 100) * Val(x(1))
p = p + (p / 100) * Val(x(2))
prix = Format(p, "#0.00")
End Function

Sub test()
MsgBox prix
End Sub
 

coronae35

XLDnaute Nouveau
Bonsoir le fil,

Si on reprends ton exemple du message#5
VB:
Sub prix()
Dim montantht As Double, taux As Double, tva As Double, ttc As Double, mess$
montantht = InputBox("Veuillez saisir un montant HT : ", "Montant", 100)
taux = InputBox("Quel est le taux de TVA ? ", "Taux par défaut: 20%", 20) / 100
tva = montantht * taux
ttc = (1 + taux) * montantht
mess = "Le montant de TVA est de : " & tva & " €." & Chr(13)
mess = mess & ("Le montant TTC est de : " & ttc & "€.")
MsgBox mess, vbInformation, "Résultats CALCUL"
End Sub

Hello,

merci pour ton retour, mais la macro là ne permet pas de rentrer une quantité et une remise, saurais tu comment intégrer cela ?
 

coronae35

XLDnaute Nouveau
re
ou un qui prend tout
VB:
Option Explicit
Function prix()
Dim x, p#, le_prix$, mess$
mess = Replace("Veuillez saisir:|1°un montant HT|2°la remise|3°la tva|4°la quantité|séparés par un "":""", "|", vbCrLf)
mess = mess & " Exemple (200.45 : 10 : 5.5 : 4)"
le_prix = InputBox(mess, "Montant", 100)
x = Split(le_prix, ":")
p = Val(x(0)) * Val(x(3))
p = p - (p / 100) * Val(x(1))
p = p + (p / 100) * Val(x(2))
prix = Format(p, "#0.00")
End Function

Sub test()
MsgBox prix
End Sub


vous êtes des artistes du VBA messieurs :D mais je suis trop loin pour vous comprendre à fond

l'idée serait de faire un code via imputboxes sur ce modèle ci - mais de telle sorte que je puisse aussi rentrer une quantité et un taux de remise, je ne sais pas si je suis clair ?

Sub prix()
Dim montantht As Single
Dim taux As Single
Dim tva As Single
Dim ttc As Single
montantht = InputBox("Veuillez saisir un montant HT : ")
taux = InputBox("Quel est le taux de TVA ? ")
tva = montantht * taux / 100
ttc = montantht + tva
MsgBox ("Le montant de TVA est de : " & tva & " €.")
MsgBox ("Le montant TTC est de : " & ttc & "€.")
End Sub
 

patricktoulon

XLDnaute Barbatruc
re
si tu y tiens a tes inputbox en voila 4
prixuht,quantité,remise,tva
VB:
Sub prix()
    Dim montantht, remise, tva, ttc, quantité
    With Application
        montantht = Replace(.InputBox("Veuillez saisir un montant HT : ", Type:=1), ",", ".")
        quantité = Replace(.InputBox("Veuillez saisir une quantité : ", Type:=1), ",", ".")
        remise = Replace(.InputBox("Quelle est la remise ? ", Type:=1), ",", ".")
        tva = Replace(.InputBox("Quel est le taux de TVA ? ", Type:=1), ",", ".")
    End With
    montantht = montantht - (Val(montantht) * Val(remise) / 100)    'montantht-la remise
    tva = (Val(montantht) * Val(quantité)) * Val(tva) / 100    'total de la TVA
    ttc = (montantht * quantité) + tva    'total TTC
    MsgBox ("Le montant de TVA est de : " & tva & " €.")
    MsgBox ("Le montant TTC est de : " & Format(ttc, "#0.00€"))
End Sub
 

Statistiques des forums

Discussions
312 175
Messages
2 085 953
Membres
103 059
dernier inscrit
gib17