Impossible de créer l'objet MSComDlg.CommonDialog VBS [Résolu]

cs_Le Pivert 5070 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 25 avril 2018 Dernière intervention - 23 août 2010 à 17:36 - Dernière réponse : tangosierra 5 Messages postés mardi 28 novembre 2006Date d'inscription 20 août 2012 Dernière intervention
- 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
Afficher la suite 

22 réponses

Répondre au sujet
lolokun 1241 Messages postés mardi 10 octobre 2006Date d'inscription 27 août 2013 Dernière intervention - 24 août 2010 à 11:12
+3
Utile
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..
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de lolokun
cs_Le Pivert 5070 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 25 avril 2018 Dernière intervention - 23 sept. 2010 à 15:03
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Le Pivert
cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 23 août 2010 à 19:24
0
Utile
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
Commenter la réponse de cs_ghuysmans99
cs_Le Pivert 5070 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 25 avril 2018 Dernière intervention - 23 août 2010 à 20:33
0
Utile
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é.
Commenter la réponse de cs_Le Pivert
cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 23 août 2010 à 22:25
0
Utile
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
Commenter la réponse de cs_ghuysmans99
cs_Le Pivert 5070 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 25 avril 2018 Dernière intervention - 23 août 2010 à 22:34
0
Utile
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
Commenter la réponse de cs_Le Pivert
lolokun 1241 Messages postés mardi 10 octobre 2006Date d'inscription 27 août 2013 Dernière intervention - 24 août 2010 à 09:10
0
Utile
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..
Commenter la réponse de lolokun
cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 24 août 2010 à 09:19
0
Utile
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
Commenter la réponse de cs_ghuysmans99
lolokun 1241 Messages postés mardi 10 octobre 2006Date d'inscription 27 août 2013 Dernière intervention - 24 août 2010 à 09:24
0
Utile
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..
Commenter la réponse de lolokun
cs_Le Pivert 5070 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 25 avril 2018 Dernière intervention - 24 août 2010 à 11:08
0
Utile
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
Commenter la réponse de cs_Le Pivert
cs_Le Pivert 5070 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 25 avril 2018 Dernière intervention - 24 août 2010 à 13:58
0
Utile
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.
Commenter la réponse de cs_Le Pivert
lolokun 1241 Messages postés mardi 10 octobre 2006Date d'inscription 27 août 2013 Dernière intervention - 24 août 2010 à 14:20
0
Utile
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..
Commenter la réponse de lolokun
cs_Le Pivert 5070 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 25 avril 2018 Dernière intervention - 24 août 2010 à 15:23
0
Utile
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.
@+
Commenter la réponse de cs_Le Pivert
cs_Le Pivert 5070 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 25 avril 2018 Dernière intervention - 25 août 2010 à 17:36
0
Utile
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
Commenter la réponse de cs_Le Pivert
cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 25 août 2010 à 19:13
0
Utile
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
Commenter la réponse de cs_ghuysmans99
cs_Le Pivert 5070 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 25 avril 2018 Dernière intervention - 25 août 2010 à 20:38
0
Utile
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
Commenter la réponse de cs_Le Pivert
cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 26 août 2010 à 00:22
0
Utile
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
Commenter la réponse de cs_ghuysmans99
cs_Le Pivert 5070 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 25 avril 2018 Dernière intervention - 26 août 2010 à 11:02
0
Utile
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.
@+
Commenter la réponse de cs_Le Pivert
tangosierra 5 Messages postés mardi 28 novembre 2006Date d'inscription 20 août 2012 Dernière intervention - 6 août 2012 à 11:58
0
Utile
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
Commenter la réponse de tangosierra
Utilisateur anonyme - 6 août 2012 à 18:09
0
Utile
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.
Commenter la réponse de Utilisateur anonyme

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

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