Calcul du montant de l'escompte

Bonjour à tous,

J'espère que vous allez bien.

Etant novice sur VBA j'aurais besoin de votre aide pour créer une fonction calculant le montant de l’escompte pour une lettre de change. Il faudrait que je puisse saisir : le montant de la lettre de change, la date de la remise en banque, la date de l’échéance et le taux d’escompte.

Je pense qu'il y a une histoire de fonction "DateDiff"

Exemple concret: j'aimerais calculer le montant de l'escompte pour un montant de lettre de change de 1500, avec date de remise en banque le 12/09/2018 et une date d'échéance du 30/10/2019 avec un taux d'escompte de 10%, si je le fais à main je trouve 19,72 euros, et c'est la réponse que j'aimerais trouver via VBA

Merci d'avance pour votre aide

Bonjour,

comment arrives.-tu à 19.72 ? pour moi cela devrait être 150.

Bonjour,

j'ai fait une erreur sur les dates, en fait c'est :

12/09/2019 pour la date de remise en banque et 30/10/2019 pour la date d'échéance

Tu as réussi à créer un module permettant ce calcul ?

Bonjour,

pour moi, l'escompte de 10 % s'applique pour tout paiement fait avant la date d'échéance. donc le montant de l'escompte reste de 150. (10% de 1500)

comment arrives-tu à 19.72 ?

http://math.en.bep.free.fr/escompte1.htm

en gros on doit calculer le montant de l'escompte e = v * (t/365)*n avec dans notre exemple:

  • v = 1500
  • t = 10%
et n = (30-12)+30 = 48 car on compte le nombre de jours entre le 12 septembre 2019 et le 30 octobre 2019 d'où mon intuition qu'il faille utiliser une fonction comme DateDiff à un moment mais je ne sais pas comment le formaliser sur VBA

d'où e = 1500 * (0.1/365)* 48 = 19.72

j'utilise excel en anglais pour info (sait-on jamais)

et pour info, ici je cherche à un créer une fonction et non un module

Bonjour,

Un truc dans le genre ?

Sub Test()

    Dim Somme As Double
    Dim T As Single
    Dim DateDebut As Date
    Dim DateFin As Date

    Somme = 1500
    T = 0.1
    DateDebut = CDate("12/09/2019")
    DateFin = CDate("30/10/2019")

    MsgBox (Somme * T * DateDiff("d", DateDebut, DateFin)) / 365

End Sub

Tu peux en faire une fonction pour l'utiliser dans Excel :

Function Escompte(Somme As Double, Taux As Single, DateDebut As Date, DateFin As Date) As Double

    Escompte = (Somme * Taux * DateDiff("d", DateDebut, DateFin)) / 365

End Function

=Escompte(A1;A2;A3;A4)

Hello Theze

merci pour ton retour

J'aimerais créer une fonction et non un module

Le script que tu proposes fonctionne sur ce cas particulier, mais moi j'aimerais créer une fonction telle que je puisse saisir n'importe quelle date de remise en banque (ici 12/09/2019) et n'importe quelle date d'échéance (ici 30/10/2019)

rebonjour,

une proposition.

edit : bonjour Theze (solution identique à la tienne, à peu de choses près )

Function escompte(tauxescompte, montant, datepaiement, dateecheance)
    escompte = montant * (dateecheance - datepaiement) * tauxescompte / 365
End Function

cette fonction personnalisée VBA comme toute fonction doit être placée dans un module. (je n'ai donc pas compris ta remarque)

et pour info, ici je cherche à un créer une fonction et non un module

Il est où le problème ?

En A1 la somme (1500)

en A2 le taux (0,1)

en A3 la date de début (12/09/2019)

et en A4 la date de fin (30/10/2019)

la fonction retourne 19,726027691201

ou alors, il y a quelque chose qui m'échappe dans ta demande !

merci pour vos retours!

cela fonctionne

j'ai confondu macro et module, désolé (je débute sur VBA )

Bonjour,

Un truc dans le genre ?

Sub Test()

    Dim Somme As Double
    Dim T As Single
    Dim DateDebut As Date
    Dim DateFin As Date

    Somme = 1500
    T = 0.1
    DateDebut = CDate("12/09/2019")
    DateFin = CDate("30/10/2019")

    MsgBox (Somme * T * DateDiff("d", DateDebut, DateFin)) / 365

End Sub

Dans ce message, la date était fixée, moi je voulais pouvoir mettre n'importe quelle date

mais les fonctions que vous avez proposé par la suite fonctionnent

merci beaucoup

Rechercher des sujets similaires à "calcul montant escompte"