Les macros complémentaires ne chargent pas lors de l'utilisation de la commande CreateObject dans Excel

Traductions disponibles Traductions disponibles
Numéro d'article: 213489 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Symptômes

Lorsque vous accédez à Microsoft Excel en tant qu'objet d'automation OLE en utilisant la commande CreateObject, les macros complémentaires, les fichiers qui se trouvent dans le répertoire XLStart et le nouveau classeur par défaut ne sont pas chargés.

Cause

Lorsque vous essayez de charger des macros complémentaires et des fichiers, Excel envoie un message à l'application appelante, comme Visual Basic, qui n'est pas prête à répondre à la demande et à réessayer plus tard. L'application appelante peut ne pas être en mesure de traiter cette demande et de continuer avec le reste des commandes.

Contournement

Microsoft fournit des exemples de programmation à des fins d'illustration uniquement, sans garantie expresse ou implicite. Ceci inclut, de manière non limitative, les garanties implicites de qualité marchande ou d'adéquation à un usage particulier. Cet article suppose que vous connaissez le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Les techniciens du Support technique Microsoft peuvent vous expliquer les fonctionnalités d'une procédure particulière. Toutefois, ils ne modifieront pas ces exemples pour fournir des fonctionnalités ajoutées ou des procédures de construction pour satisfaire vos besoins spécifiques.

Pour charger un fichier de macro complémentaire lorsque vous exécutez Excel en tant qu'objet d'automation OLE, chargez la macro complémentaire manuellement. Voici quelques exemples de cette méthode.

Microsoft Office Excel 2007

Sub LoadAddin()

   ' Dimension variable xl as object type.
   Dim xl As Object

   ' Activate Microsoft Excel and assign to variable xl.
   Set XL = CreateObject("Excel.Application")

   ' Open the add-in file you want, in this example, XLQUERY.XLAM.
   XL.Workbooks.Open (XL.librarypath & "\MSQUERY\XLQUERY.XLAM")

   ' If you need to register the functions and commands
   ' contained in a resource (XLL), use the RegisterXLL method.
   ' In the example below, all functions of Analys32.xll are
   ' registered.
   ' XL.RegisterXLL "Analys32.xll"

   ' Run any auto macros contained in the add-in file
   ' Auto macros don't run when you open a file
   ' using the Open method.
   XL.Workbooks("xlquery.xlam").RunAutoMacros 1

   Set XL = Nothing
 End Sub
				

Microsoft Office Excel 2003 et versions antérieures d'Excel

Sub LoadAddin()

   ' Dimension variable xl as object type.
   Dim xl As Object

   ' Activate Microsoft Excel and assign to variable xl.
   Set XL = CreateObject("Excel.Application")

   ' Open the add-in file you want, in this example, XLQUERY.XLA.
   XL.Workbooks.Open (XL.librarypath & "\MSQUERY\XLQUERY.XLA")

   ' If you need to register the functions and commands
   ' contained in a resource (XLL), use the RegisterXLL method.
   ' In the example below, all functions of Analys32.xll are
   ' registered.
   ' XL.RegisterXLL "Analys32.xll"

   ' Run any auto macros contained in the add-in file
   ' Auto macros don't run when you open a file
   ' using the Open method.
   XL.Workbooks("xlquery.xla").RunAutoMacros 1

   Set XL = Nothing
 End Sub
				

Plus d'informations

Vous avez un contrôle complet de la procédure de chargement parce qu'Excel ne charge pas les macros complémentaires ou les fichiers dans le répertoire XLStart lorsque vous l'appelez en tant qu'objet d'automation OLE. Si vous souhaitez charger une macro complémentaire, vous pouvez la charger manuellement.

Ce comportement signifie aussi qu'aucune erreur de macro, alerte de fichier verrouillé ou alerte de fichier en lecture seule empêche Excel de charger lorsque le programme est appelé par la commande CreateObject. Un autre avantage de ce comportement est qu'Excel charge en moins de temps que lorsque les macros complémentaires ou les fichiers sont chargés.

Références

Pour plus d'informations sur l'aide disponible sur Visual Basic pour Applications, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
226118 Liste des ressources disponibles pour vous aider à apprendre la programmation de Visual Basic pour Applications

Propriétés

Numéro d'article: 213489 - Dernière mise à jour: dimanche 18 septembre 2011 - Version: 2.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Office Excel 2007
  • Microsoft Excel 2002
  • Microsoft Excel 2000 Standard
  • Microsoft Excel 97 Standard
Mots-clés : 
kbautomation kbvba kbexpertiseinter kbdtacode kbprb kbprogramming KB213489
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com