audemorel Posté(e) le 25 avril 2007 Posté(e) le 25 avril 2007 Bonjour, J'avais une macro sous Windows qui fonctionnait avec la fonction Msgbox pour poser une question oui non... Seulement ma macro doit aussi fonctionner sous Unix et ca ne marche pas... Qu'est-ce que je dois utiliser? Ma macro est en VBScript. Est-ce que en CATScript ca marcherait mieux? merci d'avance [Edité le 25/4/2007 par audemorel]
marc54 Posté(e) le 25 avril 2007 Posté(e) le 25 avril 2007 En théorie msgbox doit fonctionner sur Unix. Mais peut-être plus limité : problème de ( ou de "", moins d'arguments ...Le mieux est que tu trouves une doc sur VBScript, avec un descriptif exact des syntaxes. Faut pas utiliser CATScript. Marc Marc http://www.3dsys.fr
gawel Posté(e) le 25 avril 2007 Posté(e) le 25 avril 2007 Salut, de mémoire, il faut utiliser la syntaxe suivante: Message ("blablabla") Tu peux y indiquer des valeurs dedans: Message ("blablabla #", nomdelavaleur) par contre, pour afficher un oui ou un non, il faut passer par le VBA je pense, à moins que l'on peut utiliser un autre type de fonction type inputbox, mais là je ne peux t'aider au-delà.J'ai commencé par programmer en catscript et vbscript, mais je me suis vite rendu compte qu'il fallait passer par le VBA (après c'est le CAA....) Bon courage Gawel
audemorel Posté(e) le 26 avril 2007 Auteur Posté(e) le 26 avril 2007 Voilà ma macro : Sub CATMain() Set partDocument1 = CATIA.ActiveDocument ' Choix du chemin par l’utilisateur chemin = CATIA.FileSelectionBox("Enregistrer sous", "*.model", CatFileSelectionModeSave) If (chemin = "") Then Action = vbCancel ' Vérification ElseIf (CATIA.FileSystem.FileExists(chemin) Or CATIA.FileSystem.FileExists(chemin+".model")) Then Action = Msgbox ("Le fichier "+chemin+" existe déjà ! Voulez-vous le remplacer ?", vbQuestion+vbYesNo, "Enregistrer sous") If (Action = vbNo) Then Action = vbCancel Else Action = vbOK End If Else Action = vbOK End If ' Création du fichier If (Action = vbOK) Then CATIA.DisplayFileAlerts = False partDocument1.ExportData chemin, "model" End If End Sub Elle permet donc d'enregistrer un fichier en .model, en vérifiant si on ne va pas écraser un fichier existant...Elle marche très bien sous Windows mais sous Unix, il enregistre sans se poser de question... Si le fichier existe déjà, il l'ecrase sans même afficher le message d'alerte... Pourtant ma fonction a l'air correctement codée. J'ai pris pour exemple, une des macros fournie dans l'aide de Catia...
audemorel Posté(e) le 26 avril 2007 Auteur Posté(e) le 26 avril 2007 Quand au VBA, je ne peux pas l'utiliser puisque je ne peux pas lancer de macro en VBA sous Unix...
marc54 Posté(e) le 26 avril 2007 Posté(e) le 26 avril 2007 C'est quoi ton Unix ? Aix, Solaris ou hpux ? Tu n'as pas de message d'erreur ? Es-tu essayé de faire une petite macro avec juste le msgbox ? marc Marc http://www.3dsys.fr
audemorel Posté(e) le 26 avril 2007 Auteur Posté(e) le 26 avril 2007 Ce sont des stations HP... Sinon non je n'ai aucune message d'erreur. Ca écrase le fichier existant sans rien demander... Et non je n'ai pas testé avec juste le msgbox. C'est un peu compliqué. Perso je bosse sous Windows mais à terme ma macro devra être livrée à des gens qui travaillent sous Unix... Je ne peux donc pas leur faire tester tous les 4 matins... Mais je suis d'accord, ca serait beaucoup plus pratique...
audemorel Posté(e) le 26 avril 2007 Auteur Posté(e) le 26 avril 2007 Ce sont des stations HP... Sinon non je n'ai aucun message d'erreur. Ca écrase le fichier existant sans rien demander... Et non je n'ai pas testé avec juste le msgbox. C'est un peu compliqué. Perso je bosse sous Windows mais à terme ma macro devra être livrée à des gens qui travaillent sous Unix... Je ne peux donc pas leur faire tester tous les 4 matins... Mais je suis d'accord, ca serait beaucoup plus pratique...
audemorel Posté(e) le 27 avril 2007 Auteur Posté(e) le 27 avril 2007 J'ai trouvé comment la faire fonctionner, sous unix, il préfère que j'utilise 4 plutot que vbYesNo et 7 pour vbNo...Donc ca fonctionne... Sinon j'avais encore une question... Est-il possible de mettre plusieurs lignes en commentaires sans mettre une apostrophe devant chaque ligne... En C, on peut utiliser /* pour commencer et */ pour finir, au lieu de // devant chaque ligne... Je me demandais donc s'il y avait qqch de similaire en VB...
audemorel Posté(e) le 27 avril 2007 Auteur Posté(e) le 27 avril 2007 J'ai trouvé comment la faire fonctionner, sous unix, il préfère que j'utilise 4 plutot que vbYesNo et 7 pour vbNo...Donc ca fonctionne... Sinon j'avais encore une question... Est-il possible de mettre plusieurs lignes en commentaires sans mettre une apostrophe devant chaque ligne... En C, on peut utiliser /* pour commencer et */ pour finir, au lieu de // devant chaque ligne... Je me demandais donc s'il y avait qqch de similaire en VB...
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