Comment executer du VBScript ou le cas echeant du CATScript depuis VBA?

Résolu
dorianovitch Messages postés 6 Date d'inscription lundi 26 novembre 2007 Statut Membre Dernière intervention 10 janvier 2008 - 2 janv. 2008 à 09:38
dorianovitch Messages postés 6 Date d'inscription lundi 26 novembre 2007 Statut Membre Dernière intervention 10 janvier 2008 - 3 janv. 2008 à 07:52
Salut,

Je suis étudiant en 4ème année dans une école d'ingé en mécanique...
Dans le cadre de mon stage de 4 ème année, je travaille chez un grand equipementier automobile sur du developpement en VBA pour CATIA V5...

Jusqu'à présent, même parfait débutant, j'ai pu, à force de patience et de recherches trouver mon bonheur et parvenir à atteindre mes objectifs....

Seulement, maintenant, j'ai un petit soucis...

Je vous explique...

Je cherche à exécuter du VBScript ou même du CATScript depuis une macro VBA (VBA CATIA V5, mais c'est parfaitement identique à VBA Excel!), concrètement, mon application VBA en appelerait une autre en VBS ou CatS...
Je sais déjà comment "appeler" du VBA depuis du VBA et même du VBA depuis du VBS, mais maintenant, j'aimerais parvenir à la réciproque...

Mes recherches n'ont fait que m'amener à cette terrible conclusion, il n'est à priori pas possible d'appeler du VBS depuis du VBA...
Mais je ne peux m'y résoudre! Aussi je demande de l'aide!

Merci par avance.

3 réponses

dorianovitch Messages postés 6 Date d'inscription lundi 26 novembre 2007 Statut Membre Dernière intervention 10 janvier 2008
3 janv. 2008 à 07:52
Bonjour,

Pour ceux que cela interesse (ceux tombé sur cette page en recherchant des éléments sur CATIA V5!), voici ma petite contribution...

Comme le faisait très justement remarqué Us_30, il est possible de "lancer" du script depuis le VBA au moyen de l'instruction Shell, comme le montre l'exemple suivant:

Sub CATMain()
    Dim Shell As Object: Set Shell = CreateObject("WScript.Shell")
    Dim ID As Variant: ID = Shell.Run("H:\MacroDir1\Macro1.CATScript")
    End
End Sub

Je ne sais pas si cela vous sera d'une très grande aide, mais cela résoud tout du moins un partie de mes problèmes, car je n'aurais pas besoin de ré-éditer tous les scripts de la boîte depuis le *.CATScript pour du *.catvba!

Maintenant, je déplore l'absence d'une documentation carrée et exhaustive sur les possibilités Automation de CATIA V5! (Il existe bien un *.chm, mais on ne sait pas ce que signifie se prendre la tête tant qu'on ne l'a pas manipulé!!)

En tout cas, un grand merci à Us_30.
Bonne chance à tous ceux qui développe sur CATIA V5.

Amicalement.
Dorianovitch.
3
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
2 janv. 2008 à 21:39
Bonsoir,

Appeler du VBS à partir de VBA (ou autre) n'est pas possible si on prend ton vocabulaire à la lettre. JE veux dire en voulant récupérer un paramètre d'une fonction, par exemple et poursuivre avec VBA. PAR contre, on peut très bien lancer l'exécution d'un VBS, comme tout autre application. Pour cela, regarde du côté de l'instruction SHELL... UNE autre solution, c'est de récrire les fonctions de VBS dans VBA... dans la majorité des cas un copier/coller peut suffire...

Amicalement,
Us.
0
dorianovitch Messages postés 6 Date d'inscription lundi 26 novembre 2007 Statut Membre Dernière intervention 10 janvier 2008
3 janv. 2008 à 07:06
Bonjour,

Merci pour ta réponse, mes recherches m'ont effectivement donné des éléments autour de l'instruction Shell. Ceci dit, je n'arrive pas à faire fonctionner cette instruction.

Je m'aperçois maintenant que mon premier post n'était pas tout-à-fait complet, car je recherche justement à "lancer" du VBS (ou dans mon cas, plus du CATScript!) depuis du VBA pour justement ne pas avoir à ré-éditer des Scripts VBS en VBA! (Car malheureusement, un copier/coller ne suffit pas toujours! Et dans mon cas, sur CATIA V5, ça ne fonctionne pas du tout!)

Donc, pour l'instruction Shell, j'essaie des choses comme cela:

Sub monshell()
   Dim shell As Object: Set shell = CreateObject("Wscript.shell")
   shell.Run "c:\test.vbs"
End Sub

Mais ça ne fonctionne pas.

Quelqu'un aurait-il des éléments plus précis sur l'instruction Shell?

Merci par avance.

Amicalement.

Dorianovitch.
0
Rejoignez-nous