Partager via


Classe ne prenant pas en charge Automation (Erreur 430)

Certains objets n’exposent pas d’interface Automation. Cause et solution pour cette erreur :

  • La classe que vous avez spécifiée dans l’appel de fonction GetObject ou CreateObject a été trouvée, mais n’a pas exposé d’interface programmable.

    Vous ne pouvez écrire du code pour contrôler le comportement d’un objet que s’il a été exposé pour Automation. Vérifiez la documentation de l’application qui a créé l’objet pour en savoir plus sur les restrictions d’utilisation d’Automation avec cette classe d’objet.

  • Vous avez modifié le type d’un projet de .dll en .exe, ou inversement. Si, par exemple, vous avez un serveur .dll déjà compilé et enregistré, puis que vous modifiez le type du projet en .exe et le recompilez, le fait que les fichiers .dll et .exe soient déjà enregistrés sur le système vous empêche de créer un objet de quelque type que ce soit. Pour éviter ce problème, vous devez désenregistrer manuellement l’ancien fichier .dll ou.exe. Cette situation est la conséquence de la combinaison de la compatibilité du projet et de la modification d’un projet de .exe en .dll. Dans la compatibilité de projet, le CLSID est conservé, mais non le IID. Étant donné que le CLSID est conservé, la classe finit par être enregistrée avec deux serveurs —un serveur in-process et un serveur local. Lorsqu’une instance est créée, le serveur in-process est choisi. Lors de l’interrogation de l’interface, le fichier .dll ne gère pas l’IID car il est nouveau.

Pour plus d’informations, sélectionnez l’élément en question et appuyez sur F1 (sur Windows) ou AIDE (sur Macintosh).

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.