j'ai un programme VB6 qui appelle une macro Excel mais la macro Excel n'est pas trouvée.
CodNam valant "Feuil1", le lancement se fait par :
Code:
XlAppGlobal.Run CodNam & ".LoadDataInSheet"
L'erreur est :
Code:
Error 1 1004:The macro 'Feuil1.LoadDataInSheet' cannot be found.
J'ai pu vérifier certaines choses :
- la macro existe bien
- elle est bien dans "Feuil1" (bien que ce soit une version US)
- Il n'y a pas d'erreur de syntaxe dans le code de la macro
- ce n'est à priori pas non plus un problème VB
Je suis assez affirmatif sur ces points car c'est une application interne à ma boite et elle a été livrée à des dizaines d'exemplaires (voire plus) dans plusieurs pays. Cela fonctionne partout sauf sur un poste.
Je cherche donc une piste en rapport avec la configuration d'excel car je ne vois pas où chercher ailleurs !
Qu'est-ce qui pourrait faire qu'une macro ne se lance pas ??
Donc si quelqu'un a une idée cela m'aiderait car en plus le problème est très urgent !
tout ce que je peux dire, c'est que personnellement j'évite de mettre des macros dans une Feuille si ce n'est pas du code évènementiel, mais ça va pas beaucoup t'aider...
Auparavant le code était éxécuté directement à partir de VB pisque c'est évidemment possible. Mais il y a juste une chose à noter : vu tous les traitements qui sont faits, c'est exactement 10 fois plus rapide de faire cela par une macro excel que par l'automation Office à partir de VB6.
Je suis dans une boite (téléphonie) où les clients demandent un devis pour le lendemain !! Alors quand il faut ouvrir 20 30 ou 40 fois des feuilles excel que l'ouverture prend 1 à 2 minutes et idem pour la sauvegarde, il y a vraiment un besoin urgent d'accélérer les choses.
ceci dit, j'essaierai avec le nom de feuille dans l'appel de la macro.
J'ai trouvé le problème grâce à une autre personne qui a eu une erreur différente.
En fait ma macro a été écrite en Excel 9 .
Dans VB Editor, les références sont donc
Excel v9.0 Object Library
Office v9.0 Object Library
Exécuté sur un poste avec Office v10 , l'éxécution s'arrête sur l'entête de la macro (le Sub) et l'erreur indiqué pointe sur la première fonction VB, par exemple un Trim dans mon cas.
Exécuté sur un poste avec Office v11, c'est en fait la macro qui n'est pas trouvé (l'origine de ce post).
Il suffit fonc d'ajouter les 3 fichiers suivants dans les "References" de VB Editor :
Excel9.OLB
MSO9.DLL
MSCAL.OCX
Au passage, encore bravo à Microsoft pour la compatibilité ascendante des produits ......