Examen Vba
Examen Vba
Examen Vba
2023
Epreuve : VBA-Excel
Excel pour les financiers
Enseignant(es) :
Questions
5) Ecrire une
un macro qui demande un nombre à l’utilisateur, puis qui calcule et affiche le double de ce
nombre. Utiliser les fonctions InputBox et MsgBox.
Réponse
onse :
Sub DoubleN()
N = CInt(InputBox("Saisir un entier:", "Saisie", ""))
MsgBox ("Le double de cet entier est =" & N * 2)
End Sub
6) Ecrire une macro qui permet de parcourir un tableau d’entiers T (avec une taille de 10 entiers) de
deux manières différentes en utilisant les boucles For Each et Do While.
Réponse : Sub parcours1()
Dim T As Variant
T = Array(1, 4, 6, 1, 9, 5, 7, 26, 87, 43)
For Each N In T
MsgBox (N)
Next
End Sub
Sub parcours()
Dim T As Variant
T = Array(1, 4, 6, 1, 9, 5, 7, 26, 87, 43)
i=0
Do While i < 10
MsgBox (T(i))
i=i+1
Loop
End Sub
Exercice 1:
Ecrire le code VBA qui permet de demander un nombre de départ (par un InputBox), et qui calcule la
factorielle de ce nombre. Le résultat sera affiché dans un MsgBox.
Par exemple, si l’on entre 4, le programme doit calculer : 4*3*2*1 et afficher le résultat : 24
NB : on souhaite afficher uniquement le résultat, pas la décomposition du calcul.
Réponse :
Sub factorielle()
n = CInt(InputBox("Saisir entier:", "", ""))
f=1
For i = 2 To n
f=f*i
Next
MsgBox ("Factorielle de " & n & "est = " & f)
End Sub
Exercice 2:
Soit un tableau T constitué de 15 éléments. Les éléments du tableau T correspondent respectivement aux valeurs
dans la plage A1:A15 dans le classeur actif.
Ecrire une macro qui permet d’initialiser le tableau T et d’afficher dans la cellule C3 « oui » s’il existe deux valeurs
successives égales dans le tableau T et « non » sinon.
Réponse :
Sub tableau()
Dim T As Variant
T = Range("A1:A15")
trouve = False
'ici une remarque les tableaux remplis avec une plage de cellules sont des tableaux à deux dimensions ici la
dimension 2 est de taille 1
For i = 2 To 15
If T(i - 1, 1) = T(i, 1) Then
trouve = True
End If
Next
If trouve Then
Range("C3") = "oui"
Else
Range("C3") = "non"
End If
End Sub
Exercice 3:
Les habitants d'un pays paient l’impôt selon les règles suivantes : les hommes de plus de 20 ans paient
l’impôt les femmes paient l’impôt si elles ont entre 18 et 35 ans les autres ne paient pas d’impôts.
Soit le tableau Excel suivant qui présente des informations sur certaines personnes :
1) En considérant le tableau Excel ci-dessus, Ecrire le code VBA qui permet d'afficher "Oui" en
colonne E la personne doit payer l'impôt, "faux" sinon.
N.B : Utiliser les boucles
Réponse
Sub impots()
i=2
Do While Not IsEmpty(Cells(i, 1))
If (Cells(i, 4) = "M" And Cells(i, 3) >= 20) Or (Cells(i, 4) = "F" And Cells(i, 3) >= 18 And Cells(i, 3) <= 35) Then
Cells(i, 5) = "oui"
Else
Cells(i, 5) = "faux"
End If
i=i+1
Loop
End Sub
2) Si nous associons le code de la question précédente à un bouton, de sorte que si on modifie une
donnée, un simple clic sur le bouton permet d'actualiser la situation. Quel sera le nom de la macro
qui permet de le faire ?
Réponse :
Le nom de la macro est cmdOK_Click si la propriété Name du bouton a comme valeur cmdOK