sechanbask Posté(e) le 7 août 2007 Posté(e) le 7 août 2007 Bonjour,J'ai un problème que j'ai posté en premier ici : http://www.cadxp.com/sujetXForum-15751.htm[surligneur]Mais il semblerait que le problème viennent en fait du lancement LISP de la macro VBA.En effet, le texte d'information à destination de l'utilisateur se répète: si je lance la commande sans le lisp, j'ai dans la ligne de commande et la ligne dynamique (acad2006) ce que je désire à savoir : "Veuillez entrer la largeur de la réservation :". [/surligneur] Mais si je lance avec le lisp, j'ai dans la ligne de commande : "Veuillez entrer la largeur de la réservation :", et en ligne dynamique j'ai "Veuillez entrer la largeur de la réservation :Veuillez entrer la largeur de la réservation :" .Je vous livre donc le code de lancement LISP en espérant que vous puissiez m'aider: (defun c: DMN() (setvar "cmdecho" 0) (command "-vbarun" "PROJET.DVB!INSAUTO.DMN") (setvar "cmdecho" 1) (princ) ) et le code VBA même si pour certains c'est du charabia (comme l'est le lisp pour moi...) Sub DMN() Dim Largeur As String Largeur = ThisDrawing.Utility.GetString(True, "Veuillez entrer la largeur de la réservation :") Largeur = ThisDrawing.Utility.GetString(True, "(princ)") MsgBox "La largeur de la réservation est de : " & Largeur & " cm." & vbCr End Sub Un certain winfield m'a suggeré ça : Je crois qu'il faut jouer avec une variable AutoCAD (un truc simple comme en MSDOS "ECHO OFF" ... je n'ai plus le nom de cette variable en tête) mais je n'en suis pas sûr.[Edité le 9/9/2007 par sechanbask] [Edité le 13/9/2007 par sechanbask] ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
sechanbask Posté(e) le 10 septembre 2007 Auteur Posté(e) le 10 septembre 2007 Je vous préviens tant que je serais de ce monde, je rafraichirais ce message jusqu'à l'obtention d'une solution... j'en fous je suis fou... ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
Didier-AD Posté(e) le 12 septembre 2007 Posté(e) le 12 septembre 2007 Salut,et si tu lances ta macro VBA avec AutoCAD et non pas avec le LISP, est-ce que le problème se produit également ? parce que dans ce cas, il faudrait voir du coté de ta macro....
sechanbask Posté(e) le 13 septembre 2007 Auteur Posté(e) le 13 septembre 2007 Si tu pose cette question, c'est que j'ai pas été super clair ou tu n'as bien lu mon poste : voir le texte surligné du sujet... mais je vais quand même refaire l'explication pour ceux qui vont me dire mais pourquoi tu lances ta commande avec du LISP...Si je lance mon VBA sans le lisp, une seule invite à l'utilisateur apparait... C'est le Lisp + VBA qui plante mais je suis obligé de procéder ainsi pour pour relancer du VBA d'un clic droite rapide ou ESPACE ou ENTRER selon les configurations...Il quand même à noter qu'une partie de mes collègues vont déjà être contents car le problème est résolu pour ceux qui n'utilise que la ligne de commande classique car le texte n'apparait qu'une seul fois, mais j'ai pas de solution pour ceux qui utilisent la ligne dynamique... y'a un gros problème aussi c'est que je suis super nul en LISP... et que je ne me vois même pas faire en lisp le quart de ce que je fais en VBA... le code VBA pour que quelqu'un puisse me confirmer que ça ne vienne pas de là:Sub DMN() Dim Largeur As String Dim texte As String Largeur = "" texte = "" texte = "Veuillez entrer la largeur de la réservation :" Largeur = ThisDrawing.Utility.GetString(True, texte) texte = "" MsgBox "La largeur de la réservation est de : " & Largeur & " cm." & vbCr Largeur = "" End Sub [Edité le 13/9/2007 par sechanbask] ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
sechanbask Posté(e) le 30 septembre 2007 Auteur Posté(e) le 30 septembre 2007 Help ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
sechanbask Posté(e) le 7 septembre 2008 Auteur Posté(e) le 7 septembre 2008 toujours en quète si quelqu'un sait comment résoudre ce problème... ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
didier Posté(e) le 8 septembre 2008 Posté(e) le 8 septembre 2008 Bonjour, désolé de ne pas avoir vraiment compris le souci je ne sais pas le reproduire, donc ... amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
sechanbask Posté(e) le 8 septembre 2008 Auteur Posté(e) le 8 septembre 2008 tu as déjà lancé du VBA avec un lisp ? si oui est-ce que ton VBA agissait avec le prompt ? si oui est-ce que tu as des textes en double ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
ASTERIXII Posté(e) le 8 septembre 2008 Posté(e) le 8 septembre 2008 Pour ma part, je lances directement les macro VBA depuis un bouton du menuDans la personnalisation du bouton, au niveau de la macro je place le code suivant: -vbarun "NETTOYEUR.Lancer_choix" Attention, pas de C^C^
didier Posté(e) le 8 septembre 2008 Posté(e) le 8 septembre 2008 coucou oui, je lance des VBA via des micro lisp tout fonctionne bien, c'est pour ça que je ne comprends pas ton souci amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
sechanbask Posté(e) le 8 septembre 2008 Auteur Posté(e) le 8 septembre 2008 c'est pas pratique pour nous car on utilise tous les alias pour gagner de l'espace écran et du temps !! voir l'erreur ci joint :http://www.cijoint.fr/cjlink.php?file=cj200809/cijq2a9GsH.jpg [Edité le 8/9/2008 par sechanbask] ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
sechanbask Posté(e) le 6 octobre 2008 Auteur Posté(e) le 6 octobre 2008 Merci à didier : La solution est la suivante : il faut mettre vbCrLf & dans l'argument du texte visible à l'utilisateur. Ainsi, on force autocad à sauter une ligne avec la commande. comme c'est uen erreur entre Lisp+VBA, il écrit son erreur, puis on saute une ligne et il écrit le texte qui nous intéresse !!! c'est presque transparent pour l'utilisateur lambda. Bon moi j'ai un collègue qui va le voir car il regarde souvent la ligne de commande sur plusieurs lignes..... voici mon exemple corrigé : Sub DMN() Dim Largeur As String Dim texte As String texte = "" Largeur = "" [b]Largeur = ThisDrawing.Utility.GetString(True, vbCrLf & "Veuillez entrer la largeur de la réservation en cm :")[/b] MsgBox "La largeur de la réservation est de : " & Largeur & " cm." & vbCr End Sub Merci beaucoup à tous d'avoir cherché... ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
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