Ellionel Posté(e) le 28 novembre 2006 Posté(e) le 28 novembre 2006 Bonjour , je suis en train de rediger une macro en vba , et je bute sur le fair de sauvegarder le dessin en cours , si je fais "ThisDrawing.Save " il plante , car je pense que le fichier est encours d'utilisation .Je veux l'enregister dans un dessin temporaire puis fermer mon premier fichier et ensuite le reenregistrer ..Voici le début : " If MsgBox("Voulez éffacer le dessin existant ?", _ vbYesNo) = vbYes Then ThisDrawing.SaveAs ("c:\dessinencours_old.dxf")'de plus la fonction pour créer un repertoire , svp Merci
jalna Posté(e) le 28 novembre 2006 Posté(e) le 28 novembre 2006 SalutJe suis pas doué en vba mais je vois plutot cela comme début Dim Msg, Style, Title, Response, MyString Msg = "Souhaitez-vous sauvergarder?" ' Définit le message. Style = vbYesNo + vbCritical + vbDefaultButton2 ' Définit les boutons. Title = "Sauvegarde dessin en cours" ' Définit le titre. ' Affiche le message. Response = MsgBox(Msg, Style, Title) If Response = vbYes Then ' L'utilisateur a choisi Oui. MyString = "Oui" ' Effectue une action. ThisDrawing.SaveAs ("c:\dessinencourse_old") UserForm1.Hide ' Ferme la Form ( par défaut userform1). Else ' L'utilisateur a choisi Non. MyString = "Non" ' Effectue une action. UserForm1.Hide ' Ferme la Form ( par défaut userform1). End If Bon courage pour la suite... "Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."J-C Van DammeMon forum : http://plexus.forumactif.org/
Ellionel Posté(e) le 28 novembre 2006 Auteur Posté(e) le 28 novembre 2006 Merci pour cette réponse , le probleme vient que les dessins sont ne reseau et si le dessin est vérrouillé au moment de l'enregistrment , il ne veux pas 'enregistrer .Si vous avez une idée , je ne dis pas nom . Pour creer un repertoire , je passe par une commande fso soit : Dim fsoSet fso = CreateObject("scripting.filesystemObject")fso.createfolder ("c:\Nouveaux repertoire\) A+
Patrick_35 Posté(e) le 28 novembre 2006 Posté(e) le 28 novembre 2006 Saluten vlisp u (vla-save (vla-get-activedocument (vlax-get-acad-object))) fonctionne parfaitement :o Sinon, pourqoui utiliser une fonction vbscript alors que tu as la fonction mkdir @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Ellionel Posté(e) le 30 novembre 2006 Auteur Posté(e) le 30 novembre 2006 Re bonjour , Je suis venu à bout de mon probleme , a savoir enregister en vba un dessin deja ouvert .par ex; Voux ouvrez un plan , le modifer puis le reenregistrer . La commande 'thisdrawing.save" ne marche pas car le fichier est vérouille par autocad . Donc voici ma solution : 'Tester l'existance de ce fichier If Dir("non du fichieré, vbNormal Or vbReadOnly Or vbHidden Or vbSystem Or vbArchive) <> "" Then 'J'affiche un message si le fichier existe If MsgBox("Voulez vous Enregistrer sur le meme N° de plan ?", _ vbYesNo) = vbYes Then ' Si oui Enregistre le dessin, puis zoom SendKeys "_qsave{ENTER}" ThisDrawing.Application.ZoomAll Voila , sinon je fais thisdrawing.saveas ("nouveaux non ") .. @+
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