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 :

Différence déclaration ? [XL-2010]


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
    Inscrit en
    Mai 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 36
    Par défaut Différence déclaration ?
    Bonjour à tous,

    En essayant de lancer une macro sous Excel permettant d'ouvrir un nouveau document Visio et d'y tracer des formes, selon le pc je suis confronté à des erreurs (tous sous Excel 2010). L'erreur survient sur ma ligne en surlignant "app_visio" avec ce message "Mécanisme de bibliothèque d'objets non géré" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set app_visio = CreateObject("Visio.Application")
    En regardant le programme et en testant, je me suis rendu compte que 2 déclarations différentes donnaient le même résultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim app_visio As Visio.Application
    Set app_visio = CreateObject("Visio.Application")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim app_visio As Object
    Set app_visio = CreateObject("Visio.Application")
    Y a-t-il une différence significative sur le fonctionnement du programme entre ces deux méthodes ? Est ce que ça pourrait être une source d'erreur en fonction du poste sur lequel la macro est lancée ?

    Merci d'avance pour votre aide,

    Bonne journée

  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,

    la première en liaison anticipée (Early Binding) est plus efficace,
    encore faut-il ajouter la librairie correspondante aux Références du projet (via le menu Outils) …

    La deuxième est en liaison tardive (Late Binding) et n'a pas besoin d'une référence cochée.

    Voir la fiche Comprendre Early ou Late Binding

    Lorsqu'un applicatif migre sur différents ordinateurs, préférence vers la liaison tardive.

  3. #3
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    la seule difference c'est que si tu déclares comme visio application tu pourras utiliser l'autocomplétion en codant... c'est à dire que l'éditeur vb va te cherche ce que tu peux mettre comme propriété quand tu mets un point

    Ex: range("A1").C va t'afficher une petite fenêtre avec Copy ...

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 36
    Par défaut
    Merci Marc je vais y jeter un coup d'oeil. l'erreur de "mécanisme de bibliothèque d'objets non géré" peut donc effectivement découler de cette déclaration ?

    Et merci EngueEngue pour cette précision, en fait ça peut être bien de faire la 1ère déclaration pendant le codage et à la fin de basculer sur la 2ème déclaration avant la publication du fichier pour utilisation.

  5. #5
    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
    peut-être pour l'erreur (j'ai un doute à cause du message)

    et tout à fait pour le développement en liaison anticipée puis passage en liaison tardive pour le déploiement de l'applicatif.

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 36
    Par défaut
    Merci beaucoup pour ces explications rapides et claires ! à moi de jouer pour corriger tout ça.

    Bonne journée

  7. #7
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Pas vu le réponse de marc qui est bien sûr plus précise que la mienne comme d'habitude.

    Sorry

    Cependant si tu utilises des fonctions de la reference visio... tu devras les activer sur les postes lors du déploiement que ce soit déclaré comme objet ou comme visio.application

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

Discussions similaires

  1. Différence entre . et div# dans la déclaration des blocs
    Par filtep dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 18/01/2010, 19h03
  2. Différence de syntaxe dans la déclaration struct
    Par GreatDeveloperOnizuka dans le forum C
    Réponses: 6
    Dernier message: 25/01/2009, 12h28
  3. Réponses: 2
    Dernier message: 16/12/2007, 01h35
  4. Quelle est la différence entre ces deux déclarations ?
    Par sidahmed dans le forum Débuter
    Réponses: 15
    Dernier message: 04/10/2007, 19h59
  5. Différence / déclaration ouverture de feuille excel
    Par mosquitout dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/08/2006, 09h50

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