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

Messages postés
5608
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2018
- - Dernière réponse : tangosierra
Messages postés
5
Date d'inscription
mardi 28 novembre 2006
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
Afficher la suite 

Votre réponse

20/22 réponses

Meilleure réponse
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Dernière intervention
27 août 2013
3
Merci
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..

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de lolokun
Messages postés
5608
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2018
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de cs_Le Pivert
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Dernière intervention
30 juin 2013
0
Merci
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
Messages postés
5608
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2018
0
Merci
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
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Dernière intervention
30 juin 2013
0
Merci
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
Messages postés
5608
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2018
0
Merci
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
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Dernière intervention
27 août 2013
0
Merci
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
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Dernière intervention
30 juin 2013
0
Merci
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
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Dernière intervention
27 août 2013
0
Merci
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
Messages postés
5608
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2018
0
Merci
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
Messages postés
5608
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2018
0
Merci
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
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Dernière intervention
27 août 2013
0
Merci
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
Messages postés
5608
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2018
0
Merci
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
Messages postés
5608
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2018
0
Merci
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
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Dernière intervention
30 juin 2013
0
Merci
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
Messages postés
5608
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2018
0
Merci
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
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Dernière intervention
30 juin 2013
0
Merci
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
Messages postés
5608
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2018
0
Merci
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
Messages postés
5
Date d'inscription
mardi 28 novembre 2006
Dernière intervention
20 août 2012
0
Merci
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
0
Merci
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.