Monsieur Excel
Pour tout savoir faire sur Excel !

02 août 2013

Les bugs des macros enregistrées

Comme je l’ai expliqué dans le message du 7 juillet 2013, les macros enregistrées sont tout sauf une panacée.

Un très bel exemple de dysfonctionnement de l’enregistrement de macro vous a déjà été fourni dans l’article « ″Convertir en plage″ en VBA » du 26 octobre 2009. Dans ce cas, on voit que la macro enregistrée a totalement ignoré une commande pourtant enregistrée apparemment sans problème.

Par ailleurs, le code des macros enregistrées est très souvent abusivement verbeux. Nous en avons vu un exemple notable dans l’article du 12 juillet où la macro enregistrée faisait 53 lignes (et en plus ne marchait pas quand on la rejouait !) là où deux lignes auraient suffi.

En conclusion, il y a trois types de problèmes : certaines commandes ne s’enregistrent pas, le code est très verbeux, et enfin la macro – quand on l’exécute – ne fait pas la même chose que lors de son enregistrement…

Nous venons de vous proposer une série d’articles illustrant chacun les deux derniers problèmes :

7 juillet 2013 – Bug de la validation par liste : une validation par liste avec une liste d’options proposée en direct ne fonctionne plus quand on exécute la macro.

12 et 17 juillet 2013 – Bug dans la mise en page : la définition d’un pied de page ne marche plus quand on exécute la macro enregistrée.

27 juillet 2013 – Un bug dans la MAJ de dates : la conversion de dates ne fonctionne plus quand on exécute la macro enregistrée.

Enfin, j’ai souvent eu des problèmes avec des macros enregistrées opérant des tris

Lors de l’enregistrement, la macro effectue bien le tri demandé. Quand on l’exécute par la suite, le tri ne se passe pas de la même façon. La raison tient en général à l’option Sort.Header : à l’enregistrement, le VBA met souvent cette option à xlGuess alors qu’il devrait mettre xlYes. Du coup, quand on rejoue la macro, elle suppose parfois qu’il n’y a pas de ligne de titres et inclut alors cette ligne de titres dans le tri…

1 Commentaire(s):

  • Bonjour

    Si vous voulez un autre bug lors de l'enregistrement des macros, dans un TCD (sur Excel dernières versions), ajoutez un champ calculé dans les valeurs puis retirez-le. Exécutez la macro, elle va planter !!
    Le VBA fonctionne correctement sur les champs de la source de données, mais pas sur des champs calculés.

    Cordialement

    By Anonymous Pierre, sur 10:48 AM  

Enregistrer un commentaire

<< Accueil