Impossible de créer l'objet MSComDlg.CommonDialog VBS

Résolu
cs_Le Pivert Messages postés 7823 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 30 septembre 2022 - 23 août 2010 à 17:36
tangosierra Messages postés 5 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 20 août 2012 - 20 août 2012 à 11:52
Bonjour,
Je n'ai toujours pas trouvé le theme VBScript.
J'ait fait une application en VBS, où j'utilise cette ligne de code et cela fonctionne très bien sur mon PC.
Set objDlg = wscript.CreateObject("MSComDlg.CommonDialog")
Je viens de changer de PC en XP et Office 2003 comme l'autre. Et j'ai un message d'erreur sur cette ligne :
Impossible de créer l'objet "MSComDlg.CommonDialog"
Code: 80040112
Source:wscript.CreateObject
J'ai fait des recherches sur le net et me suis aperçu que je n'était pas le seul, mais je n'ai trouvé aucune solution.
J'ai vérifié la dll et l'ocx comdlg32 elle sont toutes les 2 présentes sur les 2 PC.
Faudrait-il une autorisation?
Je vous remercie de vos réponses.

Le Pivert

22 réponses

lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 6
24 août 2010 à 11:12
Ben en vbs tu ne peux cocher aucune référence..
il doit manquer une dll ou autre manquante, installé avec visual studio qui empêche le bon fonctionnement de l'appli..
Je n'avais pas fait attention que c'était le même site désolé, et l'astuce qui renvoie sur le site de bellamy ne fonctionne pas?


L'expérience, c'est une connerie par jour, mais jamais la même..
3
cs_Le Pivert Messages postés 7823 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 30 septembre 2022 134
23 sept. 2010 à 15:03
Après quelques jours de vacances, j'ai résolu le problème en téléchargeant VB2008 sur mon PC portable et cela fonctionne parfaitement.
Comme le disait si justement lolokun dans un précédent post il y a un fichier dans Visual studio (mais lequel?). J'espère que cela servira à d'autres
@+ Le Pivert
3
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
23 août 2010 à 19:24
Il ne suffit pas de les copier dans system32 mais faut aussi les enregistrer

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
cs_Le Pivert Messages postés 7823 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 30 septembre 2022 134
23 août 2010 à 20:33
Merci de la réponse,
C'est enregistré, mais le problème persiste. En consultant le Net, je me suis aperçu que c'est un sujet récurrent. Car c'est la création de l'objet qui n'est pas accepté.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
23 août 2010 à 22:25
Moi il me dit (sur mes machines virtuelles XP et Se7en) que y'a pas de licences pour la classe Mais je sais pas comment régler ce problème-là ...

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
cs_Le Pivert Messages postés 7823 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 30 septembre 2022 134
23 août 2010 à 22:34
Merci de te pencher sur mon problème
J'ai trouvé sur ce site la vrai question que je me pose et à laquelle je ne trouve pas de solution:
Pourquoi cela ne marche pas d'un PC à l'autre étant équipé de la même manière.

http://forum.hardware.fr/hfr/Programmation/VB-VBA-VBS/faire-file-dialog-sujet_74424_1.htm
0
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 6
24 août 2010 à 09:10
Bonjour,

Alors le vbs est dans VB6/langage dérivés comme le vba ;)

Sinon voici une discussion qui pourrait surement t'intéresser :
ici

(Perso pas de problème sur un xp sp3)

L'expérience, c'est une connerie par jour, mais jamais la même..
0
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
24 août 2010 à 09:19
Si tu parles de ta machine de dév c'est normal ... Moi aussi ça marche sous mon Se7en x64

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 6
24 août 2010 à 09:24
Ha bah c'est ma machine de boulot, avec vb6, visual studio 2003 et 2005
vais refaire le test sur d'autres postes..


L'expérience, c'est une connerie par jour, mais jamais la même..
0
cs_Le Pivert Messages postés 7823 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 30 septembre 2022 134
24 août 2010 à 11:08
Merci lolokun,
Le site que tu m'indiques est le même que j'ai cité plus haut et explique bien le problème qui date d'un certain temps mais ne le résout pas.Moi aussi j'ai 2 PC XP sp3 , cela fonctione sur l'un mais pas sur l'autre, c'est ce que je voudrais que l'on m'explique?
En VBS y-a-t-il de Réferences à cocher comme en VBA?
Je n'ai rien trouvé de tel sur Microsoft Script Editor
0
cs_Le Pivert Messages postés 7823 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 30 septembre 2022 134
24 août 2010 à 13:58
J'ai essayé de cette façon:

Set objDlg = wscript.CreateObject("SAFRCFileDlg.FileOpen")

Je n'ai plus de message d'erreur, mais cela n'ouvre pas la boite de dialogue. Sur le 2 ème PC je n'ai pas Visual Studio, mais je ne pense pas que cela marche ensemble, c'est plutôt avec Excel que l'on utilise VBS.
0
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 6
24 août 2010 à 14:20
Hmm ben mon pc de boulot avec xp SP3, excel 2003 pas de souci.
Un pc portable xp SP2, excel 2007 j'ai le problème..

Cependant la version de la dll comdlg32 a l'air identique (6.0.2900) dans le répertoire System32..
Par contre je ne peux pas effecuter l'enregistrement avec le regsvr32, message d'erreur..
Par contre le comdlg32.ocx est moins gros...

Un nouveau lien peut-être essaye avec un des 2 liens proposé pour le téléchargement de cette dll:
ici

L'expérience, c'est une connerie par jour, mais jamais la même..
0
cs_Le Pivert Messages postés 7823 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 30 septembre 2022 134
24 août 2010 à 15:23
j'ai suivi le lien et téléchargé, enregistré l'OCX,rien ni fait. J'ai comparé les DLL et OCX, ce sont les mêmes avec les mêmes références. Moi aussi c'est un portable où cela ne fonctionne pas, mais c'est le même système d'exploitation. Il y a réellement un problème. Ce n'est pas grave, c'était juste pour connaitre la cause de ce disfonctionnement.
Pour ce qui est de l'enrgistrement des DLL, sur les 2 machines il y a un message d'erreur, donc cela doit-être normal.
@+
0
cs_Le Pivert Messages postés 7823 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 30 septembre 2022 134
25 août 2010 à 17:36
Après des recherches, il faut une licence d'utilisation sur certaines machines. J'ai trouvé sur ce site de quoi contourner le problème.

http://www.ericphelps.com/scripting/samples/
Il faut lire la partie "SERIAL" MsCOmm32 qui renvoie à la méthode SFX
Qui explique qu'il faut encapsuler l'OCX.
Faire un fichier auto-extractible VBS
Par contre je ne sais pas la façon d'encapsuler l'OCX.
Si vous pouviez m'aider?
Merci
0
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
25 août 2010 à 19:13
Regarde la sub CreateMscomm32() de ce fichier...

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
cs_Le Pivert Messages postés 7823 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 30 septembre 2022 134
25 août 2010 à 20:38
Je ne comprends pas ce que je doit faire. Il y a juste une page avec au coin haut gauche:
COM PORT et des optionButton et ensuite Settings et un N° avec Setup et en dessous Send
0
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
26 août 2010 à 00:22
Bizarre, on ne voit pas la même chose ! Pas grave, j'ai posté le code source sur Pastebin.com. Récupère le source via le textbox en bas de la page ...

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
cs_Le Pivert Messages postés 7823 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 30 septembre 2022 134
26 août 2010 à 11:02
Merci ghuysmans99, bien reçu, je vais l'étudier. Mais pour ouvrir une boite de dialogue, le code a l'air bien complexe, je pense qu'il vaut mieux se tourner vers une autre façon de procéder.
@+
0
tangosierra Messages postés 5 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 20 août 2012
6 août 2012 à 11:58
Même problème que souligné par le premier posteur. Cela fonctionnait sous ma machine de dev en XP SP3 et pas sur mon laptop aussi en XP-SP3. J'ai installé vb5ccein.exe sur mon laptop et maintenant, FileOpen marche. Si cela peut en aider certains. Moi non plus en ce mois d'août 2012 je n'avais trouvé aucune solution sur le net. Pour plus d'info voir : http://jc.bellamy.free.fr/fr/vbsgeneralites.html
0
Utilisateur anonyme
6 août 2012 à 18:09
Bonjour,

Les contrôles VB6 ne peuvent pas, de par la volonté de Microsoft, être utilisés sur un programme qui n'a pas été au préalable compilé par VB6 avec le contrôle intégré au programme. Quand le contrôle n'est pas intégré au programme, il faut que VB6 soit installé sur la machine. C'est (c'était) pour protéger l'investissement des acheteurs de VB6.

En principe, on peut utiliser les boîtes de dialogues de Windows en passant par l'API de Windows.
0