Vous êtes sur la page 1sur 23

Langage de programmation

Visual Basic pour Applications


(VBA )
Responsable: Dr.Fadoua BOUAFIF

Filière: Mastère Profestionel Ingénierie Economique et Financière

langage de programmation VBA F.BOUAFIF


1
Chapitre 2

Les structures de Contrôles

langage de programmation VBA F.BOUAFIF


2
Plan du chapitre
1. Structures conditionnelles
 If…then…elseif…else…end if
 Select … case
2. Structures répétitives
 While…wend
 Do While…loop
 Do…loop while
 Do Until…loop
 Do…loop Until
 For…step…Next
 For Each… IN…Next

F.BOUAFIF langage de programmation VBA


3
Les structures condionnelles

langage de programmation VBA F.BOUAFIF


4
If … Then … Elseif … Else…End If

Syntaxe sur une seule ligne


If condition Then
<instructions1>
Else
<instructions2>
End If

Exemple :
If Moyenne >=10 Then
If Moyenne >=10 Then
Résultat = "Admis"
Résultat = "Admis"
Else
End If
Résultat = "Ajourné"
End If

F.BOUAFIF langage de programmation VBA


5
If … Then … Elseif … Else…End If

 ElseIf permet d'ajouter plusieurs conditions à la suite :


Syntaxe : Exemple :

If condition1 Then If Moy >=10 and moy<12 Then


Résultat = " Admis passable "
<instructions1>
ElseIf Moy >= 12 and moy<15 Then
ElseIf condition 2 then Résultat = "Admis assez_bien"
<instructions2> ElseIf Moy >= 15 and moy<16 Then
…… Résultat = "Admis bien"
ElseIf Moy >= 16 Then
……
Résultat = "Admis très_bien"
Else Else
<instructionsn> Résultat = "Etudiant Ajourné"
End If
End If

langage de programmation VBA F.BOUAFIF


6
Select…..case….

 Lorsque l’on aura besoin de faire des tests multiples sur


une variable, on utilisera select …case…
Syntaxe
Select Case Variable
Case valeur 1:
<instructions 1>
Case valeur 2:
<instructions 2>
……….
Case Else:
<instructions> ‘facultative
End Select

F.BOUAFIF langage de programmation VBA


7
Select…..case….

Exemple : Afficher le type d’un caractère donné selon son code ASCII
*********************************************************************
Public Sub testSelest()
Dim code as integer
code=InputBox (‘’tapez le code ASCII du caractère ‘’)

Select Case code


Case 65, 69, 73, 79, 85
MsgBox(" C’est une voyelle ") ‘ affiche résultat
Case 66 To 90
MsgBox(" C’est une consonne ") ‘ affiche résultat
Case Else
MsgBox(" Ce n’est pas une lettre ") ‘ affiche résultat
End select
End Sub

F.BOUAFIF langage de programmation VBA


8
Les structures répétitives

langage de programmation VBA F.BOUAFIF


9
Les Boucles: While…Wend
 Lorsque l’on voudra répéter une portion de programme tant qu’une
condition est vrai, on utilisera une boucle While…Wend
 Une condition est une comparaison entre deux valeurs à travers
un opérateur de comparaison

Syntaxe
Exemple
While condition
Sub TestWhile()
<instructions>
Dim x As integer
Wend x= 50
while ( x >=10)
La condition est évaluée au début du MsgBox(" valeur de x=" & x)
traitement. x = x-10
Si elle est vraie, les instructions sont Wend
exécutées. End Sub
Ensuite la condition est réévaluée, et
ainsi de suite.

langage de programmation VBA F.BOUAFIF


10
Les Boucles: Do While…Loop
On utilisera une boucle Do while . . .Loop lorsque l’on veut
que la boucle continue tant que la condition est vraie.

Syntaxe Exemple

Public Sub TestDoWhileLoop()


Do while condition de continuité Dim x As integer
x = 50
Do while x>=10
<instructions> MsgBox(" valeur de x=" & x)
Loop x = x -10
Loop
End Sub

langage de programmation VBA F.BOUAFIF


11
Les Boucles: Do…LoopWhile

 On utilisera une boucle Do . . .Loop While lorsque l’on veut que la


boucle recommence tant que que la condition est vraie.

Syntaxe Exemple
Sub TestDoLoopWhile()
Dim x As integer
Do x = 50
instructions Do
MsgBox(" valeur de x=" & x)
Loop While (condition de continuité) x = x-10
Loop while x1 > 10
End Sub

langage de programmation VBA F.BOUAFIF


12
Les Boucles: Do Until…Loop

 On utilisera une boucle Do Until . . .Loop lorsque l’on veut que la


boucle continue jusqu’à ce que la condition soit vraie.

Syntaxe Exemple

Do Until (condition d’arrêt) Sub TestDoLoopUntil()


<instructions> Dim x As integer
x= 1
Loop Do Until x<10
MsgBox(" valeur de x=" & x)
x=x-1
Loop
End Sub

langage de programmation VBA F.BOUAFIF


13
Les Boucles: Do… Loop Until

 On utilisera une boucle Do . . .Loop Until lorsque l’on veut que la


boucle recommence jusqu’à ce que la condition soit vraie.

Syntaxe Exemple

Do Sub TestDoLoopUntil()
<instructions> Dim x As integer
x=1
Loop Until (condition d’arrêt) Do
MsgBox(" valeur de x=" & x)
x = x-10
Loop Until x< 10
End Sub

langage de programmation VBA F.BOUAFIF


14
Exercice d’application

 Ecrire un programme VBA qui permet:


 Saisir un nombre entier positif N
 Calculer et afficher le factoriel de N en utilisant le
boucle While…Wend

Solution:
1. Saisir un entier N
2. Tester si N est positif
3. Calculer N! :
N!= N*(N-1)*(N-2)*…1
4. Afficher le résultat

langage de programmation VBA F.BOUAFIF


15
langage de programmation VBA F.BOUAFIF
16
Les Boucles: For….. Step… Next
 Utilisée pour répéter une action selon un nombre d'itérations
déterminé.
 La boucle sera parcourue le nombre de fois indiqué avec le
pas spécifié.
Syntaxe

For variable = valeur1 To valeur2 Step <pas>


<instructions>
Next variable
Exemple: Sub TestForNext2()
Sub TestForNext1() Dim I As integer
Dim I As integer For I = 2 to 10 step 2
For I = 1 to 10 MsgBox(" valeur de i=" & i)
MsgBox(" valeur de i=" & i) Next I
Next I End Sub
End Sub
F.BOUAFIF langage de programmation VBA
17
Les Boucles: For Each…In… Next
 Est une variante de l'instruction For Step Next.
 Permet de réaliser une itération en parcourant tous
les objets contenus dans une collection.
 Syntaxe :

For Each <objet> In <collection>


<instructions>
Next <object>

F.BOUAFIF 18
langage de programmation VBA
Les Boucles: For Each…In… Next
 Exemple :
 Le code suivant permet de renommer toutes les feuilles de
calcul du classeur actif :
Sub TestForEach()
Dim i As Integer
Dim feuille As WorkSheet
i=0
For Each feuille In ActiveWorkbook.Sheets
i=i+1
'Cstr (i) permet de convertir l'entier i en une chaîne de caractères
feuille.Name = "Compte rendu Client n°" + CStr(i)
Next feuille
End Sub

F.BOUAFIF 19
langage de programmation VBA
Arrêt du programme
 L’instruction Exit
L’instruction Exit permet de quitter un bloc Do...Loop, For...Next,
Function, ou Sub.
 Syntaxe : Exit Do; Exit For; Exit Function; Exit Sub
 Exemple:
La boucle suivante s’arrête lorsque la réponse rep est n ou N :
Do
Rep = InputBox("Voulez-vous continuer ? (O/N)")
If LCase(rep) = "n" Then Exit Do
Loop

 Rmq: La fonction LCase convertit tous les caractères en minuscules

F.BOUAFIF 20
langage de programmation VBA
Applications

 EXERCICE 1
1. Ecrire un programme VBA permettant la saisie et
l’affichage d’une note.
2. Modifier le programme pour qu’il affiche le message
”Ajourné” si la note est en dessous de la moyenne.
(moy=10)
3. Ajouter au programme précédent une vérification de la
note (nombre compris entre 0 et 20). Une note incorrecte
ne doit pas être affichée (message ”Erreur de saisie”).

langage de programmation VBA F.BOUAFIF


21
Applications

 EXERCICE 2
1. Ecrire un programme permettant la saisie de deux notes
puis affiche la plus petite des deux.
2. Même question avec cinq notes.

langage de programmation VBA F.BOUAFIF


22
Applications
 EXERCICE 3
1. Ecrire un programme qui permet de saisir n notes (n est un
nombre fixe donné).
2. Ajouter au programme précédent le calcul de la moyenne des
notes.
3. Même exercice, mais ne pas prendre en compte les notes
incorrectes dans le calcul.
4. Même exercice, mais on ne connait pas d’avance le nombre
n, le progrmme continue tant qu’une note incorrecte n’a pas été
saisie.

langage de programmation VBA F.BOUAFIF


23

Vous aimerez peut-être aussi