vendredi 6 janvier 2012

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 Ristourne =5%
10 500Ristourne=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 Ristourne =5%
10 500Ristourne=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
---------------------------------------------------------------------


0 commentaires:

Enregistrer un commentaire

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites

 

IP