EXCEL User Defined Function – Impossible de find un projet ou une bibliothèque sans reference MISSING

J'ai développé une fonction définie par l'user dans mon ordinateur et enregistre le document sous XLSM. Lorsque je l'ai dissortingbué à d'autres users de ma société, ils obtiennent une erreur «Impossible de find un projet ou une bibliothèque» tant qu'ils ouvrent le classur, puis click «Activer les macros».

S'ils attaquent Debug , la ligne jaune tombera sur la ligne principale de la fonction définie par l'user, comme celle-ci

Erreur sur la première ligne

Ensuite, j'ai vérifié les devises – Référence de VBE, mais je trouve que rien ne manque à tous les ordinateurs (mine et autres users).

Mais la reference est une petite différence,

Dans mon ordinateur, c'est

Référence dans l'ordinateur du développeur

Dans l'ordinateur d'autres users, c'est

Référence dans un autre utilisateur

La seule différence est la ligne en surbrillance. Dans mon ordinateur, c'est Microsoft Office 16.0 Object Library, puisque j'ai installé Project 2016 avec Excel 2013. Alors que les autres sont 15.0 .

Soit dit en passant, je reçois l'image ci-dessus avant d'appuyer sur le button "Activer la macro" car une fois que je l'ai frappé, le message d'erreur s'affichera pour des time infinis et je ne pourrai jamais entrer dans la Référence dans VBE. Par conséquent, il est possible qu'il y ait une reference FAIBLE lorsque le code est en cours d'exécution.

Ce problème est très probablement causé par les différentes versions de Microsoft Office Object Library.

Vous pouvez essayer d'exporter le code VBA et supprimer le module VBA dans votre file xlsm, puis réinsert le code VBA dans les ordinateurs des users. Habituellement, le problème sera résolu.

La raison pour laquelle ce problème se produit est que Excel fait effectivement save le code compilé de VBA, même si nous ne voyons jamais aucun code compilé ou des packages compilés. Lorsque d'autres users ouvrent votre file Macros Enabled, Excel exécutera automatiquement le code machine compilé au lieu du code source lisible. En raison de différentes interfaces (je suppose qu'il s'appelle interface?) Pour différentes bibliothèques dans les codes machine, Excel ne peut pas find la bibliothèque et une erreur se produit.

Vous pouvez donc essayer de décomstackr votre code VBA avant de dissortingbuer vos files XLSM. Visitez cette page pour download l'outil pour décomstackr votre file XLSM: VBA Decomstackr

Cela se produit probablement lorsque vous utilisez une connection anticipée quelque part dans votre code (je ne vois pas que cela se passe dans le codepart sur la capture d'écran).

Une solution de rechange serait de modifier votre code pour utiliser la binding tardive. Jetez un oeil à la réponse de Siddharth Rout dans Prévenir les erreurs de compilation Excel VBA en raison de l'installation d'une ancienne version de MS Office (MS Outlook)? pour plus d'informations.