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 Pierre, sur 10:48 AM
Enregistrer un commentaire
<< Accueil