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

Access Discussion :

Calul d'amortissements VBA


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 114
    Points : 46
    Points
    46
    Par défaut Calul d'amortissements VBA
    Hello,

    Un calcul d'amortissement linéaire, avec un affichage détaillé par année, en prenant en compte le calcul de la VNC.

    J'ai réussi un bout de programme ... mais je bloque au moment de la mise en boucle :
    For i = 0 to Duree - 1
    temp = annuite + txtan
    Next i
    txtan = temp

    Dsl, j'suis pas sur mon PC, donc j'ai pas la totalité du code .. mais si qq'un a deja un début d'code, j'pourrai faire un post de l'existant !

    Merci et soyez nombreux lo

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Access regorge, tout comme Excel, de fonctions financières qui t'éviteraient de réécrire un programme...
    La fonction VPM() répond à ta demande...

    Argy

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 114
    Points : 46
    Points
    46
    Par défaut
    Okay, mais comment découvrir ses fonctions en VBA sous access ?

    Cdt

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 38
    Points : 42
    Points
    42
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    For i = 0 to Duree - 1
    temp = annuite + txtan [color=red]+ temp[/color]
    Next i
    txtan = temp
    Ca marchera peut mieux comme ça je pense, parce que autrement ta boucle de sers à rien. De plus tu utilise où la durée dans ton calcul ??

  5. #5
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Voici un exemple de calcul de mesualités avec VBA:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Function CalculMensualite(ByVal MontantEmprunte As Double, ByVal TauxAnnuel As Single, ByVal Mensualites As Integer, ByVal ModeRemboursement As Integer) As String
    Dim dblEcheance As Double
     
      If TauxAnnuel > 1 Then TauxAnnuel = TauxAnnuel / 100
      dblEcheance = Pmt(TauxAnnuel / 12, Mensualites, -MontantEmprunte, 0, ModeRemboursement)
      CalculMensualite = Format(dblEcheance, "#,##0.00") & " euros par mois."
    End Function
    Pour tester:
    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
    Sub EmpruntImmobilier()
    Const DEBUT_DE_MOIS = 1
    Const FIN_DE_MOIS = 0
    Dim intModeDeRemboursement As Integer
    Dim dblMontantEmprunte As Double
    Dim sngTauxAnnuel As Single
    Dim intNbrMensualites As Integer
     
      dblMontantEmprunte = 99100     ' en Euros
      sngTauxAnnuel = 0.043          ' en %
      intNbrMensualites = 180           ' en mois
     
      If MsgBox("Effectuez-vous les remboursements des mensualités en fin de mois ?", 36, "Mode de remboursement") = 6 Then
        intModeDeRemboursement = FIN_DE_MOIS
      Else
        intModeDeRemboursement = DEBUT_DE_MOIS
      End If
        MsgBox CalculMensualite(dblMontantEmprunte, sngTauxAnnuel, intNbrMensualites, intModeDeRemboursement)
    End Sub
    Il existe d'autres fonctions corrélatives... Pour t'entraîner, je te conseille vivement d'utiliser Excel puis de transposer ensuite sous Access.

    Argy

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 114
    Points : 46
    Points
    46
    Par défaut
    Merci bcp, ceci permet de calculer l'amortissement d'un emprunt, mon objectif est de calculer un amortissement d'un équipement .. de toute manière, mes formules fonctionnent :

    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
    Private Sub TxtFirstAn_Click()
    Dim Annuite As Long
    Dim txamt As Long
    Dim duree As Double
     
    txamt = (100 / DureeAmt)
     
       'Extraction des infos
        mois = Month(DateMiseService)
        jours = Day(DateMiseService)
        annee = Year(DateMiseService)
     
            If DateMiseService = DateAcquisition Then
                annuite1 = (Amortissement * txamt) / 100
                TxtAnnuite = annuite1
            Else
                'Annuité de la 1ére année
                duree_annuite1 = (12 - mois) * 30 + (30 - jours)
                annuite2 = (Amortissement * txamt * (duree_annuite1 / 360)) / 100
                TxtFirstAn = annuite2
                'Annuité des années suivantes
                TxtAnnuite = (Amortissement * txamt) / 100
     
                'Annuité de la dernière année
                duree_annuite3 = 360 - duree_annuite1
                annuite3 = (Amortissement * txamt * (duree_annuite3 / 360)) / 100
                TxtLastAn = annuite3
            End If
     
    End Sub
    Cependant, j'aimerai qu'il m'affiche dans un tableau de ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Date de mise en service	20/04/2005		
    Date d'acquisition	01/04/2005		
    Mt de l'acquisition	18000		
    Année Annuité Cumul d’amortissement    Valeur nette comptable
    2004	2500	2500	                          15500
    2005	3600	6100	                          11900
    2006	3600	9700	                          8300
    2007	3600	13300	                         4700
    2008	3600	16900	                         1100
    2009	1100	18000	                         0
    Trés cordialement

  7. #7
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    J'ai la possiblité de te fournir un exemple sous Excel mais pas sous Access ou plutôt pas un simple car sous Access, je l'avais créé avec un DataGrid...

    Argy

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 114
    Points : 46
    Points
    46
    Par défaut
    Hello, sans soucis, je suis preneur ... je me doutais bien qu'il fallait utiliser un DataGrid ... j'suis preneur

Discussions similaires

  1. [XL-MAC 2011] Tableau d'amortissement VBA
    Par ti_mouton dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/10/2014, 22h04
  2. [XL-2013] Problème copie données calulées dans tableau en VBA
    Par joel50 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/10/2014, 08h47
  3. Tableau d'amortissement VBA
    Par Maxnihilist dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/12/2012, 16h23
  4. Tableau Amortissements VBA
    Par VBABeginners dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/02/2010, 01h46
  5. [VBA-E] Graphique suite à un tableau d'amortissement
    Par iupien78 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/02/2007, 15h03

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