le but est de créer automatiquement via une macro VBA une nomemclature dans un assemblage, exporter cette dernière vers un fichier Excel dont le nom sera le nom fichier pièce + une proprété personalisée. Enfin la macro doit supprimerla nomenclature créée.
Nous ne disposons pas des outils My Cad - Solidworks Prenium
Pour mettre le chemin vers ton modèle de nomenclature, le nom de ta configuration par défaut dans tes asm et le nom de ta propriété personalisée que tu veux dans le nom du fichier.
Merci pour ta réponse d.roger, la macro fonctionne, seul petit problème, quand je mets la propriété personalisé là ou te me l'as indiqué la valeur de la propriété n'est pas renvoyée dans le nom fichier. J'ai l'impression que la ligne créant le nom du fichier dans la macro, il n'ya aps de rappelle de la propiété, j'ai essayé de la rajouté mais les test ne sont pas concluant de ce côté.
Parfait en réalisant cette modification la macro fontionne comme je le voulais. Juste pour amélioration est-il possible d'enregistrer le tableur dans le meme dossier que l'assemblage.
Si tu veux aussi donner un peu de mise en page à ton fichier Excel, tu peux ajouter des lignes comme par exemple :
NumCol = swBOMAnnotation.ColumnCount
NumRow = swBOMAnnotation.RowCount
xlApp.Worksheets(xlApp.ActiveSheet.Name).Rows(1).RowHeight = 40
For I = 1 To NumRow - 1
xlApp.Worksheets(xlApp.ActiveSheet.Name).Rows(I + 1).RowHeight = 20
Next I
For J = 0 To NumCol - 1
xlApp.Worksheets(xlApp.ActiveSheet.Name).Columns(J + 1).ColumnWidth = 25
xlApp.ActiveSheet.Cells(1, J + 1).Interior.ColorIndex = 15
Next J
For I = 0 To NumRow - 1
For J = 0 To NumCol - 1
xlApp.ActiveSheet.Cells(I + 1, J + 1).NumberFormat = "@"
xlApp.ActiveSheet.Cells(I + 1, J + 1).VerticalAlignment = 2
sht.Cells(I + 1, J + 1).Value = swBOMAnnotation.Text(I, J)
Next J
Next I
En lieu et place de :
NumCol = swBOMAnnotation.ColumnCount
NumRow = swBOMAnnotation.RowCount
For I = 0 To NumRow
For J = 0 To NumCol
sht.Cells(I + 1, J + 1).Value = swBOMAnnotation.Text(I, J)
Next J
Next I
est particulièrement interressante si tu as des valeurs numérique commençant par 0 car cela met la cellule Excel au format texte et évite donc de perdre le 0 du début.
le hasard justement c'est que je travail sur de la nomenclature automatique est cette macro arrive juste à point. J'ai juste un souci c'est qu'elle récupère les informations sur des pièces de premier niveau et non sur des pièces dans un assemblages ou sous assemblage de sous assemblage d'assemblage etc..
Oui il y a une solution, tu remplace la ligne "BomType = swBomType_TopLevelOnly" par "BomType = swBomType_Indented", cela devrait te mettre la nomenclature en multi-niveau.