Sforzendo Posté(e) le 12 juillet 2012 Posté(e) le 12 juillet 2012 Bonjour tout le monde,Voila, j'ai un soucis avec une de mes macros dont je n'arrive pas à me sortir... En gros, dans notre société on dispose d'un emplacement sur le serveur dans lequel sont rangées toute les macros pour Catia.Et donc elles sont toutes composées comme ceci:-L'executable au format CatScript qui sont tous dans le même dossier et qui vont incrémenter une base de donnée puis surtout lancer le programme utile.-Et le programme utile au format CatVba qui est rangé dans un dossier spécifique avec tout ce qu'il lui faut pour fonctionner correctement (Fichier Catia, Excel,...) Mon développement (Dans le CatVba) effectue une série d'opération dont celui qui marche moyens qui est un désassemblage lié à un SendKey. AppActivate "CATIA V5" CATIA.RefreshDisplay = True For A = 1 To B: Next A SendKeys "{enter}", True part1.Update Et voici le code de lancement de la macro (CatScript):Dim params() CATIA.SystemService.ExecuteScript"c:\user\popol.catvba", catScriptLibraryTypeVBAProject, "Popol", "CATMain", params Voici le truc étrange:Le code fonctionne très bien lorsqu'il est lancé depuis l'éditeur Visual Basic.Mais lorsqu'il est lancé depuis l'executable... tout fonctionne SAUF le Sendkey...Et rien n'y fait, tempo de 5s, boucle avec 300000 sendkey, rien... Comme s'il était bloqué. (Catia V5R19)
Sforzendo Posté(e) le 16 juillet 2012 Auteur Posté(e) le 16 juillet 2012 Ou alors un moyen de contourner l'erreur en évitant l'utilisation du SendKey?Mais je ne vois pas trop comment faire un désassemblage sans cliquer Ok dans la ch'tite fenêtre...
Sforzendo Posté(e) le 24 juillet 2012 Auteur Posté(e) le 24 juillet 2012 Alors j'avance doucement mais je ne sais pas si c'est la bonne direction.Il semblerai que le problème vienne des fenetres actives. Quand je lance le programme depuis VB, c'est l'éditeur qui est actif et donc il déroule tout son code. Or quand je le lance via l'executable, le code se bloque sur "CATIA.StartCommand ("Désassemblage")"Le code à la suite ne va pas être pris en compte. Et donc pas de SendKeys... AppActivate "CATIA V5" CATIA.StartCommand ("Désassemblage") CATIA.RefreshDisplay = True SendKeys "{enter}", True DoEvents Et la question qui tue, il y a t'il un moyen d'ouvrir l'éditeur VisualBasic et le rendre actif avec un code VB??Avec une fonction du genre AppActivate??? Pour info:http://www.gtwiki.org/mwiki/index.php?title=Tricks_to_using_SendKeys_in_DP_VBAhttp://v5vb.wordpress.com/2010/01/20/startcommand/
Sforzendo Posté(e) le 2 août 2012 Auteur Posté(e) le 2 août 2012 Pour celui qui passera par la, j'ai trouvé la solution:Il n'y en a malheuresement pas... Extrait de la doc DS sur la commande :Sub StartCommand(CATBSTR iCommandId)Starts a CATIA command. Role:This method starts a command and executes it untill its first interaction. Please notice interactions such as selections you could add after in your macro will not work. StartCommand is useful to execute one-shot (not interactive) commands, it is not safe for interactive commands.Parameters: iCommandId The id of the command to be started. This id can be the name of the command or its alias. Il faut donc passer par une API...
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