Macro Excel introuvable à partir de VB6

sergio_bzh

XLDnaute Nouveau
Bonjour,

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 !

Merci.
Sergio

Config : XP SP2 + Excel 2000
 

tototiti2008

XLDnaute Barbatruc
Re : Macro Excel introuvable à partir de VB6

Bonjour sergio_bzh,

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

MichelXld

XLDnaute Barbatruc
Re : Macro Excel introuvable à partir de VB6

bonjour

Refait un essai en précisant le nom du classeur et en plaçant ta procédure dans un module standard
Code:
lxApp.Run "NomClasseur.xls!Module1.NomMacro"


Remarque:
Si le nom du classeur contient des espaces ou des caractères spéciaux, le nom doit être encadré par des quotes
Code:
xlApp.Run "'Nom du Classeur.xls'!Module1.NomMacro"


bonne journée
michel
 

sergio_bzh

XLDnaute Nouveau
Re : Macro Excel introuvable à partir de VB6

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.
 

sergio_bzh

XLDnaute Nouveau
Re : Macro Excel introuvable à partir de VB6

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 :
  1. Excel9.OLB
  2. MSO9.DLL
  3. MSCAL.OCX

Au passage, encore bravo à Microsoft pour la compatibilité ascendante des produits ......

Sergio
 

Discussions similaires

  • Question
Microsoft 365 Excel vba
Réponses
5
Affichages
360

Statistiques des forums

Discussions
312 485
Messages
2 088 813
Membres
103 971
dernier inscrit
abdazee