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 :

Tableau d'emprunt


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Décembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2015
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Tableau d'emprunt
    Bonjour ,
    Etant relativement novice en vba je dois réaliser un tableau d'emprunt .
    Mon but est de générer à l'aide d'un bouton un tableau d'amortissement complet .

    Je suis conscient qu'il doit y avoir de nombreuses fautes dans mon code , mais je suis preneur de toute l'aide que vous pourrez m'apporter :

    Voila mon code pour l'instant :

    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
     
     
    Private Sub Amortissement_constant_Click()
     
    Dim Capital As Double
    Dim Peridode As Double
    Dim Taux As Double
     
    Capital = Worksheets("Feuil1").Range("C3").Value 'Capital emprunté (Euros)
    Periode = Worksheets("Feuil1").Range("C4").Value 'Nombre de périodes (en années)
    Taux = Worksheets("Feuil1").Range("C5").Value 'Taux fixe d'emprunt ( en % annuel )
     
    Dim amortissement(), interets(), capital_restant(), total_interets(), Annuite() As Double
    Dim xx As Integer
     
    'Le tableaux capital_restant() contiendra le capital restant dû période après période (années après années) en euros.
    'Le tableaux interets() contiendra les intérets dus à la banque sur chaque années, en euros.
    'Le tableaux amortissement() contiendra le capital amorti/remboursé sur chaque période, en euros.
     
     
     ReDim amortissement(0), interets(0), capital_restant(0), total_interets(0), Annuite(0)
     
    'Amortissement la 1ere année
    amortissement(0) = Capital / Periode
    amortissement(0) = Worksheets("Feuil1").Range("D14").Value
     
    'Intérêt 1ere années
    interets(0) = Capital * Taux
    interets(0) = Worksheets("Feuil1").Range("C14").Value
     
    'somme prélevée annuelle
    Annuite(0) = interets(0) + amortissement(0)
     
    'Capital restant à amortir au début de la 1ére Période
     
    capital_restant(0) = Capital
    capital_restant(0) = Worksheets("Feuil1").Range("B14").Value
    total_interets(0) = 0
    total_interets(0) = Worksheets("Feuil1").Range("E14").Value
     
    'Début de la boucle du tableau d'amortissement , il y aura autant de lignes que de périodes saisi par l'utilisateur
     
    For xx = 1 To Periode
    capital_restant(xx) = capital_restant(xx - 1) - amortissement(xx - 1)
    capital_restant(xx) = Worksheets("Feuil1").Range("B14").Offset(1, 0).Value
     
    interets(xx) = capital_restant(xx) * Taux
    interets(xx) = Worksheets("Feuil1").Range("C14").Offset(1, 0).Value
     
    amortissement(xx) = amortissement(0)
    amortissement(xx) = Worksheets("Feuil1").Range("D14").Offset(1, 0).Value
     
    totalinterets = totalinterets + interets(xx)
    totalinterets(xx) = Worksheets("Feuil1").Range("E14").Offset(1, 0).Value
     
     
     
    Next xx
     
     
     
    End Sub
    Merci d'avance

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    bonsoir
    un emprunt avec intérêt simple ou intérêt composé??
    et pourquoi VBA si un simple fichier excel fait l'affaire ??
    ci joint un fichier exemple
    Fichiers attachés Fichiers attachés
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  3. #3
    Candidat au Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Décembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2015
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Oui je sais bien , il est beaucoup plus simple de passer par excel directement en effet mais je suis obligé de passer par vba c'est dans le cadre d'un sujet d'examen

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    C'est dans le cadre d'un examen ....
    De ma part je te souhaite la Bonne chance
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    déjà:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim amortissement(), interets(), capital_restant(), total_interets(), Annuite() As Double
    Il y a juste annuité() qui est Double, les autres sont Variant.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    amortissement(0) = Capital / Periode
    Ça c'est déjà archifaux


    Tu dois calculer la portion des intérêts (diminue d'un paiement à l'autre) et la soustraire du paiement pour calculer la portion amortissement (augmente d'un paiement à l'autre)


    Mais pas question de faire ton devoir à ta place.

    P.S. Ton paiement tu le comptes comment ?
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  6. #6
    Candidat au Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Décembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2015
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci pour votre aide , j'ai revu mon code et l'ai simplifié car il était inutilement compliqueé , cependant j'ai toujours une erreur : ("incompatibilité de type") dans mon code :


    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
    Private Sub Amortissement_constant_Click()
     
    Dim Capital As Double
    Dim Peridode As Integer
    Dim Taux As Double
    Dim interet As Double
    Dim amortissement As Double
    Dim capital_restant As Double
     
    Capital = InputBox(" Quel est le montant du capital emprunte ? ")
     
    Worksheets("Feuil1").Range("C3") = Capital
     
    Taux = InputBox(" Quel est le montant du taux ? ")
     
    Worksheets("Feuil1").Range("C5") = Taux
     
    Periode = CInt(InputBox(" Quel est le nombre de periodes ? "))
     
    Worksheets("Feuil1").Range("C4") = Periode
     
     
     
    amortissement = Capital / Periode
     
    For i = 1 To Periode
     
    iligne = i + 15
     
        Worksheets("Feuil1").Range("B" & iligne) = i
        Worksheets("Feuil1").Range("C" & iligne) = Worksheets("Feuil").Range("G" & iligne - 1)
        interet = Worksheets("Feuil1").Range("C" & iligne) * Taux
        Worksheets("Feuil1").Range("D" & iligne) = interet
        Worksheets("Feuil1").Range("F" & iligne) = amortissement
       capital_restant = Worksheets("Feuil1").Range("C" & iligne) - amortissement
        Worksheets("Feuil1").Range("G" & iligne) = capital_restant
     
    Next i
     
     
     
    End Sub



    Pour le calcul de l'amortiisement , on se situe dans le cadre d'emprunt a amortissement constant ou seule la partie constitué des interets est variable .

  7. #7
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour

    c'est dans le cadre d'un sujet d'examen
    Et quelle est ton intention si tu obtiens ici ta solution ? De dire à l'examinateur qu'elle t'a été donnée sur un forum de développement ?
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  8. #8
    Candidat au Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Décembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2015
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Non pas du tout , il s'agit d'un sujet d'examen de 2017 que j'effectue en tant que préparation .
    Mon but n'est pas de tricher ou quoi que ce soit mais simplement de m'entrainer et comprendre les erreurs que je fait .

  9. #9
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    il s'agit d'un sujet d'examen de 2017
    Je vois.... et ai pour toi une excellente nouvelle --->>
    tous les sujets repris en "annales" d'examens viennent avec leur corrigé.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  10. #10
    Membre expérimenté Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 724
    Points : 1 454
    Points
    1 454
    Par défaut
    Bonjour à tous! Voici un extrait de votre code ci dessus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Peridode As Integer
    Worksheets("Feuil1").Range("C4") = Periode
    amortissement = Capital / Periode
    For i = 1 To Periode
    N'y-a-t-il rien qui vous gène?

    cependant j'ai toujours une erreur : ("incompatibilité de type") dans mon code :
    Il serait bon de dire sur quelle ligne, se produit la dite erreur? Si en plus nous devons tout deviner!!!

    @unparia, sur un ou plusieurs forums? Ils sont tellement nombreux à faire cela. Le premier forum qui répond, ils filent sur les autres "J'y connais rien, mais voici le Userform, que j'ai tenté de faire péniblement!" On y voit un code très sophistiqué, avec en commentaires de code ce que le donateur du code tente d'expliquer au receveur, qui vient demander de l'aide, dans le style aidez moi SVP. Parceque il ne sait pas comment le raccorder à l'autre bout de code reçu sur un deuxième forum.
    Cordialement
    On a deux vies, la deuxième commence quand on se rend compte qu'on n'en a qu'une.
    Confucius

  11. #11
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour transitoire
    C'est ce que j'ai l'habitude d'appeler "jouer au ping-pong"

    vico83300 ferait beaucoup mieux de commencer à s'intéresser aux fondamentaux, parmi lesquels :
    - le typage adéquat des variables
    - le type d'une variable retournée par la boîte de dialogue qu'il utilise; et ce qu'il en fait.
    - les fonctions de conversion de type de variable. Qu'il ne dise surtout pas qu'il ne sait pas de quoi il s'agit, car il en utilise précisément (et à juste titre) une dans le bout de code qu'il a écrit (ou recopié ?).
    etc ....
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

Discussions similaires

  1. Tableau d'amortissement d'emprunt
    Par Pgs dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/09/2007, 14h11
  2. Tableau d'amortissement d'emprunt
    Par Pgs dans le forum MySQL
    Réponses: 0
    Dernier message: 03/09/2007, 23h31
  3. verification de doublons dans un tableau
    Par bohemianvirtual dans le forum C
    Réponses: 11
    Dernier message: 25/05/2002, 12h21
  4. transmision de tableau en parametre
    Par Horus dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/05/2002, 11h15
  5. Réponses: 4
    Dernier message: 13/05/2002, 16h43

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