Excel permet d'automatiser des traitements, d’ajouter de nouvelles fonctions pour répondre à vos besoins spécifiques, de personnaliser votre espace de travail et de permettre à Excel de communiquer avec d'autres applications Microsoft et Internet. Cela vous permettra de développer des applications personnalisées de gestion, de reporting ou d’analyse en utilisant le langage VBA. Ce langage VBA permet d'exploiter toutes les potentialités du tableur Excel.
L'objectif de ce cours est de :
Visual Basic pour Application (VBA) est le langage de programmation commun à toutes les applications de la suite Microsoft Office (Word, Access, Excel, Outlook et PowerPoint).
Quand vous ouvrez un classeur dans Excel, un projet est associé à ce classeur et va contenir tous les modules de codes VBA regroupés par catégories.
Les modules contiennent les macros enregistrées et vos propres procédures et fonctions écrites en VBA. Ces modules pourront être exportés sous forme de fichiers indépendants afin d’être réutilisés en les important dans d’autres classeurs. De cette manière il est possible de réutiliser du code VBA existant sans devoir tout réécrire.
Un ensemble de code VBA doit être regroupé dans des procédures. Ce sont donc des mini programmes écrits en VBA. Quand vous enregistrez une macro, une procédure est générée avec comme nom le nom de la macro. Pour créer vos propres procédures, vous utiliserez l’instruction Sub.
Les fonctions sont des procédures particulières car elles retourne un résultat, une valeur. Pour créer une fonction vous utiliserez l’instruction Function.
Il y a deux manières de créer des procédures VBA :
La création de macros, bien que très utile et facile, a cependant des limites. Les macros ne peuvent permettre que d'automatiser des actions répétitives sous Excel.
Pour avoir des traitements plus évolués, il est nécessaire de créer ses propres procédures.
Il est bien sur possible de créer des macros et d'améliorer, d'enrichir le code VBA obtenu.
Pour écrire et exécuter des macros, exécuter des macros enregistrées ou créer des applications Excel, vous devez afficher l’onglet Développeur de la façon suivante :
Pour à l’éditeur de Visual Basic, Visual Basic Editor (VBE), cliquez sur l’icône Visual Basic ou utilisez le raccourci-clavier [Alt][F11].
Ce groupe permet :
L'environnement de développement Visual Basic vous permet de visualiser le code VBA de vos macros.
Voici l'exemple de deux macros utilisant pour déplacer une plage de cellules :
Cliquez sur le bouton de l'onglet Développeur pour accéder au code d'une macro.
Sub RefAbsolue() ’ Référence absolue Range("B2:C8").Select Selection.Cut Destination:=Range("C4:D10") Range("C4:D10").Select End Sub Sub RefRelative() ’ Référence relative ActiveCell.Range("A1:B7").Select Selection.Cut Destination:=ActiveCell.Offset(2, 1).Range("A1:B7") ActiveCell.Offset(2, 1).Range("A1:B7").Select End Sub
Il y a une troisième manière d'accéder à une cellule en utilisant la fonction Cells(i,j).
Quand vous écrivez du code VBA, il est conseillé de mettre en évidence les blocs d'instruction en utilisant l'indentation :
Cela rend le code est plus lisible et plus facile à corriger en cas d’erreur.
Pour indenter une ligne ou plusieurs lignes, appuyez :
Vous pouvez préciser la largeur de la tabulation par le menu Outil - Options.
Les paramètres de sécurité des macros permettent de contrôler ce qui se produit lorsque vous ouvrez un classeur contenant une macro.
Le bouton de l'onglet Développeur permet de de définir les paramètres de sécurité.
Gardez l’option Désactiver toutes les macros avec notification afin de pouvoir décider d'activer ou pas les macros d'un classeur.