XGX4 Posté(e) le 21 avril 2011 Posté(e) le 21 avril 2011 Bonjour, Je cherche comment lancer une macro CATScript à partir d'une macro VBA. J'utilise la commande If optdessin.Value = True Then CATIA.SystemService.ExecuteProcessus ("C:\Documents and Settings\Mes documents\DESSIN.CATScript") End If mais rien ne se passe... est ce que quelqu'un aurait une solution? :casstet: par avance, merci XGX4 XGX4 indocti discant et ament meminisse periti(Que les ignorants apprennent, que ceux qui savent se souviennent)
marc54 Posté(e) le 21 avril 2011 Posté(e) le 21 avril 2011 Essaie avec CATIA.SystemService.ExecuteScript je n'ai jamais utilisé,mais tu devrais trouver des exemples dans la doc ou sur le net. Marc http://www.3dsys.fr
XGX4 Posté(e) le 21 avril 2011 Auteur Posté(e) le 21 avril 2011 Ben cela ne fonctionne pas... Private Sub cmdmacro_Click() Dim params() Dim oFilePath, oFileName As String oFilePath = "W:\CAO\Macros" oFileName = "DESSIN.CATScript" If optdessin.Value = True Then 'CATIA.SystemService.ExecuteScript ("W:\CAO\Activite\CATIAV5\ADMIN\site_TM\Macros\Tuyauterie\NEW_COORD_PTS_CANA_DESSIN.CATScript") Call CATIA.SystemService.ExecuteScript(oFilePath, catScriptLibraryTypeDocument, oFileName, "CatMain", params) End If End il y a un message : :mad: Compile error:Function or interface marked as restricted, or the fonction uses an Automation type not supported in Visual Bsic. de quoi cela peut il bien venir??? merci XGX4 XGX4 indocti discant et ament meminisse periti(Que les ignorants apprennent, que ceux qui savent se souviennent)
marc54 Posté(e) le 21 avril 2011 Posté(e) le 21 avril 2011 c'est une erreur très classique qu'on retrouve très souvent en VBA. Une sorte de bug qui apparait sur certaines fonctions.Pour corriger, il suffit de mettre en commentaire le type de la variable sur laquelle l'erreur apparait. Un exemple bidon : tu as :Dim maVariable As xxxxx Et l'erreur apparait sur cette ligne :set machin = maVariable.méthode (am,stram,gram) La solution est d'enlever le type de maVariable :Dim maVariable 'As xxxxx Par contre, sur ton exemple je ne vois pas trop ce qu'il faut détyper. Ou est l'erreur ? As-tu typé la variable CATIA ? Marc http://www.3dsys.fr
XGX4 Posté(e) le 22 avril 2011 Auteur Posté(e) le 22 avril 2011 Non la variable CATIA n'est pas typée. l'erreur se trouve sur Call CATIA.SystemService.ExecuteScriptpuis la "flèche jaune" pointe sur Private Sub cmdmacro_Click() XGX4 XGX4 indocti discant et ament meminisse periti(Que les ignorants apprennent, que ceux qui savent se souviennent)
marc54 Posté(e) le 22 avril 2011 Posté(e) le 22 avril 2011 bizarre...Essaie de simplifier ton programme en ne mettant qu'une seule ligne, c'est à dire en intégrant tous les parametres sans passer par variable, et en virant le test. Ou alors l'erreur serait dans le CATscript ? Je suppose que si tu exécutes le catscript il n'y a pas d'erreur. Sauf que là c'est VBA qui l'interprète, alors peut-être que c'est un Dim du catscript qui pose problème. As tu essayé de reprendre le contenu du catscript et de le mettre en VBA ? Faut éviter le CATScript. Le mieux c'est .Net, VBA ou vbscript au pire. Marc http://www.3dsys.fr
XGX4 Posté(e) le 22 avril 2011 Auteur Posté(e) le 22 avril 2011 Problème résolu: 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 Même en simplifiant cela ne fonctionne pas.Il n'y a pas de problème dans l'execution du CATScript. Pour ce qui est du transfert CATScript vers VBA j'ai des problèmes en ce qui concerne la création de formule et de relation et ce sera une de mes prochaines question. en tout cas Marc, merci pour ton aide.PS: ton site est vraiment bien... XGX4 XGX4 indocti discant et ament meminisse periti(Que les ignorants apprennent, que ceux qui savent se souviennent)
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant