Patrick_35 Posté(e) le 5 mars 2004 Posté(e) le 5 mars 2004 Puisqu’il faut lancer le sous forum sur le visual lisp, j’ai un sujet que je n’ai malheureusement pas eu le temps d’approfondir :( Le but serai d’appeler Excel depuis autocad avec l’ouverture d’un fichier xls, de choisir sa page , puis de lire ou écrire une valeur dans un cellule donnée avec la possibilitée de faire une sauvegarde ou une impression de la feuille Excel, toujours depuis Autocad @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
didier Posté(e) le 5 mars 2004 Posté(e) le 5 mars 2004 BonjourIl me semble plus aisé de passer par le VBA, qui lui est reconnu par les deux logicielset facilite le passage d'infos de l'un à l'autre.je reste en ligne pour te filer un coup de main, le cas échant.amicalementdidier :yltype: Éternel débutant... Mon site perso : Programmer dans AutoCAD
Patrick_35 Posté(e) le 5 mars 2004 Auteur Posté(e) le 5 mars 2004 Merci Didier de ton aide, mais autant j'arrive à me débrouiller en lisp :) , autant je suis une bille en vba :( , ça me paraissait plus simple pour moi @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
dr.loveless Posté(e) le 15 avril 2004 Posté(e) le 15 avril 2004 Salut Ayant déjà fais qq prog liant autocad à Excel, je ne pense pas que celà soit très difficile. Je verrais demain, si mon patron me le permet, comment on peut faire! salutations !! Le DOC
Serge Posté(e) le 13 août 2004 Posté(e) le 13 août 2004 Salut, À mon avis, apprendre la sémentique de Visual Lisp pour Excel est beaucoup plus compliquée que de le faire directement en VBA. Autre chose: AutoLISP est un langage à exécution séquentielle et sans support pour les erreurs (ou presque) sans si on définit *error*, ce qui entraine la fin de l'éxécution le cas échéant. Les possibilités de débogage sont nulles. En VBA, il existe des instructions pour trapper les erreurs et ne pas tout perdre. Par exemple: ON ERROR RESUME NEXT ou ON ERROR GOTO xxxx. Le plus débile est que je crois que les concepteurs de VB on voulu qu'on traite les erreurs non pas comme des erreurs mais comme des événements normaux.
Patrick_35 Posté(e) le 16 août 2004 Auteur Posté(e) le 16 août 2004 SalutJe débute en visual lisp et je vient de reussir à écrire ce que je voulais dans une cellule. Je reconnais que ce n'est pas simple, loin de là. Essayer de comprendre entre les vla-machin, les vlax-truc, les appels aux fonctions de l'appliclations et aux propriètés d'autres fonctions. Je mélange et je regarde ce qu'il en sort ;) . Je plaisante, mais ce n'est pas évident. Mais quand ça marche, c'est génial :P . Voir autocad récupérer ses infos pour les rebalancer dans excel, ça m'impressionne autant que ceux qui s'en serventMais il me reste encore une chose que je n'arrive pas à faire, c'est de faire un save tout simple de mon fichier à partir d'un workbooks. Je réussis bien un saveas, mais si le fichier existe déjà, je n'arrive pas à passer outre de la confirmation d'excel. Il y a bien la possibilité d'effacer ce fichier auparavant, mais bon :( A, encore une chose, je traite aussi les erreurs et je suis surpris d'une chose. On a tout le langage, les doc et les exemples en anglais, et pour traiter les erreurs en français ? @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Serge Posté(e) le 16 août 2004 Posté(e) le 16 août 2004 Salut, Avec VBA, tu essaie de te connecter à Excel. S'il n'est pas ouvert, tu reçoit une erreur pardonnable donc tu sais que tu pourras le fermer une fois tout complété. Excel est-il disponible (suite à une boite de dialogue ouverte, impression en cours, etc.) ?Tu essaie ensuite d'ouvrir ton document existant. Était-il chargé? L'onglet courant était-il le bon? Il y a tant d'événements imprévisibles que VBA peut gérer. Ceci est impossible à faire en Visual Lisp (ou de façon hyper-compliqué), même avec des (vl-catch-all-error-p ...) Serge
starote Posté(e) le 7 janvier 2005 Posté(e) le 7 janvier 2005 Essaye ca, c une macros qui sert a exporter les valeurs d'attribut des bloc d'un calque (ou de tus le dessin) vers un fichier excel: '' Extraction des attributs du calque collaborateurs : Sub ExtractCollabo() Dim Excel As Excel.Application Dim ExcelSheet As Object Dim ExcelWorkbook As Object Dim RowNum As Integer Dim Header As Boolean Dim elem As AcadEntity Dim Array1 As Variant Dim Count As Integer ' Launch Excel. Set Excel = New Excel.Application ' Create a new workbook and find the active sheet. Set ExcelWorkbook = Excel.Workbooks.Add Set ExcelSheet = Excel.ActiveSheet ExcelWorkbook.SaveAs "CollaborateursAttr.xls" RowNum = 1 Header = False ' Iterate through model space finding ' all block references. For Each elem In ThisDrawing.ModelSpace With elem ' When a block reference has been found, ' check it for attributes If StrComp(.EntityName, "AcDbBlockReference", 1) _ = 0 Then If .Layer = "-07-NOMS-PERSONNES" Then If .HasAttributes Then ' Get the attributes Array1 = .GetAttributes ' Copy the Tagstrings for the ' Attributes into Excel For Count = LBound(Array1) To UBound(Array1) If Header = False Then If StrComp(Array1(Count).EntityName, _ "AcDbAttribute", 1) = 0 Then ExcelSheet.Cells(RowNum, _ Count + 1).Value = _ Array1(Count).TagString End If End If Next Count RowNum = RowNum + 1 For Count = LBound(Array1) To UBound(Array1) ExcelSheet.Cells(RowNum, Count + 1).Value _ = Array1(Count).TextString Next Count Header = True End If End If End If End With Next elem Excel.Application.QuitEnd Sub
Patrick_35 Posté(e) le 7 janvier 2005 Auteur Posté(e) le 7 janvier 2005 Merci Starote, mais j'ai évolué depuis @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
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