Macro Excel
Al'x
-
Al'x -
Al'x -
Bonjour,
Je suis débutant en VBA pour Excel et je viens d'écrire ce programme :
Sub MargeUnitaire()
Dim dpa, tva, prix_de_vente_nation, taux_de_marge, marge_en_euro
dpa = InputBox("Entrez le DPA de l'article", "DPA", 0)
prix_de_vente_nation = InputBox("Entrez le prix de vente nation de l'article", "PVN", 0)
tva = 1.196
taux_de_marge = (1 - ((dpa * tva) / prix_de_vente_nation)) * 100
taux_de_marge = Round(taux_de_marge, 2)
marge_en_euro = ((prix_de_vente_nation / tva) * (1 - ((dpa * tva) / prix_de_vente_nation)))
marge_en_euro = Round(marge_en_euro, 2)
MsgBox "Le Taux de Marge de votre produit est de " & taux_de_marge & "% et la Marge en Euro est de " & marge_en_euro & "€"
End Sub
J'aimerais pouvoir inscrire des nombres décimaux dans mes InputBox.
Pouvez-vous me dire où se situe le problème? Pouvez-vous m'aider à ajouter des Types à mes variables?
Merci
Je suis débutant en VBA pour Excel et je viens d'écrire ce programme :
Sub MargeUnitaire()
Dim dpa, tva, prix_de_vente_nation, taux_de_marge, marge_en_euro
dpa = InputBox("Entrez le DPA de l'article", "DPA", 0)
prix_de_vente_nation = InputBox("Entrez le prix de vente nation de l'article", "PVN", 0)
tva = 1.196
taux_de_marge = (1 - ((dpa * tva) / prix_de_vente_nation)) * 100
taux_de_marge = Round(taux_de_marge, 2)
marge_en_euro = ((prix_de_vente_nation / tva) * (1 - ((dpa * tva) / prix_de_vente_nation)))
marge_en_euro = Round(marge_en_euro, 2)
MsgBox "Le Taux de Marge de votre produit est de " & taux_de_marge & "% et la Marge en Euro est de " & marge_en_euro & "€"
End Sub
J'aimerais pouvoir inscrire des nombres décimaux dans mes InputBox.
Pouvez-vous me dire où se situe le problème? Pouvez-vous m'aider à ajouter des Types à mes variables?
Merci
A voir également:
- Macro Excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
1 réponse
Bonjour,
une inputbox aura toujours une chaine, à toi de la convertir en numérique lors de l'affectation à une variable (avec cdbl() par exemple).
Si tu utilises l'inputbox d'une feuille, avec :
prix_de_vente_nation = Application.InputBox("Entrez le prix de vente nation de l'article", type:=1) tu peux t'assurer que la saisie correspond à un nombre convertible.
Par ailleurs je te conseille de typer tes variables, par exemple :
Dim dpa as long, tva as double, etc
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
une inputbox aura toujours une chaine, à toi de la convertir en numérique lors de l'affectation à une variable (avec cdbl() par exemple).
Si tu utilises l'inputbox d'une feuille, avec :
prix_de_vente_nation = Application.InputBox("Entrez le prix de vente nation de l'article", type:=1) tu peux t'assurer que la saisie correspond à un nombre convertible.
Par ailleurs je te conseille de typer tes variables, par exemple :
Dim dpa as long, tva as double, etc
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
ça marche à merveille!! :)