DenisHen Posté(e) le 3 novembre 2021 Posté(e) le 3 novembre 2021 Salutation au forum. Je suis en train de créer un classeur Excel qui, en quelques cliques, pourra créer des centaines de calques dans AutoCAD (directement) en quelques secondes. Seriez-vous intéressés ? Pensez-vous que je devrais continuer ? Sachant que mes primo-test créent des centaines de calques (avec couleur, type de ligne, options d'impression...) en trois ou quatre secondes... Avec même une option de filtre de propriété de calques... Devrais-je continuer à élaborer ce classeur ? Cordialement au groupe... Denis H. Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
CTZen Posté(e) le 3 novembre 2021 Posté(e) le 3 novembre 2021 Hello ! Pour le moment j'utilise cette méthode pour en faire à la volée à partir d'un DQE : Mais en effet un truc plus complet serait franchement pas mal ! AutoCAD Map 3D 2025 Covadis 18.3c + AutoPiste Windows 11 Famille v.24H2 - 64 bits Toujours à l'affût des bonnes astuces
DenisHen Posté(e) le 3 novembre 2021 Auteur Posté(e) le 3 novembre 2021 Salut CTZen, Oui, mais mon truc est de construire un ensemble de calque (libre de plusieurs centaines), et l'intégrer directement dans AutoCAD via une suite de VBA. Cordialement... Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
DaWeeD_Gab Posté(e) le 4 novembre 2021 Posté(e) le 4 novembre 2021 Hello DenisHen, très intéressé en effet ! je t'encourage à continuer! J'en profite pour te remercier ainsi que tous le scripteurs qui nous rendent la vie plus facile ! Autocad Map 3D 2025 - Covadis version 18.3b - Windows Onze "Si j'avais du lard je vous ferais une omelette au lard mais j'ai pas d'oeuf..." Coluche
Curlygoth Posté(e) le 4 novembre 2021 Posté(e) le 4 novembre 2021 c'est faisable (et reprend notre conversation sur signal :p) Citation Sachant que mes primo-test créent des centaines de calques (avec couleur, type de ligne, options d'impression...) en trois ou quatre secondes... Fais directement dans autocad avec lecture d'une basse de données tu passera à moins d'une seconde... mais je te le redis : c'est mieux de générer à la volée ! sinon ca ressemble à ca : (j'ai écris ici pas testé) mais l'idée c'est d'ouvrir ton classeur aller dans ta feuille puis dans tes cellules mais je te l'ai dit plusieurs fois ça charge ton dessin pour rien... Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks("NOM_CLASSEUR") Set xlSheet = xlBook.Worksheets("NOM_FEUILLE") C = NUMERO_COLONNE_A_EXTRAIRE For L = 1 to X 'ta derniere ligne Calque à creer = xlSheet.Cells(L,C) Set CALQUE = ThisDrawing.Layers.Add(Calque à creer) next i Citation Mais en effet un truc plus complet serait franchement pas mal ! je suis la ^^ J'ai deja une fonction pour générer calque avec les propriétés faut aller voir l'aide il y a tout ^^ pour le filtre de calque j'ai proposé dans un autre post qui contourne la gestion des code DXF... Mon site Web (en cours de construction) : Site DA-CODE de @didier
didier Posté(e) le 4 novembre 2021 Posté(e) le 4 novembre 2021 Bonjour @DenisHen Comme bien souvent j'ai du mal à te suivre, donc je reprends mon antienne : Quelle est la question ? Dans quelle mesure on peut t'aider ? Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
rebcao Posté(e) le 4 novembre 2021 Posté(e) le 4 novembre 2021 Bonjour Denis, Le plus simple c'est de générer un SCRIPT à partir de ta liste de calque ! Puis, exécuter le SCRIPT depuis AutoCAD ou AutoCAD LT... Christian 1 Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
DenisHen Posté(e) le 6 novembre 2021 Auteur Posté(e) le 6 novembre 2021 Bonjour à la communauté, et grand merci à vous pour vos remarques et votre intérêt pour mon projet. @Curlygoth : j'ai opté de contrôler AutoCAD depuis Excel car, à mes yeux, c'est plus pertinent (et plus facile en certains points) que, depuis AutoCAD, aller chercher un classeur, puis une feuille et importer ensuite son contenu, alors qu'Excel était probablement ouvert quelques secondes auparavant Et que faire des types de ligne non chargés dans le DWG. De plus, il y a quelques macros contenues dans ce classeur (import des types de ligne du fichier ouvert dans AutoCAD, incrémentation d'une partie du nom des calques...) qui aident à construire ces calques. J'ai donc fais toutes mes macros dans Excel (qui existait déjà partiellement). Je suis aussi conscient que développer mon projet dans AutoCAD m'éviterait certains problèmes, comme connaitre, depuis Excel, les éventuelles versions d'AutoCAD installées et/ou laquelle est en cours d'exécution. Mais si je tombe dans une impasse, je passerais en DVB (qui est aussi existant partiellement) mais ça ne fonctionnera pas sous LT. Pour nos discutions dans Signal, j'ai eu un gros pépin sur mon ordi, j'ai du le formater et tout installé à nouveau, j'ai donc perdu notre discussion 🤕, mais j'y suis de nouveau. @didier : je n'ai pour l'instant que le besoin de savoir si mon projet servira à plusieurs (voir plus) afin de le développer dans cette optique (pour des AutoCAD que je n'ai pas, simplifier mes macros, créer des infobulles...). J'analyserais aussi les commentaires afin de les inclure dans le projet. @rebcao : ton idée est très bonne (tu en avais déjà proposé l'idée), et j'avais déjà un classeur gardé dans mes tiroirs, mais j'avais rencontré un problème que je n'avais pas pu résoudre à l'époque : la création d'un calque avec un type de ligne absent du DWG. Mais je vais maintenant me pencher sur la question (en créant un bouton dédié par exemple). Et comme je l'ai dis à Curlygoth, ta solution m'éviterait ce problème de type de ligne et de version d'AutoCAD. Voilà chers collègues, vous en savez maintenant un peu plus sur mon projet. Je peux vous le partager (MP, courriel...) si vous insistez lourdement 😀, mais ce n'est encore qu'un embryon et je doute qu'il vous serve à quelque-chose. Je le partagerais quand il sera plus fonctionnel. Encore merci pour votre aide et votre soutient. Bon week-end à tous. Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
didier Posté(e) le 6 novembre 2021 Posté(e) le 6 novembre 2021 Bonjour @DenisHen Soit ! Loin de moi l'idée d'insister, lourdement ou pas. Je vais suivre le sujet par tes messages sur le site... Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
DenisHen Posté(e) le 6 novembre 2021 Auteur Posté(e) le 6 novembre 2021 Bonjour @didier. Je n'en attendais pas moins de ta part. Je tente en ce moment de régler mon plus gros problème (dans ce post). Je ne suis pas certain d'avoir beaucoup de temps en ce moment (sauf les week-end), mais je continu sur ce projet, qui me tient à cœur. Amicalement. Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
DenisHen Posté(e) le 6 novembre 2021 Auteur Posté(e) le 6 novembre 2021 Salut @CTZen, Je viens de voir à nouveau ta vidéo avec une question, quelle est ta version d'Excel ? Est-elle antérieur à 2007 ? Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
DenisHen Posté(e) le 6 novembre 2021 Auteur Posté(e) le 6 novembre 2021 Re, J'ai oublié de préciser un petit truc à @Curlygoth. Si c'est pour créer une suite de calques dans un dessin et de sauvegarder après celle-ci dans un fichier "paramètre", il serait plus judicieux de passer, pour un nouveau dessin, soit par un DWT ou soit par DesignCenter. L'avantage d'un classeur unique est de réunir toutes ces suites dans un seul fichier (une par onglet) et de ce fait, on garde un seul classeur pour la totalité de toutes nos suite de calques, et ce, pour tout le monde et pour plusieurs années. Je pense qu'il est plus facile de ne gérer qu'un fichier plutôt qu'une multitude. Mais ce n'est que mon avis. Bien à toi, la communauté. Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
CTZen Posté(e) le 8 novembre 2021 Posté(e) le 8 novembre 2021 Le 06/11/2021 à 13:37, DenisHen a dit : Salut @CTZen, Je viens de voir à nouveau ta vidéo avec une question, quelle est ta version d'Excel ? Est-elle antérieur à 2007 ? Ce n'est pas ma vidéo, c'est une vidéo qui illustre la méthode que j'utilise pour créer des calques à la volée à partir d'une liste Ca fonctionne avec n'importe qu'elle version d'excel bien entendu. AutoCAD Map 3D 2025 Covadis 18.3c + AutoPiste Windows 11 Famille v.24H2 - 64 bits Toujours à l'affût des bonnes astuces
Curlygoth Posté(e) le 8 novembre 2021 Posté(e) le 8 novembre 2021 Citation depuis AutoCAD, aller chercher un classeur, puis une feuille et importer ensuite son contenu, alors qu'Excel était probablement ouvert quelques secondes auparavant Et que faire des types de ligne non chargés dans le DWG. De plus, il y a quelques macros contenues dans ce classeur (import des types de ligne du fichier ouvert dans AutoCAD, incrémentation d'une partie du nom des calques...) qui aident à construire ces calques. Alors c'est précisement la que tu te trompe ! c'est tekllement plus facile d'aller chercher un fichier et de le lire via vba autocad que de faire du excel vers autocad ! c'est pas vraiment plus compliqué mais en treme d'ergonomie tu n'as pas besoin d'aller sur excel pour faire des chose dans autocad qui sont native en VBA... Citation Si c'est pour créer une suite de calques dans un dessin et de sauvegarder après celle-ci dans un fichier "paramètre", il serait plus judicieux de passer, pour un nouveau dessin, soit par un DWT ou soit par DesignCenter. L'avantage d'un classeur unique est de réunir toutes ces suites dans un seul fichier (une par onglet) et de ce fait, on garde un seul classeur pour la totalité de toutes nos suite de calques, et ce, pour tout le monde et pour plusieurs années. Je pense qu'il est plus facile de ne gérer qu'un fichier plutôt qu'une multitude. Mais ce n'est que mon avis. Bien à toi, la communauté. Faux ! j'ai des clients et notre fonctionnement interne qui avec toutes les possibilités devrais avoisiner les 1000 calque et encore je suis gentil... j'ai UN module qui me génère les calques quand j'en est besoin ! je veux implanter un poteau eclairage ? ben le module va creer le calque pour les blocs eclairages avec son numero de départ par exemple... j'ai pas a le sélectionner ou mettre l'objet dans tout ce fait seul (encore une fois via autocad vba) et ca m'evite aussi de charger le dessin de calque que je n'utiliserais jamais... Citation L'avantage d'un classeur unique est de réunir toutes ces suites dans un seul fichier (une par onglet) et de ce fait, on garde un seul classeur pour la totalité de toutes nos suite de calques, et ce, pour tout le monde et pour plusieurs années. fait quelque chose de dynamique et d'intelligent tu n'en auras plus besoin... ou passe par une base de données tu auras un accès quasi instantanée Citation Je pense qu'il est plus facile de ne gérer qu'un fichier plutôt qu'une multitude. Oui UNE base de données Mon site Web (en cours de construction) : Site DA-CODE de @didier
DenisHen Posté(e) le 15 novembre 2021 Auteur Posté(e) le 15 novembre 2021 Salut @Curlygoth, effectivement, je me suis probablement trompé, et depuis longtemps peut-être, au sujet du VBA AutoCAD<->Excel... J'ai toujours pensé que, d'où que vienne le code VBA (d'AutoCAD ou d'Excel), sa rapidité serait la même. Mais tu me dis qu'il est plus "court" et plus "rapide", et voir plus simple de fouiller un classeur Excel depuis AutoCAD que de "contrôler" AutoCAD depuis Excel. Je te remercie pour cette remarque, bien que je ne comprend toujours pas pourquoi un TGV irait plus vite de Marseille à Paris et pas l'inverse. Je vais donc revoir la totalité de mon projet, qui va se diviser en deux grâce à toi (et à d'autres) et j'espère que tu me permettra de te solliciter afin d'améliorer mon code... Pour gérer une BD, Ok, mais laquelle ? Quelle format ? Car les accès à une BD est très galère à gérer (même si très rapide une fois la "communication établie"), surtout en automation... Aucun SQL ou autre BD n'ont encore trouvé la solution... Maintenant, si en quelque lignes tu me prouves que l'accès à une BD est simple et facilement programmable en VBA, je suis preneur... Bien à toi la communauté. Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
rebcao Posté(e) le 16 novembre 2021 Posté(e) le 16 novembre 2021 Bonjour Denis, Je t'ai fait une petite vidéo pour illustrer le principe de mon générateur de CALQUES via EXCEL... (5% AutoCAD / 95% EXCEL) Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
Curlygoth Posté(e) le 16 novembre 2021 Posté(e) le 16 novembre 2021 Citation , et voir plus simple de fouiller un classeur Excel depuis AutoCAD que de "contrôler" AutoCAD depuis Excel. ben completement ! Citation bien que je ne comprend toujours pas pourquoi un TGV irait plus vite de Marseille à Paris et pas l'inverse. sauf que tu monte vers Autocad ! et que tu ne descends pas vers tes données (ta base).... donc c'est pas tout a fait pareil ^^ la ou pour créer un calque dans excel tu vas avoir besoin de déclarer l'objet puis le fichiers puis le calque dans autocad tu fais QUE le calque ! Citation Pour gérer une BD, Ok, mais laquelle ? Quelle format ? Car les accès à une BD est très galère à gérer (même si très rapide une fois la "communication établie"), surtout en automation... Aucun SQL ou autre BD n'ont encore trouvé la solution... Maintenant, si en quelque lignes tu me prouves que l'accès à une BD est simple et facilement programmable en VBA, je suis preneur... Pour la BDD c'est toi qui choisi ! si tu veux faire du excel avant de faire de la BDD tu peux et tu verras : c'est vachement plus facile ! mais pour les BDD pour beaucoup faut passé par SQL... Ajout de la librairie Microsoft ADO Ext. X.X dor ddl and Security Les 2 premiers blocs dans module SYS_SQL et tu verras même si je ne connais pas tout en SQL je fais plein de chose avec ça : Je t'invite à te renseigner sur le module et le fonctionnement ADO pour comprendre le code tu verras, il n'est pas compliqué au final Citation Maintenant, si en quelque lignes tu me prouves que l'accès à une BD est simple et facilement programmable en VBA, je suis preneur... Content d'être là 😉 Function CHAMPS_ID() CHAMPS_ID = "N°" End Function Function TXT_OR_NUM(Valeur) On Error Resume Next Z = CDbl(Valeur) If Err.Number = 0 Then TXT_OR_NUM = Valeur Else TXT_OR_NUM = "'" & Valeur & "'" End If On Error GoTo 0 End Function Function AJOUT_CHAMP_ID_A_LA_LISTE(LISTE_CHAMPS) Dim TAB_LISTE() As Variant MAX_LISTE = UBound(LISTE_CHAMPS) + 1 ReDim Preserve TAB_LISTE(MAX_LISTE) For NUMERO_DE_LA_LISTE = LBound(LISTE_CHAMPS) To MAX_LISTE If NUMERO_DE_LA_LISTE = 0 Then TAB_LISTE(NUMERO_DE_LA_LISTE) = CHAMPS_ID Else TAB_LISTE(NUMERO_DE_LA_LISTE) = LISTE_CHAMPS(NUMERO_DE_LA_LISTE - 1) End If Debug.Print TAB_LISTE(NUMERO_DE_LA_LISTE) Next NUMERO_DE_LA_LISTE AJOUT_CHAMP_ID_A_LA_LISTE = TAB_LISTE End Function Function AJOUT_NUMERO_ENREGISTREMENT_A_LA_LISTE(LISTE_VALEUR, NUMERO_ENREGISTREMENT) Dim TAB_LISTE() As Variant MAX_LISTE = UBound(LISTE_VALEUR) + 1 ReDim Preserve TAB_LISTE(MAX_LISTE) For NUMERO_DE_LA_LISTE = LBound(LISTE_VALEUR) To MAX_LISTE If NUMERO_DE_LA_LISTE = 0 Then TAB_LISTE(NUMERO_DE_LA_LISTE) = CInt(NUMERO_ENREGISTREMENT) Else TAB_LISTE(NUMERO_DE_LA_LISTE) = LISTE_VALEUR(NUMERO_DE_LA_LISTE - 1) End If Debug.Print TAB_LISTE(NUMERO_DE_LA_LISTE) Next NUMERO_DE_LA_LISTE AJOUT_NUMERO_ENREGISTREMENT_A_LA_LISTE = TAB_LISTE End Function Dim enr As Recordset Dim base As Database Dim UsF As Object Dim TAB_VAL() As String Function LISTING_DU_CHAMP(CHEMIN_FICHIER_BDD, NOM_TABLE, NOM_CHAMP) Set base = DBEngine.OpenDatabase(CHEMIN_FICHIER_BDD) Set enr = base.OpenRecordset("SELECT DISTINCT `" & NOM_CHAMP & "` FROM `" & NOM_TABLE & "`ORDER BY `" & NOM_CHAMP & "` ASC") d = enr.RecordCount - 1 If d = -1 Then LISTING_DU_CHAMP = "" GoTo fin: Else End If ReDim TAB_VAL(d) ITE = 0 enr.MoveFirst Do TAB_VAL(ITE) = enr.Fields(NOM_CHAMP).Value ITE = ITE + 1 enr.MoveNext Loop Until enr.EOF = True enr.Close LISTING_DU_CHAMP = TAB_VAL fin: base.Close Set enr = Nothing Set base = Nothing End Function Function RESULTAT_LIRE(CHEMIN_FICHIER_BDD, NOM_TABLE, NOM_CHAMP_DEP, VALEUR_CHAMP_DEP, NOM_CHAMP_RETOUR) 'Retourne une liste !!!! CHEMIN_FICHIER_BDD = CHEMIN_BDD(CHEMIN_FICHIER_BDD) Set base = DBEngine.OpenDatabase(CHEMIN_FICHIER_BDD) If NOM_CHAMP_RETOUR = "" Then NOM_CHAMP_RETOUR = "*" Else End If REQUETE = "SELECT DISTINCT `" & NOM_CHAMP_RETOUR & "` FROM `" & NOM_TABLE & "` WHERE `" & NOM_CHAMP_DEP & "` = " & SYS_SQL.TXT_OR_NUM(VALEUR_CHAMP_DEP) Debug.Print REQUETE Set enr = base.OpenRecordset(REQUETE) d = enr.RecordCount - 1 If d = -1 Then ReDim TAB_VAL(0) TAB_VAL(0) = -1 RESULTAT_LIRE = TAB_VAL GoTo fin: Else End If ReDim TAB_VAL(d) ITE = 0 enr.MoveFirst Do TAB_VAL(ITE) = enr.Fields(NOM_CHAMP_RETOUR).Value 'On ajoute 1 pour la ligne de la liste et On bouge 1 pour l'enregsitrement ITE = ITE + 1 enr.MoveNext Loop Until enr.EOF = True RESULTAT_LIRE = TAB_VAL fin: enr.Close Set enr = Nothing base.Close Set base = Nothing End Function Function ENTREE_DONNEE(CHEMIN_FICHIER_BDD, NOM_TABLE, LISTE_CHAMPS, VALEUR_CHAMPS, N_ENR) Dim LISTE_CHAMPS_SQL As String Dim VALEUR_CHAMPS_SQL As String If UBound(LISTE_CHAMPS) <> UBound(VALEUR_CHAMPS) Then MsgBox "Le nombre de champs n'est pas égale au nombre de valeur" Exit Function Else End If If LBound(LISTE_CHAMPS) = UBound(LISTE_CHAMPS) Then LISTE_CHAMPS_SQL = "(" & SYS_SQL.CHAMPS_ID & "," & LISTE_CHAMPS(LBound(LISTE_CHAMPS)) & ")" VALEUR_CHAMPS_SQL = "(" & N_ENR & "," & VALEUR_CHAMPS(LBound(VALEUR_CHAMPS)) & ")" Else LISTE_CHAMPS_MODIF = SYS_SQL.AJOUT_CHAMP_ID_A_LA_LISTE(LISTE_CHAMPS) VALEUR_CHAMPS_MODIF = SYS_SQL.AJOUT_NUMERO_ENREGISTREMENT_A_LA_LISTE(VALEUR_CHAMPS, N_ENR) For L_v = LBound(LISTE_CHAMPS_MODIF) To UBound(LISTE_CHAMPS_MODIF) If L_v = LBound(LISTE_CHAMPS_MODIF) Then test = VALEUR_CHAMPS_MODIF(L_v) LISTE_CHAMPS_SQL = "(" & LISTE_CHAMPS_MODIF(L_v) & "," VALEUR_CHAMPS_SQL = "(" & SYS_SQL.TXT_OR_NUM(VALEUR_CHAMPS_MODIF(L_v)) & "," Else If L_v = UBound(LISTE_CHAMPS_MODIF) Then LISTE_CHAMPS_SQL = LISTE_CHAMPS_SQL & LISTE_CHAMPS_MODIF(L_v) & ")" VALEUR_CHAMPS_SQL = VALEUR_CHAMPS_SQL & SYS_SQL.TXT_OR_NUM(VALEUR_CHAMPS_MODIF(L_v)) & ")" Else LISTE_CHAMPS_SQL = LISTE_CHAMPS_SQL & LISTE_CHAMPS_MODIF(L_v) & "," VALEUR_CHAMPS_SQL = VALEUR_CHAMPS_SQL & SYS_SQL.TXT_OR_NUM(VALEUR_CHAMPS_MODIF(L_v)) & "," End If End If Next L_v End If Set base = DBEngine.OpenDatabase(CHEMIN_FICHIER_BDD) REQUETE = "INSERT INTO " & NOM_TABLE & " " & LISTE_CHAMPS_SQL & " VALUES " & VALEUR_CHAMPS_SQL & ";" Debug.Print REQUETE base.Execute REQUETE base.Close Set base = Nothing End Function Function RECUP_NOM_CHAMPS(CHEMIN_FICHIER_BDD, NOM_TABLE) Dim fld As Field Dim tdf As TableDef Dim TAB_CHAMP() C = 0 Set base = DBEngine.OpenDatabase(CHEMIN_FICHIER_BDD) Set tdf = base.TableDefs(NOM_TABLE) For Each fld In tdf.Fields ReDim Preserve TAB_CHAMP(C) TAB_CHAMP(C) = fld.Name C = C + 1 'Debug.Print "Champ " & fld.Name Next fld RECUP_NOM_CHAMPS = TAB_CHAMP base.Close Set base = Nothing End Function Function RECUP_NOMBRE_ENR(CHEMIN_FICHIER_BDD, NOM_TABLE) Dim tdf As TableDef Set base = DBEngine.OpenDatabase(CHEMIN_FICHIER_BDD) Set tdf = base.TableDefs(NOM_TABLE) RECUP_NOMBRE_ENR = tdf.RecordCount base.Close Set base = Nothing End Function Mon site Web (en cours de construction) : Site DA-CODE de @didier
DenisHen Posté(e) le 1 décembre 2021 Auteur Posté(e) le 1 décembre 2021 Salut la communauté. J'ai bien avancé sur mon projet et j'ai bien sûr pris toutes vos remarques en compte... Donc, je vais faire en sorte que mon fichier Excel sera pour tous les AutoCAD (LT et complet) ainsi que pour un maximum de versions. J'ai déjà commencé à faire un bout de code pour créer un Script pour les version LT, je vais aussi créer un code pour récupérer les types de ligne issues d'un fichier .lin (déjà fait) et un DXF (en cours). Car il faut impérativement que la syntaxe des noms soit respecté, et c'est beaucoup plus simple via un DXF. Enfin je pense... Je vais aussi faire un DVB (plus tard) pour lire directement le fichier Excel depuis AutoCAD, plus besoin d'avoir Excel sur le poste où se trouve AutoCAD. Je suis actuellement sur le mode d'emploi, car je pense qu'il ne sera pas de trop. Je reviendrais vers toi (la communauté) quand j'aurais une proposition un peu solide, une version Beta en gros. 😉 Pour l'instant, je continu mon code pour qu'il soit apte à recevoir ce tampon "Beta"...😉 Bien à toi, la communauté. Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Curlygoth Posté(e) le 1 décembre 2021 Posté(e) le 1 décembre 2021 pour le coup j'utilise un lisp qui converti le type de ligne en code ligne quand j'en ai besoin sinon tu peux stocker la polyligne pour la ressortir sur les autres plans que tu utilises Mon site Web (en cours de construction) : Site DA-CODE de @didier
DenisHen Posté(e) le 1 décembre 2021 Auteur Posté(e) le 1 décembre 2021 Salut @Curlygoth. Je pense m'être mal fais comprendre. Je cherche à connaitre les types de lignes contenus dans un DXF, et en VBA... Car j'aimerais que mon code serve aux utilisateurs d'AutoCAD LT, et ton Lisp ne l'autorise pas... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Curlygoth Posté(e) le 1 décembre 2021 Posté(e) le 1 décembre 2021 Je cherche à connaitre les types de lignes contenus dans un DXF, et en VBA... Car j'aimerais que mon code serve aux utilisateurs d'AutoCAD LT appel le lisp depuis vba ? Mon site Web (en cours de construction) : Site DA-CODE de @didier
DenisHen Posté(e) le 1 décembre 2021 Auteur Posté(e) le 1 décembre 2021 Salut l'ami, je n'ai pas compris ton message... Oui, je cherche a créer un fichier Excel qui créera des calques dans AutoCAD (Nom, Type de ligne, Couleur, Épaisseur, "plottable"...) directement ou pas, car j'aimerais le faire aussi pour les utilisateurs des version LT. Mais tu sais que recopier les nom des types de ligne (parfois des dizaines, voir des centaines) peut être très laborieux. Et pour bien faire, j'aimerais incorporer dans mon fichier Excel la liste des types de ligne contenu dans un DXF (très facile à faire depuis une LT), car je ne peut dialoguer depuis Excel avec un AutoCAD LT. Bonne soirée l'ami et je suis heureux que tu me propose ton aide. Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
rebcao Posté(e) le 2 décembre 2021 Posté(e) le 2 décembre 2021 Bonjour, Depuis que je pratique ce genre d'application AutoCAD-EXCEL, je trouve que vouloir gérer depuis AutoCAD un tableau EXCEL avec des liens en mode base de données et bien trop lourd à mettre en oeuvre ! Depuis très longtemps, j'utilise les SCRIPTS qui sont le seul moyen pour créer des APPLICATIONS qui peuvent être très sophistiquées et surtout 100% compatibles AutoCAD LT... Voici une illustration de mon tableau EXCEL pour préparer, puis créer la liste dans AutoCAD. Ce tableau est appelé depuis AutoCAD ou/et AutoCAD LT bien sur. J'estime ça bien plus simple que de créer un programme que ce soit VBA ou LISP et de toute façon dans ce cas les versions LT sont mises à la touche !!!!!!!!!!!!! à l'occasion, je ferais une petite vidéo avec quelques exemples d'application AutoCAD LT - EXCEL... Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
Curlygoth Posté(e) le 2 décembre 2021 Posté(e) le 2 décembre 2021 Citation Mais tu sais que recopier les nom des types de ligne (parfois des dizaines, voir des centaines) peut être très laborieux. ben si tu veux pas le faire (et moi je le ferais pas !!) demande au vba de le faire pour toi ! Sub METTRE_DANS_PRESS_PAPIER(TEXTE) Dim DataObj As New MSForms.DataObject With DataObj .SetText TEXTE .PutInClipboard End With End Sub Function COLLER_DU_PRESS_PAPIER() Dim MSForm As Object Set MSForm = New DataObject MSForm.GetFromClipboard TEXTE = MSForm.GetText Set MSForm = Nothing COLLER_DU_PRESS_PAPIER = TEXTE End Function il te reste juste à concatener les textes dans une variable Mon site Web (en cours de construction) : Site DA-CODE de @didier
DenisHen Posté(e) le 3 décembre 2021 Auteur Posté(e) le 3 décembre 2021 Salut à vous, et merci pour vos remarques. @rebcao : c'est bien mon idée, créer une ou plusieurs "configuration(s)" de calques dans un classeur Excel et, soit l'exporter directement dans AutoCAD (versions complètes) ou en faire un script (versions LT). Je suis tout à fait d'accord avec toi, je ne veux pas "laisser sur la touche" les utilisateurs d'LT. @Curlygoth : je cherche juste à ouvrir un DXF (comme un TXT via un Open tout simplement) en VBA et fouiller son contenu pour en sortir la liste des types de ligne définis dans ce DXF. je pense avoir trouvé un truc, chercher les "AcDbLinetypeTableRecord", code DXF 2... Encore merci à vous... Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
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