web-dev-qa-db-fra.com

"Projet ou bibliothèque introuvable" pour les fonctions standard de VBA

Je dois donc exécuter l'application Excel de quelqu'un d'autre sur mon PC, et je reçois le message "Impossible de trouver un projet ou une bibliothèque" avec des fonctions standard telles que la date, le format, l'hex, le milieu, etc.

Certaines recherches indiquent que si je préfixe ces fonctions avec "VBA". comme dans "VBA.Date" alors cela fonctionnera bien.

Les pages Web suggèrent que cela a à voir avec mes références de projet sur mon système, alors qu'elles doivent être ok sur le système du développeur. Je vais me charger de cette question pendant un certain temps et distribuerai ces applications à de nombreuses autres. Je dois donc comprendre ce qui ne va pas avec la configuration de Excel que je dois corriger ou ce qui doit être changé dans le fichier xls afin qu’il puisse fonctionner sur divers systèmes. J'aimerais éviter de faire en sorte que tout le monde utilise "VBA". comme une référence explicite, mais s'il n'y a pas de solution idéale, je suppose que c'est ce que nous devrons faire.

  • Comment puis-je faire "VBA." implicite dans les propriétés/références de mon projet/etc?

-Adam

65
Adam Davis

J'ai vu des erreurs sur des fonctions standard s'il manquait une référence à une bibliothèque totalement différente. 

Dans l'éditeur VBA, lancez la commande Compiler à partir du menu, puis vérifiez la boîte de dialogue Références pour voir s'il manque quelque chose et si c'est le cas essayez d'ajouter ces bibliothèques.

En règle générale, il semble judicieux de compiler le code VBA complet puis de sauvegarder le document avant sa distribution.

58
Dirk Vollmar

J'ai eu le même problème. Cela a fonctionné pour moi: 

  • Dans VB, accédez à Outils »Références
  • Décochez la bibliothèque "Crystal Analysis Common Controls 1.0". Ou n'importe quelle bibliothèque.
  • Il suffit de laisser ces 5 références:
    1. Visual Basic pour applications (c'est la bibliothèque qui définit le langage VBA.)
    2. Bibliothèque d'objets Microsoft Excel (définit tous les éléments d'Excel.)
    3. Automatisation OLE (Spécifie les types de liaison et d'intégration de documents et d'automatisation d'autres applications, ainsi que la "plomberie" du système COM utilisé par Excel pour communiquer avec le monde extérieur.)
    4. Microsoft Office (Ceci définit les éléments communs à tous les programmes Office tels que les barres de commandes et les contrôles de la barre de commandes.)
    5. Microsoft Forms 2.0 Ceci est requis si vous utilisez un formulaire utilisateur. Cette bibliothèque définit des éléments tels que le formulaire utilisateur et les contrôles que vous pouvez placer sur un formulaire. 
  • Puis enregistrez.
29
andres

J'ai rencontré ce problème et trouvé sur la machine des utilisateurs une des bibliothèques dont je dépendais qui était marquée comme "MISSING" dans la boîte de dialogue des références. Dans ce cas, il s'agissait d'une bibliothèque de polices Office disponible dans ma version d'Office 2007, mais pas sur le bureau du client. 

L'erreur que vous obtenez est un harnais rouge complet (comme indiqué par divo).

Heureusement, je n'utilisais rien de la bibliothèque et j'ai donc pu le supprimer complètement des références XLA. Je suppose que la meilleure pratique suggérée par divo consisterait à tester pour vérifier le XLA sur toutes les versions Office cibles (ce qui n’est pas une mauvaise idée dans tous les cas).

15
RedBlueThing

Dans mon cas, la fonction était AMBIGUOUS telle que définie dans la bibliothèque VBA (présente dans mes références), ainsi que dans la bibliothèque d'objets Microsoft Office (également présente). J'ai supprimé la bibliothèque d'objets Microsoft Office, et le tour est joué! Pas besoin d'utiliser le VBA. préfixe.

9
blue_wardrobe

Dans mon cas, je vérifiais le travail effectué sur mon ordinateur de bureau (avec Visio installé) à la maison (pas de Visio). Même si VBA semblait s'accrocher à de simples fonctions par défaut, le problème était que j'avais des références aux bibliothèques Visio toujours actives.

0
SmrtGrunt