Analyseur de code VBA – Rubberduck

Analyseur de code VBA – Rubberduck
Dernière mise à jour le 05/02/2024
Temps de lecture : 4 minutes

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.

Interface GitHub pour télécharger les dernières mises à jour de Rubberduck

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.

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 😃

Il n'y a plus de menus grisés

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
Résultat de l'analyse faite par RubberDuck

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

  1. Sélectionner le menu Inspection
  2. Choisir l'une des options
  3. 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.

Tous les blocs ont été fermés automatiquement

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é.

3 Comments

  1. 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

    Reply

  2. 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

    Reply

    • 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

      Reply

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Analyseur de code VBA – Rubberduck

Reading time: 4 minutes
Dernière mise à jour le 05/02/2024

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.

Interface GitHub pour télécharger les dernières mises à jour de Rubberduck

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.

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 😃

Il n'y a plus de menus grisés

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
Résultat de l'analyse faite par RubberDuck

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

  1. Sélectionner le menu Inspection
  2. Choisir l'une des options
  3. 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.

Tous les blocs ont été fermés automatiquement

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é.

3 Comments

  1. 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

    Reply

  2. 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

    Reply

    • 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

      Reply

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.