Executer une commande en mode run

Soyez le premier à donner votre avis sur cette source.

Vue 16 731 fois - Téléchargée 704 fois

Description

Cette source permet, en mode run, d'exécuter une instruction VB, par exemple :
MsgBox "Bonjour !"
Elle utilise la fonction EbExecuteLine de la VBA6.DLL

Nota : Ce projet ne fonctionne pas en mode compilé, c'est normal.
Nota : Il faut avoir le fichier VBA6.DLL.
Je suppose que si vous ne l'avez pas, il faudra l'enregistrer avec la commande "RegSvr32 VBA6.DLL" après l'avoir récupérée sur Google.

Conclusion :


Cette source a été pompée sur un autre site (il y a quelques temps), mais je ne rappelle plus où. Voir les commentaires de copyrights en tête du code.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
337
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
15 avril 2006

C'est sans doute parce que un module n'est pas un objet (je veux dire que tu ne sais en instancier)

As-tu essayer avec un module de classe pour encapsuler tout ce dont tu as besoin dans tes scripts ? Ça devrait marcher et c'est sans doute plus propre.
Messages postés
13
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
25 avril 2006

OK merci çà marche en effet!
Mais j'ai encore un problème : comment peut-on appeler une méthode/fonction VB depuis le controle MSscript qui apparemment ne reconnaît pas le code VB ? J'ai vu dans ton projet sur les polynomes que tu utilisais "Scp.AddObject "Interface", Me" puis lance une fonction VB avec "Scp.ExecuteStatement ("Interface.Script(" & Fct & ")")". J'aimerais faire de même mais le compilo ne veut pas ajouter 'Me' qui dans mon cas est un module et non un formulaire (c'est un pg batch tout simple). As-tu la solution ?
Merci d'avance
Messages postés
337
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
15 avril 2006

pfiouuu... ce message me donne un coup de vieux lol.

Je suis depuis passé sur linux donc je vais essayer de me souvenir... En principe msscript est un ActiveX donc tu n'as pas a chercher de point d'entrée VB gère ça tout seul comme un grand. Tu ajoute ton ocx dans ton projet (Projet => composant si mes souvenir son bon. Sinon clique droit sur la barre d'outils et Ajout/Suppression de composant un truc du style). Ensuite tu pourras mettre un controle MSScript sur ta form et l'utiliser comme tu veux.


Si tu va voir dans mes sources sur ce site, il y en a une intitulé "Tracer des graphique de fonction du 4eme degré" (ou quelque chose comme ça) qui utilise ce composant tu peux t'en inspirer (oui je sais le code n'est pas tres propres :( )

J'espère que ça pourra t'aider
Messages postés
13
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
25 avril 2006

Salut sibi12,
Comme j'ai également des problèmes avec vba6.dll qui me génère des bugs, je voudrais savoir comment tu as réussi la manip avec le composant msscript.ocx.
En effet, je l'ai essayé à la place de vba6.dll en renseignant le nom du fichier dans le code VB mais le compilateur me dit que "le point d'entrée EbExecuteLine est introuvable...". Quel point d'entrée utilises-tu pour exécuter une chaîne avec msscript.ocx ? Si tu as un bout de code, je suis preneur!
Merci beaucoup
Messages postés
337
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
15 avril 2006

Oui c'est juste j'utilise l'ocx. J'utilisai auparavant la dll j'ai du oublier de l'enlever. quand je l'ai remplacer par l'ocx.

Pour info, la dll et l'ocx s'utilise exactement de la même manière mise à part la declaration evidemment. Il faut utiliser le mot-clé WithEvents pour avoir accès aux evenement si tu utilise la dll.

je l'utilise dans la fonction CalcFct mais la façon dont je l'utilise peut être assez compliquer a saisir.

En réalité je rajoute un module au ScriptControl que je nomme Interface dans le Form_Load puis le reste se passe dans le CalcFct qui demande au control de renvoyer le resultat dans la fonction Script.
Afficher les 12 commentaires

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.