Pour vous simplifier l'analyse de vos programmes VBA, Rubberduck est un outil qui s'installe dans votre éditeur VBA et qui va rajouter des options d'analyse supplémentaires.
C'est quoi Rubberduck ?
Rubberduck est un outil open source qui permet l'analyse du code VBA de vos projets. Vous le téléchargez depuis le site GitHub. Le projet est dirigé par Mathieu Guindon (MVP Excel 😎).
Pour obtenir les dernières sources béta, il vous suffit de cliquer sur le bouton Releases sur le site GitHub.
Comment déboguer un projet VBA ?
Avant de vous montrer ce que l'outil Rubberduck vous apporte, la vidéo suivante vous montre comment débuguer un programme VBA.
Comment ça marche ?
Après l'installation de Rubberduck, vous avez un nouveau menu qui apparaît dans le Visual Basic Editor. Seulement, au démarrage, tous les menus sont grisés 🤨😕
En fait, pour commencer à travailler avec cet outil, il faut commencer par le lancer. Pour cela, il faut cliquer sur le bouton "En attente" dans la barre d'icônes.
Le fait de cliquer sur ce bouton "En attente" va lancer un certains nombres de processus d'analyse.
Vous pouvez suivre l'avancé de ces processus dans la barre d'icônes.
Le traitement prend plus ou moins de temps selon la taille de votre projet. Quand c'est terminé, un bouton "Prêt" s'affiche alors dans la barre d'icônes.
A la fin du processus, tous les menus sont accessibles 😃
Indenter automatiquement le code
Ce qui rend un code particulièrement illisible c'est qu'il n'est pas indenté. Indenter un programme signifie que le contenu d'une boucle ou d'une condition est écrit en retrait par rapport au niveau supérieur.
Pour vous éviter de devoir rajouter des tabulations manuellement partout pour indenter votre code, Rubberduck est la solution.
- Activer le menu Rubberduck > Indenter
- Sélectionner dans le menu Indenter soit
- la procédure courante (là où est votre curseur)
- le module courant
- tout votre projet (tous les modules)
En une seule action, tout votre code est indenté 😍😍😍
Analyse du code
Un autre intérêt de cet outil c'est d'analyser votre code et de vous aider à le corriger ou l'améliorer facilement 😮❤
- Activer le menu Rubberduck > Inspections
La fenêtre s'ouvre immédiatement car l'analyse a déjà été faite quand vous avez cliqué sur le bouton "En attente"
Quand vous double-cliquez sur l'une des lignes de l'inspection, Rubberduck se positionne à cet endroit dans le code. Vous avec donc la ligne de code en arrière-plan et la boite de dialogue "Inspection" qui reste visible au premier plan. C'est très astucieux 😎
Pour comprendre la raison pour laquelle l'outil vous conseille une modification ou une correction, il vous suffit de cliquer sur le bouton "Régler".
De cette façon, vous pouvez accepter, ou pas, la correction proposée.
Près de 75 règles de codage sont répertoriées. Si vous souhaitez que Rubberduck n'en prennent pas certaines en compte dans l'analyse, il vous suffit de changer les paramètres en cliquant sur la molette à droite (tout à droite du bouton "Régler")
Pour changer une règle, il vous suffit de
- Sélectionner le menu Inspection
- Choisir l'une des options
- Double-cliquez sur le statut d'une règle pour le modifier
Saisie intelligente
La dernière version de Rubberduck est enrichie dela saisie intelligente.
En fait, quand vous saisissez le début d'une instruction, comme If, While, For ou autre, Rubberduck écrit automatiquement l'instruction de fin.
Par exemple, si vous écrivez If, automatiquement End If va être ajouté. Comme cela, il n'y a plus d'erreur de compilation du code si un bloc n'est pas fermé.
Laurent Ghirardi
30/01/2019 @ 15:46
Bonjour,
savez-vous s'il est possible de faire une copie d'un classeur Excel sans y inclure RubberDuck (au demeurant un excellent logiciel très précieux!!) avant de transmettre ce classeur.
Merci pour votre réponse
Bien cordialement
LG
14/12/2018 @ 14:42
Bonjour,, .
j'ai téléchargé Rubberduck et installé ( à 2 reprises au moins )
il apparait biens dans le menu, mais à la place de "en attente le message "Erreur d'analyse" apparait !
Je travailles sous Excel 365, Microsoft VBA version 7.1 - WIN 10.
Pourriez-vous m'indiquer la manip suivre pour régler ce problème.
Merci pour votre aide.
Cordiale
Frédéric LE GUEN
17/12/2018 @ 16:42
Bonjour,
Je ne travaille pas directement sur ce projet. Il faut contacter Mathieu Guindon depuis le site Github pour ce genre de problème