DenisHen Posté(e) le 9 avril 2021 Posté(e) le 9 avril 2021 Bonjour à tous. Je me remets petit à petit au VBA et je cherche la commande FileDialog qui existe en VBA pour MS-Office mais je n'ai rien trouvé. Existe-t-elle pour AutoCAD ? Si non, y-a-t 'il un équivalent ? Bonne journée à 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 9 avril 2021 Posté(e) le 9 avril 2021 Salut, alors tu as plusieurs solution : 1°) tu connais par coeur les chemins complets de tes fichiers et tu peux entrer le chemin dans un inputbox (je blague) 2°) Tu utilise le filedialogue de ms-office ! Dans les références tu coches Micorsoft Excel XX.0 Object librairy Tu crée ta collection : Dim xlApp As Excel.Application Set xlApp = CreateObject("Excel.Application") MonFichier = xlApp.GetOpenFilename("Tous les fichiers (*.*),*.*") 'l'emplacement et le nom du fichier texte et tu remplace "*.*" par l'extrension que tu veux sélectionner "*.csv" pour ne voir que les fichiers csv ... 3°) Tu télécharges mon explorateur a tes risque et péril ^^ (mais un retour sur erreur serait cool) 1 Mon site Web (en cours de construction) : Site DA-CODE de @didier
Fraid Posté(e) le 9 avril 2021 Posté(e) le 9 avril 2021 Bonjour Il est peut être plus judicieux de passer par un objet Shell qu'excel qui n'est pas forcément installé il y a plein d'exemple sur le net, Denis je me permet de te rappeler l’existence de Google...tape explorer un dossier en VBA sinon en passant, en Autolisp c'est getfiled https://github.com/Fraiddd
DenisHen Posté(e) le 9 avril 2021 Auteur Posté(e) le 9 avril 2021 Bonjour Fraid et merci pour ton aide. Je me suis diriger vers le VBA parce-que, justement, je n'arrive pas à ce que je veux faire sous LiSP, je me tourne donc vers mes "racines", le VBA... Je vais de ce pas sur Google... Bon week-end à 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)
didier Posté(e) le 9 avril 2021 Posté(e) le 9 avril 2021 Bonjour @DenisHen Qu'est-ce que tu n'arrives pas à faire en LSP ? Admettons que le VBA soit plus simple pour toi (de quelles racines parles-tu ?? ça doit dater quelque peu) Mais je pense que changer pour changer il vaut mieux passer à Visual Studio, C'est pas la première fois qu'on t'en parle, mais bon ... J'ai trouvé une bidouille, mais c'est de la bidouille au carré juste pour dire que c'est faisable... C'est ça que tu veux faire ? Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
DenisHen Posté(e) le 9 avril 2021 Auteur Posté(e) le 9 avril 2021 Bonjour didier (ça faisait longtemps, souviens-toi, "Si quelqu'un a une astuce, un conseil ou même une solution, je suis preneur".😊). Premièrement, j'ai appris le VBA sous Excel, et j'ai fais des trucs très intéressant sous Excel pour piloter AutoCAD. Mais ça, c'était avant (1994 ? mes début dans la programmation)... Deuxièmement, j'aurais voulu ouvrir un .csv contenant une liste de calques avec différentes données et les créer dans AutoCAD. J'ai commencé avec du LiSP mais je me suis heurté à mon manque de compétences... Tout est sur ce fil. Maître (gile) m'a bien sous-entendu clairement (qu'aurait-il pu faire de plus) que je m'attaquais à gros, notamment les code DXF 1000 (les descriptifs des calques), qui, d'après ce que j'ai compris sont des sous DXF du code DXF -3, ne me demande rien de plus, je suis perdu. Je pense donc avoir atteint mes limites en LiSP. Mais je ne le dénigre pas pour autant, je continuerais le LiSP (j'adore), je connais maintenant mes limites dans ce langage (y compris Lambda et MapCar 😉). Je me tourne donc maintenant vers mes "racines", le VBA que je connaissais bien avant de faire du LiSP, mais le VBA de MS-Office est bien différent de celui d'AutoCAD... Par exemple, il n'y a pas (dans le VBA d'AutoCAD) de boite de dialogue pour ouvrir un fichier, je n'ai absolument rien trouvé là-dessus, et j'ai cherché toute l'après-midi... En tous cas, je te souhaite une bonne soirée et un bon week-end, si tenté que tu en ai un... 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)
Curlygoth Posté(e) le 9 avril 2021 Posté(e) le 9 avril 2021 Quote Je me tourne donc maintenant vers mes "racines", le VBA que je connaissais bien avant de faire du LiSP, mais le VBA de MS-Office est bien différent de celui d'AutoCAD... Laisse moi te prouver (justement) le contraire 😉 Mon site Web (en cours de construction) : Site DA-CODE de @didier
DenisHen Posté(e) le 9 avril 2021 Auteur Posté(e) le 9 avril 2021 Salut CurlyGoth. Pas de problème, montre-moi une boite de dialogue pour ouvrir n'importe quel fichier depuis le VBA d'AutoCAD (comme FileDialog d'Excel), sans charger une référence externe (comme celle d'MS-Office par exemple). Pour être clair, comment ouvres-tu une boite de dialogue "Ouvrir" depuis le VBA d'AutoCAD sans autre aide ou MSO ? En "natif" AutoCAD VBA. 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 9 avril 2021 Posté(e) le 9 avril 2021 Bonjour ------------------------------------------- @DenisHen Admettons, je ne suis pas convaincu ------------------------------------------- @Curlygoth Je vais être un lecteur assidu, car avec tout ce qu'on dit sur le VBA on va le voir à l'œuvre et c'est une bonne chose. ------------------------------------------- Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
DenisHen Posté(e) le 9 avril 2021 Auteur Posté(e) le 9 avril 2021 Salut @didier. "Admettons, je ne suis pas convaincu" je n'ai pas compris, j'espère que tu dis du mal de moi... 🤣 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 9 avril 2021 Posté(e) le 9 avril 2021 Didier je t'invite a regarder mes video qui sont sur mon site ^^ et si tu es encore sceptique : lien supprimé Mon site Web (en cours de construction) : Site DA-CODE de @didier
DenisHen Posté(e) le 9 avril 2021 Auteur Posté(e) le 9 avril 2021 J'y vais de ce 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)
Olivier Eckmann Posté(e) le 9 avril 2021 Posté(e) le 9 avril 2021 Bonsoir, Les développeurs d'AutoCAD propose une solution pour utiliser la case de dialogue standard d'AutoCAD pour ouvrir un fichier en VBA https://adndevblog.typepad.com/autocad/2013/03/selecting-file-with-standard-autocad-fileopen-dialog.html Ah bah oui, il faut utiliser du lisp 😂 Olivier
(gile) Posté(e) le 9 avril 2021 Posté(e) le 9 avril 2021 Ça ressemble à une fuite (en avant ?). Déjà tu as besoin d'aide pour une boite de dialogue. Mais tout le reste, lire le fichier texte, créer les calques avec les données étendues pour le commentaire, tu sais le faire en VBA AutoCAD, ou tu penses que c'est plus simple qu'en LISP ? Tout ce que tu fais avec le VBA AutoCAD peut être fait avec Visual LISP qui peut acccéder à la même interface COM/ActiveX. J'aurais continué à t'aider en essayant de te pousser à être plus méthodique (décomposer le problème en problèmes plus simples et les résoudre avec des fonctions séparées) mais si tu penses que changer de route est mieux pour toi... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
didier Posté(e) le 9 avril 2021 Posté(e) le 9 avril 2021 Bonjour @Curlygoth J'étais déjà allé jeter un œil sur ces vidéos lors des dernières discussions à ce sujet, ça a l'air de bien fonctionner, rien à dire, mais lorsque je parlais de lecteur assidu, je parlais de code, car la preuve de l'efficience (ou simplement la différence) par rapport au lisp est le sujet du jour. ------------------------- @Olivier Eckmann C'est ce dont je parlais en parlant de "bidouille" en trois lignes de code Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Curlygoth Posté(e) le 9 avril 2021 Posté(e) le 9 avril 2021 Quote J'étais déjà allé jeter un œil sur ces vidéos lors des dernières discussions à ce sujet, ça a l'air de bien fonctionner, rien à dire, mais lorsque je parlais de lecteur assidu, je parlais de code, car la preuve de l'efficience (ou simplement la différence) par rapport au lisp est le sujet du jour. a par rapport à l'efficience ? j'en sais rien du tout je connais pas le lisp... je connais le VBA .. quand je connaitrais les deux et surtiout quand j'aurais votre excellent niveau je jugerais... pour l'instant je connais le vba je fais avec ^^ Je cherche un gagner des heures de travail pas des secondes... mais je vous rejoins totalement le vba est peut etre pas le plus rapide mais pour moi le plus abordable pour l'instant ^^ Mon site Web (en cours de construction) : Site DA-CODE de @didier
(gile) Posté(e) le 9 avril 2021 Posté(e) le 9 avril 2021 Dans le lien donné par @Olivier Eckmann la réponse du grand (de l'immense) Tony Tanzillo est sans appel : Quote It's truly shameful that VBA programmers must resort to this sort of kludgery to solve a simple problem like this. But, if they have to, then VL.Application would be a better way to go about it. PS : VL.Application = Application Visual LISP Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Curlygoth Posté(e) le 9 avril 2021 Posté(e) le 9 avril 2021 j'ai jamais dit l'inverse ^^ mais je fais avec ce que je connais Mon site Web (en cours de construction) : Site DA-CODE de @didier
DenisHen Posté(e) le 9 avril 2021 Auteur Posté(e) le 9 avril 2021 Bonsoir à toute la communauté. @(gile), je ne ferais jamais ö grand jamais faire quoique ce soit pour cherché à te vexer, tu nous a tellement appris à tous, même aux plus grands... Je me suis juste aperçu que j'ai essayé le Lisp, mais je ne peux pas aller plus loin, j'ai bien appris, grâce à toi, à vous, membre de CaxXP (je pense à didier, Tramber, BonusCAD, RebCAO, Patrick...)... J'en suis désolé, mais j'ai essayer, n'ayant pas l'aide appropriée (vous m'avez tellement apporté, mais peut-être était-ce insuffisant, je veux dire que tout le monde ne né pas pédagogue, ni élève... C'est très difficile d'apprendre à quelqu'un... Malgré votre aide à tous...Mais Diriger systématiquement les demandeurs vers Google, je serais le faire pour les demandeurs de Cobol... Tu cherche un code : Google est ton ami, tu pisse bleu : Google est ton ami, ton père te viole tous les jours à 23 heure depuis tes 9 ans ? Google est ton ami...) Il y en a marre de "Google est ton ami", si on poste une demande, croyez-vous que nous n'avons pas cherché au moins un minimum ? Ici, on cherche des réponses, pas des leçons de Dieu Google... Soyez serviables les amis (es) vous avez le savoir, partagez-le, c'est ce qu'ont vient chercher ici, une petite phrase, un indice, un conseil, une astuce (@didier, si tu me lis, une pensée pour toi), c'est tous ce que l'on cherche, une direction, et pas... "Google et ton ami". J'en ai fais la piètre expérience aujourd'hui, je cherchais des réponses, des conseilles, mais j'ai eu le droit à, attention, c'est du lord... : "Google est ton ami"... Et tu fais quoi avec ça ? Je cherchais en VBA une boite de dialogue pour ouvrir un fichier depuis le VBA d'AutoCAD... Je pensais que l'auteur du "Google est ton ami" savait que j'allais trouver ce que je cherchais... Mais non, Il a juste dis : "Google est ton ami"... Et je n'ai absolument rien trouvé en deux heures de recherche, et après, il ne m'a pas plus aidé... Donc, maintenant, dès qu'il y aura un Topic, un message, une question, devrai-je répondre systématiquement : "Google est ton ami" ? Ou vais-je l'aider réellement ? Qu'est-ce que je cherche quand je pose une question sur ce forum ? Une réponse ou "Fais pas chier et cherche dans Google" (même si tu as déjà cherché pendant des heures) je m'en branle, je fais mon intéressant pour me sentir au dessus des autres... Donc ma réponse est : Cherche connard... Mais je ne ferais rien. Je ne partage pas ma connaissance et je ne t'aiderais pas... Ma réponse, tu la connais : démerde-toi... Ici, je ne t'aiderais pas... Ce n'est pas la politique de CadXP, que je connais depuis 2005 (il me semble), ici on partage, on aide, on dirige, on oriente... On est les uns avec les autres... Je n'ai jamais renié de l'aide quand je pouvais le faire... C'est l'esprit Socrate : "La connaissance s'accroît quand on la partage". 7Mais je vois que certains l'on oublié... Je n'en veux à personne, je ne regrette rien, je connais juste des être extraordinaire via ce site (je ne citerais pas de non, mais ils savent qu'ils sont là)... Mais s'i vous plaît, plus de "Google est ton ami", PUTAIN, vous croyez quoi, que nous n'avons pas cherché un minimum avant de s'abaisser à vous demander de l'aide ? ? ? Un Denis énervé après un "Google est ton ami"... Bon Week-end à la communauté... 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 10 avril 2021 Posté(e) le 10 avril 2021 reste zen. Regarde l'explorateur que je t'ai envoyé, il est pas tres sexy mais il fait le taf et pourra en plus selctionner plusieurs fichiers qui ne sont pas dans le même dossier ! Mon site Web (en cours de construction) : Site DA-CODE de @didier
Fraid Posté(e) le 10 avril 2021 Posté(e) le 10 avril 2021 Bonjour, il me semble, comme je te l'ai dit précédemment, que getfiled en autolisp, me semble convenir a ta demande. Après, pour importer des calques, il existe un outil déjà intégré à Autocad qui s’appelle le gestionnaire d'état de calques tu enregistre un état, tu obtient un .lay que tu importe avec le même outil https://github.com/Fraiddd
Fraid Posté(e) le 10 avril 2021 Posté(e) le 10 avril 2021 et puis si tu travail avec des gabarits bien encalqué c'est inutile. https://github.com/Fraiddd
Curlygoth Posté(e) le 10 avril 2021 Posté(e) le 10 avril 2021 je ne contredit pas fraid... (même si j'avoue avoir un moteur de génération de calque, je trouve ça plus dynamique mais bon c'est que mon point vu sur les calques) pour revenir a ton "coup de gueule" je pense qu'on a (chacun d'entre nous) et surtout que les meilleurs (que je me permets de cité haut et fort ! ( @didier, @Fraid, @(gile),@Olivier Eckmann ) ont répondu pour te répondre avec chacun une solution ! Prend celle qui te convient 😉 PS : Je rejoins (Gile) sur la réponse d'Olivier Eckmann... pour écrire du sendcommand ou du lisp en vba autant faire du lisp XD Mon site Web (en cours de construction) : Site DA-CODE de @didier
DenisHen Posté(e) le 10 avril 2021 Auteur Posté(e) le 10 avril 2021 Salut Fraid. Mes calques sont tous dans un ou plusieurs .csv, mais lors de leur création, je les renommes "en partie", exemple, le calque "ECPS_000_BATI" devient "ECPS_00_000BATI", car le "00" est une variable pris sur un XData qui est le niveau courant du dessin... Exemple, le niveau courant est "01" (premier étage déclaré dans un XData), j'insert le calque "ECPS_000_BATI" et le renomme en "ECPS_01_000_BATI", et ça, aucun gabarit ou aucun DesignCenter ne le fera... Merci pour ton intervention, mais je m'y attendais 😛 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)
Fraid Posté(e) le 10 avril 2021 Posté(e) le 10 avril 2021 Vu de loin, ça à l'air d'une usine à gaz vos plans ... vous dessiner vos niveaux dans le même dwg et superposé? https://github.com/Fraiddd
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