Commande bouton

Bonjour ,

Je me permets de vous écrire ce message car je trouve des difficultés pour activer le bouton commande ,ce dernier permet de lancer des message box contenant les réponses relative au contenu des cases de B1:B5 .

Vous trouverez c joint le fichier excel .

Je vous prie de croire en mes salutation les plus respectueuses.

9programmevba.xlsm (21.48 Ko)

Bonjour,

à tester,

Private Sub CB_emprunt_click()
'declaration de variable

Dim CapitalEmprunte As Currency
Dim TauxAnnuel As Single
Dim EstAnnuel As Boolean
Dim TauxApplicable As Single

Dim NombredePeriode As Integer
Dim ReponseAnnuelMensuel As String
Dim I As Integer
Dim Iligne As Integer

' a faire nettoyer b1:b5

Range("B1:B5").Clear
'prompt := "Sample", type := 8

'initialisation
CapitalEmprunte = Application.InputBox("Quel est le montant du capital emprunté?", Type:=1)
Feuil1.Range("B1") = CapitalEmprunte

'a faire gestion du taux annuel
TauxAnnuel = Application.InputBox("Quel est le montant du capital emprunté?", Type:=1)
Feuil1.Range("B2") = TauxAnnuel

ReponseAnnuelMensuel = MsgBox("le Taux est-il Annuel?", vbYesNo)
If ReponseAnnuelMensuel = vbYes Then
     EstAnnuel = True
     Feuil1.Range("B3") = ("Annuel")
       TauxApplicable = TauxAnnuel
Else

     EstAnnuel = False
     Range("B3") = "Mensuel"
     TauxApplicable = TauxAnnuel / 12

End If
Range("b4") = TauxApplicable

'a faire gestion du taux applicable
NombredePeriode = CInt(Application.InputBox("Quel est le nombre de Periode?"))
Feuil1.Range("B5") = NombredePeriode

' a faire la ligne pour initialiser le tableau
Iligne = 8
Feuil1.Range("b" & Iligne) = 1

'completer le reste du tableau
For I = 2 To NombredePeriode
Iligne = I + 7
Feuil1.Range("b" & Iligne) = I

Next I
End Sub

Bonjour,

Je vous remercie pour votre aide le code pour les messages box marche bien ,cependant j'ai un autre problème, en gros je veux faire un programme qui sert d'une part a faire entrer les données via les messages box et qui peuvent être visible automatiquement sur le tableau en fonction des formules qui correspondent a chaque cases de la ligne 8 .

Je vous remercie d'avance de votre attention.

6programmevba.xlsm (23.98 Ko)

Bonjour,

Tout en haut du module colles cette ligne :

Option Explicit

ensuite, lances ta macro et regardes ce qui se passe !

Bonjour,

Merci pour votre aide , par contre j'arrive pas a avoir les bons montant et calcul dans le tableau en fonction de mes données .

5programmevba.xlsm (23.03 Ko)

re,

à tester,

Private Sub CB_emprunt_click()
'declaration de variable

Dim CapitalEmprunte As Currency
Dim TauxAnnuel As Single
Dim EstAnnuel As Boolean
Dim TauxApplicable As Single
Dim MontantRemboursement As Single
Dim InteretPeriode As Single
Dim CapitalResantDuFinDePeriode As Single
Dim MontantPrincipal As Single
Dim NombredePeriode As Integer
Dim ReponseAnnuelMensuel As String
Dim I As Integer
Dim Iligne As Integer

' a faire nettoyer b1:b5

Range("B1:B5").Clear
'prompt := "Sample", type := 8

'initialisation
CapitalEmprunte = Application.InputBox("Quel est le montant du capital emprunté?", Type:=1)
Feuil1.Range("B1") = CapitalEmprunte

'a faire gestion du taux annuel
TauxAnnuel = Application.InputBox("Quel est le Taux annuel?", Type:=1)
Feuil1.Range("B2") = TauxAnnuel

ReponseAnnuelMensuel = MsgBox("les Remboursements sont-ils annuel ?", vbYesNo)
If ReponseAnnuelMensuel = vbYes Then
     EstAnnuel = True
     Feuil1.Range("B3") = ("Annuel")
       TauxApplicable = TauxAnnuel
Else

     EstAnnuel = False
     Range("B3") = "Mensuel"
     TauxApplicable = TauxAnnuel / 12

End If
Range("b4") = TauxApplicable

'a faire gestion du taux applicable
NombredePeriode = CInt(Application.InputBox("Quel est le nombre de Periode?"))
Feuil1.Range("B5") = NombredePeriode

' a faire la ligne pour initialiser le tableau
Iligne = 9
Feuil1.Range("b" & Iligne) = 1
Feuil1.Range("c" & Iligne) = CapitalEmprunte
InteretPeriode = Feuil1.Range("c" & Iligne) * TauxApplicable  'Interet
Feuil1.Range("D" & Iligne) = InteretPeriode
MontantRemboursement = CapitalEmprunte * TauxApplicable / (1 - (1 + TauxApplicable) ^ (-NombredePeriode))
Feuil1.Range("F" & Iligne) = MontantRemboursement
MontantPrincipal = MontantRemboursement - InteretPeriode
Feuil1.Range("E" & Iligne) = MontantPrincipal
CapitalResantDuFinDePeriode = Feuil1.Range("c" & Iligne) - MontantPrincipal
Feuil1.Range("G" & Iligne) = CapitalResantDuFinDePeriode

'completer le reste du tableau
For I = 2 To NombredePeriode
    Iligne = I + 8
    Feuil1.Range("b" & Iligne) = I
    Feuil1.Range("c" & Iligne) = Feuil1.Range("G" & Iligne - 1)
    InteretPeriode = Feuil1.Range("c" & Iligne) * TauxApplicable  'Interet
    Feuil1.Range("D" & Iligne) = InteretPeriode
    Feuil1.Range("E" & Iligne) = MontantPrincipal
    Feuil1.Range("F" & Iligne) = MontantRemboursement
    MontantPrincipal = MontantRemboursement - InteretPeriode
    CapitalResantDuFinDePeriode = Feuil1.Range("c" & Iligne) - MontantPrincipal
    Feuil1.Range("G" & Iligne) = CapitalResantDuFinDePeriode
Next I
End Sub

Bonjour,

Avec les fonctions financière d'Excel :

Sub Emprunt()

    Dim CapitalEmprunte As Currency
    Dim TauxAnnuel As Single
    Dim NombredePeriode As Integer
    Dim I As Integer

    Range("B1:B5").Clear

    'initialisation
    CapitalEmprunte = Application.InputBox("Quel est le montant du capital emprunté?", Type:=1)
    Feuil1.Range("B1") = CapitalEmprunte

    'a faire gestion du taux annuel
    TauxAnnuel = Application.InputBox("Quel est le Taux annuel ?", Type:=1)
    Feuil1.Range("B2") = TauxAnnuel

    'a faire gestion du taux applicable
    NombredePeriode = CInt(Application.InputBox("Quel est le nombre de Periode?"))
    Feuil1.Range("B5") = NombredePeriode

    For I = 1 To NombredePeriode

        Cells(I + 8, 2).Value = I
        Cells(I + 8, 3).Value = -Application.PPmt(TauxAnnuel / 12, I, NombredePeriode, CapitalEmprunte) + Application.Pmt(TauxAnnuel / 12, NombredePeriode, -CapitalEmprunte) * (1 - (1 + TauxAnnuel / 12) ^ -(NombredePeriode - I)) / (TauxAnnuel / 12)
        Cells(I + 8, 4).Value = Application.IPmt(TauxAnnuel / 12, I, NombredePeriode, -CapitalEmprunte)
        Cells(I + 8, 5).Value = -Application.PPmt(TauxAnnuel / 12, I, NombredePeriode, CapitalEmprunte)
        Cells(I + 8, 6).Value = Application.Pmt(TauxAnnuel / 12, NombredePeriode, -CapitalEmprunte)
        Cells(I + 8, 7).Value = Application.Pmt(TauxAnnuel / 12, NombredePeriode, -CapitalEmprunte) * (1 - (1 + TauxAnnuel / 12) ^ -(NombredePeriode - I)) / (TauxAnnuel / 12)

    Next I

End Sub

Bonjour ,

Ce projet consiste à calculer et rédiger un tableau d’amortissement de l’emprunt avec des remboursements constants « annuité constante "

La boite de dialogue marche bien mon programme aussi sauf un tout petit détail, concernant la boite de dialogue quand on opte pour "un remboursement annuel comme réponse " le calcul des intérêts se fait en remboursement mensuel en divisant le taux applicable / 12 ,or qu'il ne doit pas être ainsi .

Vous trouverez ci-joint le fichier ,je vous remercie d'avance de votre attention .

8projet.xlsm (21.51 Ko)

Bonjour,

Remplacer "TauxAnnuel" par "TauxApplicable", ce qui est fait là dessous :

 For I = 1 To NombredePeriode

        Cells(I + 8, 2).Value = I
        Cells(I + 8, 3).Value = -Application.PPmt(TauxApplicable, I, NombredePeriode, CapitalEmprunte) + Application.Pmt(TauxApplicable, NombredePeriode, -CapitalEmprunte) * (1 - (1 + TauxApplicable) ^ -(NombredePeriode - I)) / TauxApplicable
        Cells(I + 8, 4).Value = Application.IPmt(TauxApplicable, I, NombredePeriode, -CapitalEmprunte)
        Cells(I + 8, 5).Value = -Application.PPmt(TauxApplicable, I, NombredePeriode, CapitalEmprunte)
        Cells(I + 8, 6).Value = Application.Pmt(TauxApplicable, NombredePeriode, -CapitalEmprunte)
        Cells(I + 8, 7).Value = Application.Pmt(TauxApplicable, NombredePeriode, -CapitalEmprunte) * (1 - (1 + TauxApplicable) ^ -(NombredePeriode - I)) / TauxApplicable

Next I
Rechercher des sujets similaires à "commande bouton"