XL 2016 instruction CreateObject("") / ActiveX ??

  • Initiateur de la discussion Initiateur de la discussion vgendron
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

vgendron

XLDnaute Barbatruc
bonjour à tous

en ces temps heureux, j'ai tout le loisir de me bruler les neurones à chercher à comprendre le codage d'une application vba développée par un prédécesseur

Globalement, cette application "GTA" sert à générer des fichiers python et des fichiers .ini (dans les deux cas... ca peut se résumer à des lignes de texte....)
ensuite.. l'application pilote une autre appli "AutomationDesk de dSpace" pour lancer l'execution des fichiers python et INi, récupérer le résultat dans un fichier ini créé par l'application Automation Desk..
de la meme manière que excel peut piloter Word ou la calculatrice, il est donc necessaire de créer une "instance" de l'application
pour Automation desk, je vois donc cette ligne de code
set ADObj=createobject("AutomationDesk.tam")

De ce que j'ai pu lire: createObject permet de charger un ActiveX avec toutes les méthodes et propriétés associées à cet objet.
je vois ainsi d'autres lignes telles que
set AdRep=ADObj.reports
set AdRes=AdObj.results

Avec le code tel que, je ne peux que constater les méthodes utilisées et me faire une idée d'après leur nom..
MAIS: lorsque j'édite moi meme le code, la saisie automatique ne fonctionne pas pour cet objet "ADObj"
à noter: la saisie semi automatique pour un objet dictionary fonctionne très bien..
donc.. je présume que l'ActiveX associé à l'instruction createObject est manquant sur mon pc perso - Meme si la ligne "createObject" ne provoque pas de bug..??..
THE question: comment savoir s'il me manque effectivement un fichier (genre .ocx) et lequel est manquant??

je ne vous embrasse pas. on a pas le droit :-D
 
Bonjour à tous,

S'il te manque une bibliothèque elle apparait notée [Manquant] dans Outils / Ressources... de VBE.

Je peux me tromper mais j'ai l'impression que ta question concerne l'intellisense (l'autocomplétion).
Avec set ADObj=createobject("AutomationDesk.tam") je comprend que tu déclares tes objets en late binding, or l'intellisense n'est présent que si l'objet est déclaré en early binding (style Dim AppWord As New Word.Application).
A toi de changer les déclarations, quitte à revenir en late binding après développement si tu ne veux pas être tributaire de la version installée sur le poste.
eric
 
Hello
@jmfmarques : y a t il un moyen de voir en amont si l'automation est supportée par l'activeX
est ce une option qu'on peut ou pas activer.? je n'y connais strictement rien en ActiveX.. au point que je ne sais meme pas ce que c'est.. :-D

@eriiiic : effectivement, l'autocomplétion est ce qui me manque
je vais aller voir si la declaration en early binding change quelque chose (encore un terme que je découvre)

je viens de gagner 15jours de confinement.. donc ca va m'occuper un peu :-D
 
y a t il un moyen de voir en amont
si l'automation est supportée par l'activeX
Aucun à ma connaissance.
L'automation n'est mise en oeuvre que pour "piloter" l'objet qui la supporte. Cela implique :
- qu'on sait déjà qu'elle supporte l'automation
- qu'on connait le code qu'elle utilise et les instructions à lui passer dans ce code.

J'ai dans ces conditions beaucoup de mal à imaginer que l'on veuille "voir" si l'on peut "piloter" sans savoir tout cela de l'application à piloter. il y aurait là une forme de paradoxe.
 
Dernière édition:
Ici une proposition intéressante de Philippe Tulliez pour faire une déclaration conditionnelle :
eric
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
989
Réponses
3
Affichages
1 K
Retour