IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème accès bibliothèque d'objets


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 35
    Par défaut Problème accès bibliothèque d'objets
    Bonjour,

    Alors voila j'ai un gros problème. J'ai réalisé un fichier excel avec pas mal de macro et d'userform sur VBA. Mon problème c'est que ce fichier est censé être utilisé par pas mal de monde qui n'ont pas forcement la même version excel que moi ou la même version de Windows. Par exemple, J'ai essayé mon fichier sur un autre poste que le miens et j'ai eu le message d'erreur "objet ou bibliothèque manquante". CE que j'aimerais donc faire c'est placer tous mes fichiers sources auxquels font appels mes codes dans un même fichier que je pourrais envoyer aux utilisateurs avec le classeurs. Ainsi quelque soit l'utilisateurs mon fichier pourra marcher. J'appellerai ces fichiers dans mon code a l'ouverture de mon fichier. Cependant je ne sais pas comment faire ca et si c'est la bonne solution a adopter. De plus j'ai du mal a retrouver le chemin d'accès a mes fichiers de références puisqu'ils ne s'affiches pas en entier dans la fenêtre de gestion des références.

    Nom : referencecachée.PNG
Affichages : 854
Taille : 22,0 Ko
    Images attachées Images attachées  

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    ces quatre références sont celles par défaut quelle que soit la version d'Excel et donc ne poseraient pas de problème.
    Par contre si une référence supplémentaire a besoin d'être cochée (liaison anticipée),
    là il vaudrait mieux utiliser une liaison tardive : Les fiches VBA - Comprendre : Early ou Late Binding

    Il aurait été judicieux de poster le code via l'icône # dédiée et d'indiquer la ligne de code déclenchant l'erreur !

    _________________________________________________________________________________________________________
    Je suis Paris, Charlie, Bruxelles, …

  3. #3
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 128
    Par défaut
    Bonjour,

    Marc-L, son problème n'est pas que les références ne sont pas cochées, mais c'est que les versions d'un des fichiers de config diffèrent d'un poste à l'autre.

    J'ai déjà rencontré ce problème.
    Mes collègues avaient une version plus ancienne, donc certains objets étaient inconnus sur leur poste.

    Dans ce cas, je te dirai de mettre dans l'événement d'ouverture du classeur une Sub qui vient copier ton fichier config et qui le colle chez eux.

    Mais je ne sais pas si cet événement se lance avant ou après la compilation de ton code qui génère une erreur dû aux objets inconnus.
    Là, Marc_L pourra t'aider

    Slooby

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 35
    Par défaut
    C'est exactement ca slooby !

  5. #5
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, comme on le conseille souvent : Développer en Early Binding ( intellisense ) et déployer en Late Binding surtout en environnement hétérogène.

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Citation Envoyé par Marc-L Voir le message
    Il aurait été judicieux de poster le code via l'icône # dédiée et d'indiquer la ligne de code déclenchant l'erreur !

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Un certain nombre de librairies sont chargées par défaut, comme le disait justement Marc.

    C'elles comme Word par exemple sont ajoutées par l'utilisateur, la pas de problème on les décoches et on utilise CreateObjectcreatobject.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Wd=CreateObject("Word.Application")
    En revanche la librairies Visual Basic For Application est chargée par défaut avec le chemin complet de sa position sur le disck du développeur de l'application.

    Ce qui entraine de conflit vue que chaque utilisateur va apporter sa configuration.

    Nous pouvons donc avoir plusieurs références identique à des emplacement disck différents!

    Et un seul emplacement sera valide et charger en mémoire d'ou le conflit!

    Pour résoudre ce dilemme je dois utiliser l'Api effectivement changer en le déclinant de se racine.

    Par exemple la fonction trim découle de l'Api Vba, donc je décline à partir de Vba!
    Vba.trim(" Toto ")

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 35
    Par défaut
    Bon je vais essayer avec les information que vous m'avez transmise merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Problème avec des textbox (bibliothèque d'objets) "Incompatibilité de type"
    Par Danny.adh1 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 29/10/2015, 18h26
  2. Problème accès à un objet depuis un SwingWorker
    Par mrboliboli dans le forum EDT/SwingWorker
    Réponses: 6
    Dernier message: 24/04/2015, 15h50
  3. Acces à la bibliothèque d'objet
    Par Ludwik dans le forum IHM
    Réponses: 2
    Dernier message: 28/09/2014, 15h26
  4. Utiliser CFile... Problème de bibliothèques
    Par GregouzeLaLoose dans le forum MFC
    Réponses: 8
    Dernier message: 01/07/2005, 15h08
  5. Réponses: 14
    Dernier message: 02/03/2005, 18h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo