Académique Documents
Professionnel Documents
Culture Documents
http://eric.univ-lyon2.fr/~ricco/cours/cours_excel.html
Algorithmie Programme
1. Dterminer les besoins et fixer les objectifs : que doit faire le logiciel, dans quel cadre va-
t-il servir, quels seront les utilisateurs types ? On rdige un cahier des charges avec le
commanditaire du logiciel (Remarque : commanditaire = matre douvrage ; ralisateur =
matre duvre)
2. Conception et spcifications : quels sont les fonctionnalits du logiciel, avec quelle
interface ?
3. Programmation : modlisation et codage
4. Tests : obtient-on les rsultats attendus, les calculs sont corrects, y a-t-il plantage et dans
quelles circonstances ? (tests unitaires, tests dintgration, etc.)
5. Dploiement : installer le chez le client (vrification des configurations, installation de
lexcutable et des fichiers annexes, etc.)
6. Maintenance : corrective, traquer les bugs et les corriger (patches) ; volutive (ajouter
des fonctionnalits nouvelles au logiciel : soit sur lergonomie, soit en ajoutant de
nouvelles procdures)
Visual Basic nest pas case sensitive , il ne diffrencie pas les termes crits en
minuscule et majuscule.
Numrique qui peut tre rel (double) ou entier (long). Les oprateurs
applicables sont : +, -, *, / (division relle), \ (division entire), mod (modulo)
Exemple : 5 / 2 2.5 ; 5 \ 2 2 ; 5 mod 2 1
Boolen (boolean) qui ne prend que deux valeurs possibles : True et False. Les
oprateurs sont : not, and, or.
Exemple : True and False False
Chane de caractres (suite) qui correspond une suite de caractres dlimite par des
guillemets . Les oprateurs possibles sont la concatnation, la suppression dune sous-
partie, la copie dune sous-partie, etc.
Exemple : toto est une chane de caractres, toto on ne sait pas ce que cest (pour linstant)
Exemples
Les variables correspondent des identifiants auxquels sont associs des valeurs dun type
donn. Elles matrialisent un espace mmoire avec un contenu que lon peut lire ou crire.
FONCTIONS PERSONNALISES
Une fonction personnalise est une fonction VBA qui peut appele
dans un classeur Excel. Elle prend en entre des informations en
provenance des feuilles du classeur (principalement) et renvoie une
valeur insre dans une cellule (le plus souvent galement).
STRUCTURES ALGORITHMIQUES
If condition Then
bloc dinstructions
Syntaxe
Permet dactiver une partie du code en fonction des valeurs prises par une
variable de contrle. Peut se substituer au IF, mais pas toujours, tout dpend
de la forme de la condition (condition compose, on doit passer par un IF).
Case valeur 2
bloc dinstructions
...
Case Else
bloc dinstructions
End Select
(1) Variable est la variable de contrle, elle peut tre de nimporte quel type en VBA, y compris un
rel ou une chane de caractres
(2) Valeur doit tre de type compatible avec variable
(3) La partie Case Else est facultative
(4) Limbrication avec un autre IF ou un autre Select Case (autre variable de contrle) est possible.
Case Else
bloc dinstructions
End Select
bloc dinstructions
...
Next indice
Entre : n (entier)
Sortie : S (rel)
Calcul : S = 1 + 2 + + n
Do While condition
Syntaxe
Bloc dinstructions...
...
Loop
Entre : n (entier)
Sortie : S (rel)
Calcul : S = 1 + 2 + + n
Syntaxe Do
Bloc dinstructions
...
...
Loop While condition
Les boucles DO contrles par une condition sont trs riches en VBA.
LE TYPE RANGE
Le type RANGE dsigne une plage de cellules, cest un type spcifique Excel.
LE TYPE VARIANT
Le type de variant peut grer tout type de valeurs. Il est trs souple,
particulirement commode quand on ne connat pas lavance le type
utiliser. Mais attention, il ne faut pas en abuser, il est trs lent parce que
multiplie les vrifications chaque accs la variable correspondante.
On peut sen servir pour renvoyer un tableau. Une fonction peut donc renvoyer
plusieurs valeurs dun coup, linstar des fonctions matricielles dExcel (il faut valider
la saisie de la fonction avec la squence de touches CTRL + MAJ + ENTREE).
Les macros sont galement des procdures que lon cre lintrieur dun module.
Mais, la diffrence des Function, ce sont des Sub() sans paramtres qui peuvent
manipuler (accder et modifier) directement les objets Excel (classeurs, feuilles,
cellules, graphiques, scnarios, tableaux croiss dynamiques).
Ils ne sexcutent pas de la mme manire. Au lieu de les insrer dans une cellule, ils
se lancent globalement via le bouton MACROS dans le ruban DEVELOPPEUR.
Une manire simple de gnrer une macro est de lancer lenregistreur de macros.
Du code VBA est automatiquement gnr.
Un nouveau module
Module1 est
automatiquement cr.
Avantages :
Il ny a pas plus simple pour produire du code, on peut crer et excuter une macro
sans aucune notion de programmation
Il nous donne des indications prcieuses sur les commandes associes aux objets
Excel
Inconvnients :
On travaille structure fixe, si la configuration de la feuille change, il nest pas
possible de lancer la macro
On ne bnficie de la puissance des structures algorithmiques
En dfinitive :
Il peut nous aider rdiger notre code en nous donnant des pistes sur la syntaxe
des commandes et les objets adquats manipuler (ex. imprimer automatiquement
des feuilles, on lance lenregistreur une fois, on intgre son code dans le notre
lintrieur dune boucle).
Ecrire directement des macros est simple une fois assimil la philosophie de
lapproche, et identifi les principaux objets et laccs leurs proprits et mthodes
(lenregistreur peut nous y aider).
Activer (slectionner) le
Classeurs Workbooks(classeur1.xlsm).Activate classeur dont le nom de
fichier est classeur1.xlsm
Sub MonMinBleu()
variables intermdiaires
min va servir de cellule tmoin
Dim cellule As Range, min As Range
'initialisation du tmoin sur la 1re cellule
Set min = Selection.Cells(1, 1)
'parcourir
For Each cellule In Selection Range est un objet. Une
'comparer avec le contenu de la cellule tmoin affectation pour une variable
If (cellule.Value < min.Value) Then objet doit tre ralise
'mj de la cellule tmoin
laide de linstruction Set
Set min = cellule
End If
Next cellule
'mettre la couleur pour la cellule minimale
min.Font.ColorIndex = 5
End Sub
Une slection peut tre multiple aussi c.--d. contenant plusieurs zones
Un exemple de slection
multiple avec 3 zones.
Sub MesBoitesDeDialogue()
'var. intermdiaire
Dim prenom As String
'saisie
prenom = InputBox("Entrer votre prnom", "Saisie", "")
'affichage
MsgBox ("Bonjour " & prenom)
End Sub