Connaissances préalables La compréhension de ce qui
suit requiert une connaissance fonctionnelle de Excel. Excel et la sécuritéExcel refuse souvent d'exécuter les programmes VBA (qu'il nomme aussi macro-commandes ou macros). À l'ouverture d'un classeur contenant du code VBA, l'avertissement suivant apparaît sous le ruban: Appuyez sur le bouton Options...:
Il est aussi possible que VBA soit complètement désactivé sur votre ordinateur. Dans Excel 2007:
|
Sélectionnez le Centre de
gestion de la confidentialité.
Cliquez le bouton Paramètres du Centre de gestion de la confidentialité.
Sélectionnez l'option Paramètres des macros.
Sélectionnez le choix Désactiver toutes les macros avec
notification.
Appuyez sur le bouton OK.
Vous devez quitter Excel pour que le changement à cette option soit activé.
Ce premier exemple illustre l'utilisation de VBA pour automatiser une tâche
Excel qu'il serait fastidieuse de faire manuellement:
colorer en jaune chaque cellule
déverrouillée.
![]() |
Gardez undoigt sur la touche Ctrl afin de pouvoir sélectionnez plusieurs cellules éloignées les unes des autres.
|
![]() |
![]() ![]() ![]() |
Ouvrez l'onglet développeur à droite:
S'il n'est pas affiché:
Appuyez sur le bouton Office
.
Appuyez sur le bouton Options Excel
(en bas à droite).
Dans le menu Standard, sélectionnez
la 3e case à cocher: Afficher l'onglet Développeur dans le ruban.
Appuyez sur le bouton Visual Basic.
![]() |
![]() |
![]() |
![]() |
|
![]() Cela devrait donner le résultat ci-dessous. |
Testez votre code:
Placez le curseur sur la première ligne (SUB).
Appuyez sur la touche F8.
La ligne se colore en jaune.
VBA exécute une ligne à chaque fois que
vous enfoncez la touche F8, en répétant
les instructions encadrées par For et Next
pour chaque cellule de la feuille Excel active.
Vérifiez les changements dans la feuille Excel. Remarquez que la barre d'état d'Excel indique l'adresse de la cellule traitée par VBA.
Continuer
Le programme s'exécutera pour chaque cellule. Si le sablier tarde à disparaître, arrêtez le programme en enfonçant ensembles les touches Ctrl-Pause/Arrêt (ou Break).
ou
Réinitialiser:
le programme s'arrêtera.
ATTENTION: vous devez terminer l'exécution d'un programme VBA selon la procédure ci-dessus avant d'en exécuter un autre. En effet, si un programme est en débogage, VBA est en pause.
![]() |
Rendez le programme disponible en Excel.
|
![]() |
|
Verrouillez quelques cellules jaunes, déverrouillez-en d'autres.
Cliquez sur le bouton pour que les cellules déverrouillées se colorent en jaune.
Quelques commentaires sur ce programme:
Dans ce second exemple, on veut pouvoir écrire dans une cellule Excel la formule: =fnNbCellulesCouleur(A1:D3,D1) et ainsi afficher dans cette cellule le nombre de cellules de la plage A1:D3 dont la couleur est identique à la couleur de la cellule D1. Évidemment, on veut pouvoir remplacer A1:D3 et D1 par toute autre référence à une plage ou une cellule valide.
Démarrez Excel avec un classeur vierge (ou utilisez le classeur créé pour
l'exemple précédent).
Colorez l'arrière-plan de quelques cellules.
Démarrez l'éditeur VBA (voir l'exemple précédent).
Créez un module ou utilisez un module existant.
|
Le résultat devrait être comme l'image ci-dessous. |
![]() |
VBA n'offre pas de moyen de tester directement une fonction. Procédons indirectement.
|
![]() |
VBA exécute une ligne à chaque fois que vous enfoncez la touche F8 |
![]() |
Puis en exécutant les lignes de la fonction. |
![]() |
|
Pour terminer l'exécution de la fonction, cliquez sur les boutons.
Continuer: la fonction s'exécutera pour chaque cellule de la plage.
Si le sablier tarde à disparaître, arrêtez la fonction en enfonçant ensembles les touches Ctrl-Pause/Arrêt (ou Break).
OU
Réinitialiser: la fonction s'arrêtera.
ATTENTION:
Vous devez terminer l'exécution d'une fonction VBA selon la procédure ci-dessus avant d'exécuter un autre programme VBA. En effet, si un programme est en
débogage, VBA est en pause.
Utilisez la nouvelle fonction dans Excel.
![]() |
|
Quelques commentaires sur le programme:
Il contient aussi une maladresse de programmation: si l'utilisateur
entre des paramètres erronés
(=fnNbCellulesCouleur(A1:D3,vbYellow ou =fnNbCellulesCouleur(A1:D3) par
exemple), le message d'erreur n'est pas explicite.
Il contient aussi une procédure Sub (Sub Test) qui sert à tester
la fonction VBA à partir de l'environnement VBA.
Dans ce troisième exemple, on veut qu'une fenêtre d'accueil s'affiche automatiquement lors de l'ouverture d'un classeur Excel.
Démarrez Excel et ouvrez un classeur (vierge ou non).
Démarrez l'éditeur VBA (voir le premier exemple).
Créez un formulaire:
![]() |
![]() |
![]() |
|
|
![]() |
|
|
![]() |
|
|
![]() |
|
|
![]() |
|
|
![]() |
|
|
![]() |
|
|
![]() |
|
|
![]() |
|
|
|
|
|
![]() |
Il faut maintenant testez le formulaire.
![]() |
|
Associez l'ouverture du formulaire à l'ouverture du classeur Excel:
![]() |
|
![]() |
La seconde liste déroulante affiche Open. |
![]() |
|
Fermez Visual Basic, sauvegardez le classeur Excel et fermez-le.
Ouvrez à nouveau le classeur. Il est probable que vous devrez
activer les macros.
L'écran d'accueil s'affichera
alors automatiquement.
![]() |
|
Quelques commentaires sur le programme:
Ce tutoriel est destiné à des étudiants de niveau universitaire en administration, n'ayant pas de connaissance en programmation, mais maîtrisant Excel.
Certains aspects de VBA ont été volontairement omis parce que jugés inutiles à cet auditoire.
Pour une description complète du langage, consultez un bon livre!
Sites Web:
http://support.microsoft.com/default.aspx?kbid=163435 Centre de support VBA
de Microsoft
http://office.microsoft.com/fr-fr/excel/CH062528391036.aspx Formation
Microsoft sur les macros Excel
http://www.cathyastuce.com Cathy
Astuces: astuces, cours, exercices sur Office et Windows.
http://www.admexcel.com
Excel par l'exemple
http://ericrenaud.fr/
Astuces et code VBA pour Excel
http://www.misfu.com/cours-et-tutoriaux-tableur-excel.html Cours / Formation
Excel
http://www.excel-online.net Le site
pour maitriser le tableur Excel
http://pagesperso-orange.fr/bernard.cordier/index.htm Ressources STG sur
Office
http://www.vbfrance.com/ Visual Basic Codes Sources. Les pages sont longues à
charger.
VB & VBA in a Nutshell: The Language, par Paul Lomax: Un des meilleurs livres de référence VBA. Pour programmeurs.
Vous avez apprécié cette page? Ajoutez-la dans vos favoris en utilisant l'un des métaoutils
ci-dessous. Cliquez sur l'un des boutons. Vous |
Abonnez-vous à l'infolettre Abonnez-vous à l'infolettre du site pour recevoir le manuel " 150 fonctions Excel expliquées ". Vous recevrez aussi les prochaines infolettres sur les nouveautés du site et des formations détaillées que vous ne trouverez nulle part ailleurs. |
|