Où placer mon code VBA ?
| Le VBA |
Le problème
Bonjour, Je souhaite m'initier au VBA mais je ne sais pas où placer mes codes... est-ce compliqué ?
La solution
Pas du tout compliqué. Ce qu'il faut savoir avant toute chose, c'est que l'on peut placer le code VBA soit dans le code source de la page, soit dans un module (généralement, cette indication est fournie à la fin des astuces...)
Pour être plus clair, je vais découper la solution en 3:
Explorons tout d'abord la console VBA
Ouvrez la console VBA par le menu Outils ou en utilisant le raccourci ALT + F11
Vous arrivez donc ici:
Etudions ensemble et pas à pas cette nouvelle fenêtre:
Cette zone que j'ai mis en rouge permet de voir les macros complémentaires installées sur Excel, ce sont tous les .XLA ( on ne s'en occupe pas). On voit également tous les projets ouverts... A savoir qu'en VBA, un projet est tout simplement un classeur ouvert.
Par exemple, j'ai sur mon ordinateur 2 classeurs ouverts (donc 2 projets) qui sont respectivement PlacerCodeVBA.xls et Tabord V7 11h30.xls J'ai également un classeur qui se nomme PERSO.XLS. C'est un classeur invisible et qui sera toujours ouvert. Il permet "ranger" des macros dont on se sert régulièrement. En effet, si vous enregistrez une macro dans ce classeur, vous pourrez vous en servir dans tous vos classeurs ouverts et seront toujours accessibles.
Chaque projet est composé d'objets. Ce sont les onglets de votre classeur + un objet appelé Thisworkbook (on ne s'interesse pas à cela aujourd'hui). Votre projet peut être composé de modules et de feuilles (je laisse tomber les feuilles aujourd'hui, cela ne nous intéresse pas et risque de vous embrouiller plus qu'autre chose...). Un module est un endroit où on stocke les macros publiques (sub), qui seront utilisables dans tout le classeur Excel, à l'inverse des macros privées (Private sub - on verra ça en solution 2) Pour qu'une macro soit publique, rien de plus simple, elle commence par
sub
et se termine par
end sub
Les macros privées, quant à elles, seront stockées dans les objets de votre projet, c'est à dire le code source des onglets de votre classeur... Houlà... relisez tranquillement cette phrase à tête reposée et plusieurs fois.... 
Deuxième fenêtre: les propriétés.
Quand vous commencerez à créer des userforms (boite de dialogue personnalisées) vous pourrez modifier certaines propriétés directement ici. Je n'ai rien d'autre à dire pour l'instant... 
Troisième fenêtre: Saisie des macros
C'est ici que vous saisierez, collerez ou modifierez vos codes.
Pour ne pas vous embrouiller, j'arrête là pour l'introduction du VBA.
Solution 1: le code est à placer dans un module
Après avoir un peu compris l'éditeur VBA, on va entrer dans le vif du sujet. si votre code est à placer dans un module, alors il faut créer ce module puis coller le code. Pour créer un module, c'est très simple: Placez vous dans votre projet puis cliquer sur la petite flèche comme ci-dessous:
et choisissez "module"
c'est aussi simple que ça. Voilà, votre module est créé dans votre projet comme le montre ceci:
Ensuite, vous n'avez plus qu'à coller le code que vous avez trouvé et à fermer l'éditeur VBA. Imaginons que nous ayons une macro du nom de
| Sub TestPourMontrerQueLaMacroApparait() 'code End Sub |
Pour utiliser la macro que vous venez de créer, allez dans les outils ou faites ALT+F8:
et maintenant, vous choisissez la macro que vous souhaitez éxecuter, en l'occurence, ici:
Solution 2: le code est à placer dans le code source de la page
Je vais faire court puisque tout à déjà été dit.
On ne place une macro dans le code source de la page que lorsqu'elle est privée, c'est à dire que lorsqu'elle commence par PRIVATE !
| Private Sub () Code End sub |
Dans ce cas, au lieu de créer un module, vous double-cliquez sur la feuille qui vous intéresse ici:
Si par exemple, je veux utiliser ma macro dans la feuille 1 de mon classeur Excel, je vais double-cliquer sur Feuil1. et coller le code dans la zone de saisie des codes.
Par contre, généralement, ces macros PRIVATE sont utilisées lorsqu'il y a des boutons par exemple sur la feuille ou d'autres types d'objets. Et comme généralement ce sont des macros dites "événementielles", vous ne pourrez l'utiliser que lorsqu'il y aura une action dans la feuille (par exemple, le clic sur un bouton). Ces macros n'apparaissent pas dans la boite de dialogue ici:
Mis à jour (Mardi, 23 Février 2010 12:48)



