Erreur "ActiveX component can't create object"......

Messages postés
124
Date d'inscription
mercredi 2 juillet 2003
Statut
Membre
Dernière intervention
16 mai 2007
- - Dernière réponse : cs_cissou06
Messages postés
124
Date d'inscription
mercredi 2 juillet 2003
Statut
Membre
Dernière intervention
16 mai 2007
- 21 juin 2004 à 11:02
Bonjour!

J'ai une sub qui lance une appli Visio et ouvre une copie d'un dessin avec sa biblio d'éléments graphiques associée.
Je cherche maintenant, dans une autre sub, à récupérer la référence de la bibliothèque d'éléments graphiques et j'ai une erreur "ActiveX component can't create object" qui se produit dans mon code VBA d'Excel:

Dim stnObj As Visio.Document
Set stnObj = Visio.Application.Documents.Item("Gabarit.vss")

J'ai déjà ajouté dans le menu Tools => Références Visio5.0 Type Library pour pouvoir accéder à des objets Visio... Comme ça ne marchait pas j'ai ajouté tout ce qui commençait par Visio: Visio Graph2.0, Visio Save As HTML, Visio Utilities Object, VisioDWG 1.0 Type Library etc... ça n'a rien changé. Je ne comprends pas ce qu'il faut faire.... Est-ce qu'il y a une autre façon de récupérer la référence du fichier de Visio?

Quelqu'un peut m'aider? Merci d'avance!
Afficher la suite 

2 réponses

Messages postés
437
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
10 août 2010
1
0
Merci
C'est un .tlb que tu as mis sur ta machine ?
Dans ce cas c'est normal que tu puisses le voir, mais que tu ne puisses pas l'exécuter.

Les fichiers .tlb contiennent les définitions du modèle objet, tu n'as en gros que les entêtes des objets, fonctions, constantes.
Messages postés
124
Date d'inscription
mercredi 2 juillet 2003
Statut
Membre
Dernière intervention
16 mai 2007
0
Merci
Non, ce n'est pas le cas... Merci quand même...

En fait j'ai été vraiment stupide! Il suffisait de faire passer mon objet qui contient la référence de mon appli Visio, créée dans la 1ère sub, en variable globale... Je n'avais donc plus qu'à faire:

Set stnObj = MyAppliVisio.Documents.Item("Gabarit.vss")

Et là, ça marche très bien!