Erreur d'exécution de macro de fichiers texte insérés à partir d'une autre macro

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

La version anglaise de cet article est la suivante: 117363
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Symptômes
Si vous exécutez un Microsoft procédure Visual Basic pour applications qui insère une macro en tant qu'un fichier texte dans un module, puis exécute la macro dans ce module, vous recevez le message d'erreur suivantes :
Erreur d'exécution '1004' :

Impossible de trouver la macro 'Nommacro'
Cause
Cette message d'erreur se produit si une des conditions suivantes est remplie :

  • Vous insérez la macro dans un module existant. (C'est le cas si vous avez déjà inséré une macro en tant que fichier texte dans le même module.) - ou -

  • Vous avez la possibilité de déclaration des variables obligatoire sélectionnée.
Le message d'erreur se produit car lorsque vous exécutez une procédure qui insère une macro en tant qu'un fichier texte dans un module a déjà été compilé, le module existant est décompilé pas reconnaître la nouvelle macro jusqu'à ce que la procédure qui insère la macro est terminée.

Notez qu'en raison de ce comportement, il est possible d'exécuter une procédure qui insère deux macros portant le même nom dans le même module, puis exécute la macro insérée en premier lieu, car la deuxième macro n'est pas reconnue jusqu'à ce que la fin de la procédure qui insère les deux macros.

L'erreur se produit dans le second cas parce que la macro est insérée au-dessus de l'instruction Option Explicit. L'instruction Option Explicit doit apparaître au début d'un module.
Contournement
Pour éviter cette message d'erreur lorsque vous exécutez une procédure Visual Basic pour insérer la totalité de la macro dans un nouveau module, puis exécutez la macro, procédez comme suit :

  • Insérez la macro en tant que fichier texte dans un nouveau module. Utilisez la méthode Add de l'objet modules pour ajouter un nouveau module au classeur avant d'insérer la macro. - et -

  • Désactivez la case à cocher déclaration des variables obligatoire sur l'onglet Éditeur (ou un onglet Général de module) de la boîte de dialogue Options. Cette option ajoute l'instruction Option Explicit automatiquement lorsque vous créez un nouveau module.
Si vous insérez plusieurs macro dans le module, effectuez l'une des opérations suivantes :

  • Combiner des macros dans un seul fichier texte. Vous ne pouvez pas les ajouter en tant que fichiers texte distinct dans le même module. - ou -

  • Insérez chaque macro de fichier texte dans un nouveau module.
Statut
Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés au début de cet article.
5.00a 5,00 c err msg XL

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 117363 - Dernière mise à jour : 02/11/2014 17:50:23 - Révision : 1.3

Microsoft Excel 97 Standard

  • kbnosurvey kbarchive kbmt kbbug kberrmsg kbpending KB117363 KbMtfr
Commentaires