Bonjour à tous,
Je travail actuellement sur un projet d'automatisation de certains dossiers et j'aimerai intégrer quelques fonctionnalitées à ma macro existante, qui insert et exporte une nomenclature dans un assemblage au format TXT.
Je remercie ceux qui prendront le temps de me lire, et de m'accorder quelques instants pour me débloquer. :)
La partie export et enregistrement de la nomenclature se passe bien, mais j'ai un problème lorsque j'essaie de récupérer les valeurs des propriétés d'un des composants (le seul à avoir ces propriétés là) : CLIENT, LOCAL, CPLT LOCAL, AFFAIRE, DESSINATEUR, QTE ASS) avant de les copier sous le même nom = valeur dans l'assemblage.
J'avais bricolé quelque chose en "manipulant" le tableau Excel exporté à base de :
AFFAIRE = Range("BG2:BG1000").Find("*", , , , xlByColumns).Value 'Cherche la première valeur non vide
On Error Resume Next
Mais cela ne fonctionne que dans le cas ou la propriétés existe belle et bien. Bref, je souhaiterai trouver une solution plus précise et sûr.
J'ai pas mal cherché et essayé divers bout de code et/ou solution trouvé sur le site ou ailleurs, mais je ne maîtrise vraiment pas assez les API et le code VBA pour l'adapter à mon besoin.
J'ai cependant identifié quelques fonction intéressantes, dont voici ci dessous un exemple pour simplement lire la propriétés CODE dans une MsgBox. (ce serait déjà une bonne étape :) mais ne fonctionne malheureusement pas)
Dim swSelMgr As SldWorks.SelectionMgr
Dim swSelComp As Variant
Dim swSelModel As SldWorks.ModelDoc2
Dim swCustPropMgr As CustomPropertyManager
Dim swEnt As SldWorks.Entity
Dim val As String
Dim valout As String
Set swSelComp = swBOMAnnotation.GetComponents2(2, Configuration)
Set swCustPropMgr = swSelComp.Extension.CustomPropertyManager("")
swCustPropMgr.Get4 "CODE", False, val, valout 'Change property name here
MsgBox "Value: " & val & "Evaluated value: " & valout
L'idée final serait donc de récupérer la variable du composant, la copier dans l'assemblage, puis dans chacune des pièce ayant la propriétés CODIFICATION ="X"
Auriez vous des conseils et des corrections évidentes à me partager afin de me débloquer ? Je vous en remercie grandement par avance. N'hésitez pas à me demander plus de précisions.
Je vous joint mes deux bouts de code, dont un vraiment brouillon me servant pour mes recherches / test... Le second est le plus simple qui fonctionne lorsque les propriétés sont rentrées.
PS : Je précise quand même que je n'ai pas les outils myCADtools de dispo.
Merci à tous.
Mickael
test_export_txt_nomenclature.swp