Bannière
Home Le VBA Où placer mon code VBA ?
Note des utilisateurs: / 0
MauvaisTrès bien 
Le VBA

Le problème

tic question 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

Outils/Macros/Visual Basic Editor



Vous arrivez donc ici:

Console VBA



Etudions ensemble et pas à pas cette nouvelle fenêtre:

Console VBA avec Explication zone 1



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.... smiley content

Deuxième fenêtre: les propriétés.

Console VBA avec Explication zone 2



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... smiley content

Troisième fenêtre: Saisie des macros

Console VBA avec Explication zone 3



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:

Créer un module



et choisissez "module" smiley content c'est aussi simple que ça. Voilà, votre module est créé dans votre projet comme le montre ceci:

apparition du module dans le projet



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:

Boite de dialogue macro



et maintenant, vous choisissez la macro que vous souhaitez éxecuter, en l'occurence, ici:

Executer la macro



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:

double cliquez sur la feuille où vous souhaitez utiliser la macro

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:

Boite de dialogue macro



tic OKRetenez bien cela: Une macro qui commence par Sub() est une macro publique que vous placez dans un module et qui est utilisable dans tout le classeur. Une macro privée (PRIVATE SUB()) est insérée dans le code source de la page et n'est accessible que lorsq'un événement est produit dans cette page (par exemple, un clic sur un bouton)

Mis à jour (Mardi, 23 Février 2010 12:48)

 

Ajouter un Commentaire


Code de sécurité
Rafraîchir