Pages - Menu

Pages

Exercices Corrigés VBA Excel 2007 : Fonctions et Procédures Personalisées VBA exercices avec Correction

Exercice 1 : Procédure simple

créez une procédure VBA en utilisant Excel 2007 qui permet de calculer la valeur acquise d’une suite de n annuités constantes de fin de période placées au taux d’intérêt annuel i,

1) Démarrez Excel et nommez la feuille « feuil1 » en « valacquise1 »

2) Créez une procédure que vous appellerez ValAcqu (Cf. Fiche technique « Procédure en VBA »)

3) Saisissez le code VBA découlant de l’algorithme que vous avez réalisé


Remarque : la fonction CONVCHAINE(…) se traduit en VBA par l’instruction Cstr(…)

4) Pour vérifier que le code est correct, compilez la procédure : menu Débogage – Compiler

5) Dans la feuille de calcul nommée « valacquise », créez un bouton et associez lui le nom de la procédure que vous avez saisie

6) Testez le bon fonctionnement du code avec les éléments suivants :

    Annuité : 6 500
    Taux d’intérêt : 7%
    Nombre d’annuités : 5

Exercice 2 : Fonction personnalisée simple – Calculs par tranche

Une société accorde à ses clients une ristourne annuelle calculée par tranche selon les conditions suivantes :
 
Caff HT≤6 500 €    => Ristourne = 3%
6 500<Caff HT≤10 500     => Ristourne =5%
10 500<Caff HT≤15 000     =>Ristourne=7%
Caff HT> 15 000     =>Ristourne =8%

Activité :

1)    Rédigez l’algorithme de la fonction personnalisée CalcRistourne permettant d’obtenir pour un chiffre d’affaires donné, le montant de la ristourne

2)    Dans le classeur utilisé pour l’exercice 1, insérez une fonction dans la feuille de module « Module1 » et saisissez le code VBA correspondant à l’algorithme de la première question
 
3)    Renommez la feuille « Feuil2 » en Ristourne annuelle, saisissez les éléments du jeu d’essai ci-dessous et implantez la formule de calcul de la ristourne en utilisant la fonction personnalisée que vous avez créé lors de la question 2
  
Jeu d’essai à saisir :
  
Remarque :
 
-    Le symbole % n’est pas reconnu par VBA, il faut donc écrire 0,07 au lieu de 7% dans le code

-------------------------------------------------------------------------------------------------------
Correction
-------------------------------------------------------------------------------------------------------

Corrigé Exercice 1 :

3) Saisissez le code VBA découlant de l’algorithme que vous avez réalisé:

Code de la procédure :

Public Sub Vacq()

    Dim a As Single
    Dim i As Single
    Dim n As Integer
    Dim Va As Single
    n = InputBox("Saisissez le nombre d'annuités")
    a = InputBox("Saisissez le montant de l'annuité")
    i = InputBox("Saisissez le taux d'intérêt (pour 100 €)")
    i = i / 100
    Va = (a * (1 + i) ^ n - 1) / i
    MsgBox ("Le montant de la valeur acquise est de : " & CStr(Va))

End Sub


Les étapes de création de la procédure en image : 









la boite de dialogue qui doit être affichée lorsqu'on clique sur le bouton :



Corrigé Exercice 2 :Fonction personnalisée simple
   
Une société accorde à ses clients une ristourne annuelle calculée par tranche selon les conditions suivantes :

Caff HT≤6 500 €    => Ristourne = 3%
6 500<Caff HT≤10 500     => Ristourne =5%
10 500<Caff HT≤15 000     =>Ristourne=7%
Caff HT> 15 000     =>Ristourne =8%

ALGO Calcul_Ristourne
---------------------------------------------------------------------
FONCTION CalcRistourne(Caff : Réél) : Réél
    SI Caff<=6500
        ALORS CalcRistourne=Caff*3%
        SINON
            SI Caff<=10500
            ALORS CalcRistourne= 195+(Caff-6500)*5%
            SINON
                SI Caff<=15000
                    ALORS CalcRistourne=395+(Caff-10500)*7%
                    SINON CalcRistourne=710+(Caff-15000)*8%
                FIN SI
                 FIN SI
    FIN SI
FIN FONCTION
---------------------------------------------------------------------
  
LA FONCTION EN VBA

---------------------------------------------------------------------
Public Function CalcRistourne(Caff As Single) As Single
    If Caff <= 6500 Then
        CalcRistourne = Caff * 0.03
        Else
            If Caff <= 10500 Then
                CalcRistourne = 195 + (Caff - 6500) * 0.05
                Else
                If Caff <= 15000 Then
                    CalcRistourne = 395 + (Caff - 10500) * 0.07
                    Else
                    CalcRistourne = 710 + (Caff - 15000) * 0.08
                End If
            End If
    End If
---------------------------------------------------------------------
   

           

2 commentaires: