0% ont trouvé ce document utile (0 vote)
139 vues3 pages

Programmation VBA : Exercices et Solutions

Le document présente trois exercices sur la programmation en VBA. L'exercice 1 contient des questions sur l'affichage de boîtes de dialogue par des procédures. L'exercice 2 concerne les opérateurs logiques et les variables. L'exercice 3 porte sur le passage de paramètres par référence et par valeur.

Transféré par

dakir
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
139 vues3 pages

Programmation VBA : Exercices et Solutions

Le document présente trois exercices sur la programmation en VBA. L'exercice 1 contient des questions sur l'affichage de boîtes de dialogue par des procédures. L'exercice 2 concerne les opérateurs logiques et les variables. L'exercice 3 porte sur le passage de paramètres par référence et par valeur.

Transféré par

dakir
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Informatique - DEGEAD 2 Université Paris-Dauphine

TD 1 - Programmation en VBA

Exercice 1 : Programme VBA

Q 1.1 Quels sont les affichages effectués par MsgBox lors de l’exécution de la macro mac1 suivante :

Sub mac1 ( )
MsgBox ” Bonjour ! ”
proc1
p r o c 2 10
End Sub

Sub p r o c 1 ( )
MsgBox ” Bienvenue dans l ’ UE47 . ”
End Sub

Sub p r o c 2 (ByVal a As I n t e g e r )
I f a > 5 Then
MsgBox ” T r a v a i l l e z b i e n . ”
proc3
Else
MsgBox ”Ne t r a v a i l l e z pas . ”
End I f
End Sub

Sub p r o c 3 ( )
MsgBox ”Bon s e m e s t r e ! ”
End Sub

Q 1.2 Trois procédures sont déclarées dans le programme VBA suivant : procA, procB et procC.

Sub procA ( )
Dim a As I n t e g e r , Dim b As String
a = 2 7 : b = a + 10
End Sub

Sub procC (ByVal a As I n t e g e r )


b As I n t e g e r
I f a < 20 Then
b = 100
Else
b = 1000
End Sub
Informatique - DEGEAD 2 page 2

Sub procB ( )
b = 100
procC b

(a) Ce programme contient-il des macros ?


(b) Combien d’erreurs voyez-vous dans le programme ?
(c) Corrigez-les.

Exercice 2 : Variables

Q 2.1 Quel va être le contenu de la plage de cellules allant de L1C1 à L7C1 après exécution des instructions
suivantes ?

Dim p As Boolean , q As Boolean


p = True : q = False

Cells (1 , 1 ) . Value = p And q


Cells (2 , 1 ) . Value = p Or q
Cells (3 , 1 ) . Value = q And q Or p
Cells (4 , 1 ) . Value = q And ( q Or p )
Cells (5 , 1 ) . Value = p Or q And q
Cells (6 , 1 ) . Value = ( p Or q ) And q
Cells (7 , 1 ) . Value = Not p And ( q Or p )

Q 2.2 Soit le programme VBA suivant :

Dim a As S i n g l e , b As S i n g l e

Sub testAB ( )
a = 1: b = 2

MsgBox ”Avant , a = ” & a & ” e t b = ” & b


procA
MsgBox ” Après procA , a = ” & a & ” e t b = ” & b
procB
MsgBox ” Après procB , a = ” & a & ” e t b = ” & b
End Sub

Sub procA ( )
Dim b As S i n g l e : b = 4
End Sub

Sub procB ( )
b = 3 : a = 10
End Sub

Quel est l’affichage effectué par MsgBox lors de l’exécution de la macro testAB ?
Informatique - DEGEAD 2 page 3

Q 2.3 Soient a et b deux variables de même type, proposez un algorithme échangeant leur contenu avec
le moins d’instructions possible.

Exercice 3 : Passage de paramètres

Q 3.1 Soit le programme VBA suivant :

Sub procC (ByRef a As S i n g l e , ByRef b As S i n g l e )


a = 10 : b = 100
End Sub

Sub t e s t C ( )
Dim a As S i n g l e , b As S i n g l e , c As S i n g l e
a = 5 : b = 10

MsgBox ”Avant , a = ” & a & ” e t b = ” & b


procC a , b
MsgBox ” Après p r e m i e r procC , a = ” & a & ” e t b = ” & b
procC a , c
MsgBox ” Après deuxième procC , a = ” & a & ” e t b = ” & b & ” e t c = ” & c
End Sub

Quel est l’affichage effectué par MsgBox lors de l’exécution de la macro testC ?
Q 3.2 Soit le programme VBA suivant :

Sub procC (ByRef a As S i n g l e , ByVal b As S i n g l e )


a = 10 ∗ b : b = 100
End Sub

Sub procD (ByRef a As S i n g l e , ByVal b As S i n g l e )


b = 2 0 : a = 10 ∗ b
End Sub

Sub testCD ( )
Dim a As S i n g l e , b As S i n g l e
a = 5 : b = 10

MsgBox ”Avant , a = ” & a & ” e t b = ” & b


procC a , b
MsgBox ” Après procC , a = ” & a & ” e t b = ” & b
procD a , b
MsgBox ” Après procD , a = ” & a & ” e t b = ” & b
End Sub

Quel est l’affichage effectué par MsgBox lors de l’exécution de la macro testCD ?

Vous aimerez peut-être aussi