Script VBA sur Excel à appliquer sur AUTOCAD
Bonjour,
Je suis apprenti conducteur de travaux et dans le cadre de mon projet de fin d'études qui concerne l'optimisation de la gestion d'un chantier et de la planification.
Je cherche un moyen afin de pouvoir changer l'état d'une zone de chantier sur un plan (soit réalisé, soit non réalisé, soit en cours avec une couleur respective). C'est à dire sur excel quand je change le statut, la couleur change automatiquement sur autocad.
J'ai commencé à réaliser un script VBA sur excel mais qui ne modifie pas la couleur sur autocad :
- J'ai un document test sur autocad avec 3 zones et 3 calques
- J'ai un tableau test sur excel avec le script joint
Pourriez-vous m'aider sur ce sujet ?
Je vous remercie par avance.
Bonjour et bienvenue sur le forum.
Sur votre profil, au niveau de la version d'Excel, c'est l'année qui est attendue (2016/2019/2021… ou l'abonnement 365) et éventuellement MAC si vous êtes sous MacOS (mais au vu du code je ne pense pas).
Trois questions :
- C'est la couleur du calque que vous voulez modifier ou bien la couleur des objets dans le calque ? Ce n'est pas la même chose.
- Êtes-vous sur de vouloir faire les changements "en direct" entre Excel et AutoCAD ? Sur votre mini-exemple ça ne devrait pas poser de problèmes mais sur un vrai projet avec des dizaines de claques ça peut devenir lent rapidement. Je vous conseillerai plutôt de partir sur une approche "bouton" pour lancer la macro qui va lire les colonnes G:F et mettre à jour tous les calques. Ca permet de faire toutes vos modifs dans Excel, puis d'exporter le résultat dans AutoCAD.
- Enfin si vous avez des couleurs en tête, merci de lister les codes RGB correspondants à vos différents états d'avancement.
Pour info, j'utilise énormément la bibliothèque des objets ActiveX pour faire du VBA avec AutoCAD. C'est indispensable. Voici la page de recherche : https://help.autodesk.com/view/OARX/2024/ENU/?query=activex
Il suffit de taper "activex" puis l'objet que vous voulez traiter. Par exemple pour votre question "comment ouvrir un DWG dans AutoCAD via VBA?", c'est lié à l'objet "Document". Donc la recherche
AutoCAD 2024 Developer and ObjectARX Help | "activex documents" | Autodesk
Nous donne : AutoCAD 2024 Developer and ObjectARX Help | Documents Collection (ActiveX) | Autodesk
Et on trouve la méthode "Open", pour ouvrir un document.
AutoCAD 2024 Developer and ObjectARX Help | Open Method (ActiveX) | Autodesk
Au début c'est très lourd mais vous verrez que c'est un outil indispensable pour se débrouiller.
Je vous conseillerai aussi dans un premier temps de travailler en "Early binding", en référençant la bibliothèque "AutoCAD Type Library" dans votre projet VBA, ce qui vous donnera l'auto-complétition et l'aide.
Rebonjour,
Voici ci-joint un petit exemple que j'ai essayé de faire le plus adaptable possible pour répondre à mes questions et vous donner une idée du code.
Le fonctionnement est le suivant :
- Vous cliquez sur le premier bouton pour choisir un fichier dwg
- Vous remplissez les tableaux de calques et couleurs (si besoin)
- Lancez AutoCAD (l'ouverture du fichier est optionnelle)
- Vous cliquez sur le deuxième bouton, qui va ouvrir le fichier (ou le trouver dans la liste des fichiers ouverts) et mettre à jour la couleur des calques. Cette étape est répétable.
Le code VBA se trouve dans le module Saboh. La référence à AutoCAD type library est nécessaire. J'ai vu que nous avions des versions différentes, il suffit de mettre la votre et retirer la mienne, qui sera marquée comme [MISSING].
Voilà, bon comme toute chose c'est adaptable mais dans ce cas veuillez fournir le maximum de détails sur ce que vous voulez, car sinon je dois improviser.
Bonne journée.