IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Equivalent fonction TAUX et VPM en VBA [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Février 2017
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : Finance

    Informations forums :
    Inscription : Février 2017
    Messages : 59
    Par défaut Equivalent fonction TAUX et VPM en VBA
    Bonjour,
    Existe t'il des équivalents VBA pour les fonctions Excel TAUX et VPM ?

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 385
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Application.WorksheetFunction.Rate  'Equivalent de =TAUX
    Application.WorksheetFunction.Pmt   'Equivalent de =VMP

  3. #3
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Citation Envoyé par ncl98 Voir le message
    Bonjour,
    Existe t'il des équivalents VBA pour les fonctions Excel TAUX et VPM ?
    Très probablement, avec VBA il est possible de créer des fonctions pour toutes sortes de calculs mathématiques ....

    Mais il est souvent bien plus simple d'utiliser directement les fonctions de calcul d'Excel (avec Application.WorksheetFunction...)

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Patrice740 Voir le message
    Mais il est souvent bien plus simple d'utiliser directement les fonctions de calcul d'Excel (avec Application.WorksheetFunction...)
    Il est aussi possible de les utiliser avec Evaluate https://docs.microsoft.com/fr-fr/off...ation.evaluate

    WorksheetFunction est plus pratique pour une simple fonction.
    Evaluate est plus pratique s'il s'agit d'une formule avec plusieurs fonctions.

  5. #5
    Membre confirmé
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Février 2017
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : Finance

    Informations forums :
    Inscription : Février 2017
    Messages : 59
    Par défaut
    Bonjour,

    Un grand merci pour vos réponses.

  6. #6
    Membre confirmé
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Février 2017
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : Finance

    Informations forums :
    Inscription : Février 2017
    Messages : 59
    Par défaut
    Re-bonjour,

    Je reviens vers le forum car je suis confronter à une énigme.
    Je dois déterminer le taux "équivalent" d'un prêt unique à partir des données de 2 autres prêts dont un a un taux fixé à 1,00%.
    Pour les tests, le prêt1 est de 7.500.000 au taux de 2,00% et le prêt2 est de 7.500.000 au taux de 1,00%.
    Avec l'application, le résultat (TextBox5) est égal à 0,1464% alors qu'avec Excel, le résultat est 1,7567%. Après vérification manuelle, le résultat Excel est le bon.
    Pouvez-vous m'aider à trouver l'erreur ?
    A vous lire.

    Bien cordialement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    Private Sub UserForm_Initialize()
     
    Me.TextBox2.Locked = True
    Me.TextBox3.Locked = True
    Me.TextBox5.Locked = True
    Me.TextBox8.Locked = True
     
    Me.TextBox8 = Format(1 / 100, "0.0000%") 'taux d'intérêts Prêt2 (fixe à 1,00%)
     
    End Sub
     
    Private Sub CommandButton1_Click()
    Dim mens1 As Double
    Dim durée1 As Double
    Dim taux1 As Double
    Dim CoutTotal1 As Double
    Dim Prêt1 As Double
    Dim mens2 As Double
    Dim durée2 As Double
    Dim taux2 As Double
    Dim CoutTotal2 As Double
    Dim Prêt2 As Double
    Dim mens3 As Double
    Dim durée3 As Double
    Dim taux3 As Double
    Dim CoutTotal3 As Double
    Dim Prêt3 As Double
     
    Set f = Sheets("Données")
     
    taux1 = Me.TextBox7 / 100   'Taux d'intérêts Prêt1
    Prêt1 = CDbl(Me.TextBox2)   'Montant du Prêt1
    durée1 = CDbl(Me.TextBox10) 'Durée du prêt1
     
    mens1 = Application.WorksheetFunction.Pmt(taux1 / 12, durée1, Prêt1) 'mensualité du Prêt1
    Me.TextBox13 = CDbl(-mens1)
    Me.TextBox13 = Format(Me.TextBox13, "#,##0")
    Me.TextBox7 = Format(Me.TextBox7 / 100, "0.0000%")
    CoutTotal1 = mens1 * durée1  'Coût total Prêt1 (capital + intérêts)
     
    Me.TextBox8 = 1
    taux2 = Me.TextBox8 / 100   'Taux d'intérêts Prêt2
    Prêt2 = CDbl(Me.TextBox3)   'Montant Prêt2
    durée2 = CDbl(Me.TextBox9)  'Durée Prêt2
     
    mens2 = Application.WorksheetFunction.Pmt(taux2 / 12, durée2, Prêt2) 'mensualité Prêt2
    Me.TextBox12 = CDbl(-mens2)
    Me.TextBox12 = Format(Me.TextBox12, "#,##0")
    Me.TextBox8 = Format(Me.TextBox8 / 100, "0.0000%")
    CoutTotal2 = mens2 * durée2  'Coût total Prêt2 (capital + intérêts)
     
    CoutTotal3 = CoutTotal1 + CoutTotal2 'Coût total Prêt3 (capital + intérêts)
    durée3 = CDbl(Me.TextBox11)          'Durée (mois) Prêt3
    mens3 = CoutTotal3 / durée3          'mensualité Prêt3
    Prêt3 = Me.TextBox1
    taux3 = Application.WorksheetFunction.Rate(durée3, mens3, Prêt3) 'Taux d'intérêts équivalent Prêt3
    Me.TextBox5 = taux3
    Me.TextBox5 = Format(Me.TextBox5, "0.0000%")
    Me.TextBox1 = Format(Me.TextBox1, "#,##0")
    Me.TextBox14 = mens3
    Me.TextBox14 = Format(Me.TextBox14, "#,##0")
     
    End Sub
    Private Sub TextBox1_Change()
     
    Me.TextBox2 = Prêt1
    Me.TextBox2 = Format(Me.TextBox2, "#,##0")
     
    Me.TextBox3 = Prêt2
    Me.TextBox3 = Format(Me.TextBox3, "#,##0")
     
    End Sub
     
    Private Sub CommandButton2_Click()
     Unload Me
    End Sub

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Les TextBox contiennent du texte, comme leur nom l'indique.
    Utiliser des valeurs numériques dans des TextBox avec des formatages exotiques comme des pourcentages, c'est chercher les ennuis.

    Fais fonctionner ton programme en pas-à-pas en regardant à chaque affectation de variable quelle est la valeur récupérée.
    Pour ça, tu peux utiliser un espion ou la liste des variables locales.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Vba Excel 2000 - Equivalence Fonctions
    Par os_rouen dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/02/2007, 10h43
  2. equivalent fonction gcount()
    Par gy0m76 dans le forum C
    Réponses: 20
    Dernier message: 16/11/2006, 15h37
  3. Equivalent fonction Beep
    Par fabiengb dans le forum Windows
    Réponses: 1
    Dernier message: 24/08/2006, 13h25
  4. equivalent fonction explode (php)
    Par lololoic dans le forum Access
    Réponses: 6
    Dernier message: 21/08/2006, 18h34
  5. Equivalent Fonction RechercheV
    Par RdLg2@ dans le forum Access
    Réponses: 3
    Dernier message: 27/09/2005, 00h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo