Bonjour
Oui, la question est tordue :
Comment convertir une macro vba créée sur une machine 64bit, en macro qui aurait été créée sur une machine 32 bit (du moins avec un office 32 bits) pour pouvoir l’exécuter sur une machine 64 bits
j'explique mon problème :
J'ai récupéré une macro, et j'ai voulu "l'améliorer" pour m'être plus utile que l'originale
Quand je dis améliorer, je voudrais préciser que je suis conscient d'être sur un site ou les intervenants sont des personnes qui vont prendre le terme améliorer pour 'optimiser' dans le sens de créer un code simple, propre et efficace
Sauf que moi, je n'ai absolument aucune connaissance du vba, et je ne comprends pas les 90% du contenu de la macro, je voulais juste l'améliorer dans mon sens à moi, c'est à dire, la rendre plus utile pour me faciliter la tâche
le principe de la macro :
j'ai un fichier excel avec 2 onglets : le premier avec un bouton qui sert à lancer la macro, le 2ème où je copie un tableau excel - La macro fait "simplement" une certaine mise en forme du tableau
ce que j'ai ajouté : 17 autres onglets, où je copie autant de tableaux à remettre en forme de la même manière que le premier
donc, vous devinez ce que j'ai fait : j'ai recopié à la suite, la macro initiale en changeant à chaque fois le nom de l'onglet à traiter (+ le nom de l'en-tête de chaque tableau )
j'ai fait le test avec les 2-3 premiers : super ça marche, puis j'ai foncé tête baissée pour enchaîner tous les autre sans re-tester à chaque fois
arrivé à la fin, je fais le teste, et là, bim : erreur de compilation : procédure trop grande![]()
la macro fait 3655 lignes, je pensais nos machines capables de traiter 100 0000 000x plus de données ( houuuuuu )
donc, recherche et là je lis ceci :
----------------------------------------------------------
« Erreur de compilation : procédure trop grande »
Cause
Ce problème peut se produire car la macro VBA a été créée à l’aide d’une version 64 bits d’un programme Office 2010.
Solution de contournement
Pour résoudre ce problème, créez la macro VBA à l’aide d’une version 32 bits d’un programme Office 2010.
---------------------------------------------------------
la macro a été créée sur office 2016 ( manifestement 64 bits ? )
et là, je l'ai modifiée sous office 365 ( 64 bits, du moins l'ordi )
donc, je me doute que vous, codeurs fous que vous êtes, vous allez me dire, popopop, il faut refaire la macro, optimiser le code, raccourcir, et tout et tout
Certes, mais j'en reviens à ma question initiale, puisque la solution donnée par "microsoft docs" est de "créez la macro VBA à l’aide d’une version 32 bits d’un programme Office 2010", je me dis que je pourrais peut-être m'épargner de cramer dans la plus grande douleur de très nombreux neurones, je pourrais simplement essayer d'envoyer le fichier sur un ordi 32 bits, le convertir, ou "enregistrer sous" un format 32 bits, et ensuite l’exécuter sur ma machine 64 bits qui accepterait alors, peut-être, d’exécuter le code, parce que, si j'ai bien compris, le code ne s’exécute pas, parce qu'il sait qu'il a été créée sur 64 bits et que si on essayait de le lancer sur 32 bits, il serait trop grand ? ( j'espère ne pas vous avoir perdus ? )
je voudrais aussi éviter de poster la macro, car je l'utilise au travail et c'est relativement confidentiel
Merci donc de vos avis concernant la question initiale![]()
Partager