CreateObject [Résolu]

Signaler
Messages postés
39
Date d'inscription
samedi 30 avril 2011
Statut
Membre
Dernière intervention
26 juin 2012
-
Messages postés
39
Date d'inscription
samedi 30 avril 2011
Statut
Membre
Dernière intervention
26 juin 2012
-
bonjour,

voilà, j'aimerais savoir ou je peux trouver des infos sur CreateObject car il est impossible de trouver une liste d'objet autre que :

CreateObject("Excel.Application")
CreateObject("Scripting.Dictionary")
CreateObject("scripting.filesystemobject")

Et surtout comment on s'en sert
si quelqu'un pourrait m'orienter?...
Merci

6 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
ouvre enfin ton aide en ligne sur le mot activex
clique sur la rubrique "identificateurs de programmes OLE"
tu y trouveras des "choses" intéressantes (si tu sais lire, comprendre, et ...cliquer.... lire ce qui s'affiche alors, etc ...)


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Bonjour,

Cette fonction, qui ne peut créer une instance d'une application que si cette application prend en charge Automation se traduit tout simplement par la création d'un type d'objet.

Elle est exposée complètement dans l'aide VBA, aide dans laquelle tu trouveras par ailleurs des exemples.

Je vois mal quoi ajouter (qui n'y serait pas dit) !

____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Messages postés
39
Date d'inscription
samedi 30 avril 2011
Statut
Membre
Dernière intervention
26 juin 2012

ok ça m'éclaire un peu plus mais comment choisir ces différentes applications en fonction de nos besoins.
Par exemple, je sais maintenant que :
CreateObject("Scripting.Dictionary")
Il s'agit d'un tableau à deux colonnes, les éléments de la première colonne étant appelés des clés. Le dictionnaire associe une valeur (de type String, Long, Boolean...) à un nom (nom de clé). Il permet d'accéder directement à l'élément associé à une clé sans avoir à balayer les champs à la recherche de la clé.
L'aide VBA ne donne aucune explication sur toutes les possibilités autres que CreateObject("Excel.Application")
Alors où chercher
En tout cas merci pour ta réponse
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Excuse-moi, mais :
- c'est toi, qui sait si un objet activex accepte ou non l'automation.
- on ne crée pas un tel objet par createObject pour le pliasir, mais en fonction de ce que l'on veut faire (et pas l'inverse) !
----- et c'est alors, selon le cas, soit pour utiliser telle ou telle autre de ses ressources, soit pour lire pou modifier telle pou telle autre propriété des objets qu'il contient.
----- Lorsque l'on agit de la sorte, on est bien évidemment censé connaître suffisamment bien l'objet dont il s'agit (sinon s'abstenir)
et cette question :
Et surtout comment on s'en sert

est assez surprenante car la réponse est : comme tu t'en servirait en les utilisant directement (sans les utiliser depuis une appli d'appel) !
Après, il y aurait autant d'exemples d'utilisations possible que ton esprit peut imaginer, si ces utilisations font appel, bien évidemment, aux "capacités" de l'objet activex considéré !
Pour résumer : VBA n'est là que pour te permettre de créer et manipuler ce genre d'objet, mais la syntaxe à utiliser avec sera celle de l'objet activex lui-même, pas celle de l'appmli d'appel.
Alors voilà : c'est avant toute autre chose la connaissance que tu as des dits objets dont tu veux te servir, qui est nécessaire (et çà, ce n'est pas la connaissance de l'appli utilisatrice)



____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Ah voilà ! J'ai trouvé un moyen simple de te faire comprendre certaines choses :
Imaginons que tu te rendes sur un chantier où tu sais que tu devras découper une dalle de béton malencontreusement coulée sur un regard d'écoulement des eaux.
Que vas-tu mettre dans ta camionnette ? Ce dont TU penses que la disponibilité te sera utile, voire nécessaire.
Ce sera entre autres : un marteau-piqueur, et une pelle (que tu possèdes dans ton atelier ===>> parfait).
Mais il te vient à l'idée qu'il ne serait pas stupide d'emprunter à un collègue la magnifique disqueuse qu'il possède. Tu vas alors sonner chez lui, la lui emprunte et l'embarque dans ta camionnette (c'est cela, CreateObject).
Parfait, parfait ...
Mais cette disqueuse ne te servira à rien si tu n'en connais pas le mode d'emploi et ne sais qu'en faire, même si tu sais parfaitement (la connaissance de ton ouvrage) ce que tu voudrais qu'elle fît sur ton chantier ...
Voilà ! tu auras ainsi compris, j'espère, que certaines utilisations nécessitent inévitablement la connaissance de l'objet appelant, mais aussi celle de l'objet utilisé. Une seule de ces deux connaissance (sans la connaissance de l'autre) ne peut conduire à rien.

____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Messages postés
39
Date d'inscription
samedi 30 avril 2011
Statut
Membre
Dernière intervention
26 juin 2012

Hm...Je pense comprendre où tu veux en venir!
Voilà ce que j'attendais, un petit coup de pouce pour m'orienter sur mes recherches donc je vais m'ateler à chercher dans la direction de ActiveX et l'"identificateurs de programmes OLE" que tu m'as conseillé
Sinon pour information, je suis juste un neophyte qui est sans cesse à la recherche de nouvelle application (Pour le plaisir de creer)!
Mais Merci pour tes exemples et ton investissement dans la conversation