Bonjour,
Je suis interessé par cette macro qui permet de créer une BOM excel depuis un assemblage en un clic, mais j'aimerais la modifier pour qu'elle utilise une modèle excel dans lequelle j'ai paramétré certaines choses (macro qui permet de modifier les propriétées dans SW, liste de choix déroulants)
Voici le code de la macro d'origine:
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.AssemblyDoc
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swBOMAnnotation As SldWorks.BomTableAnnotation
Dim swBOMFeature As SldWorks.BomFeature
Dim BomType As Long
Dim Configuration As String
Dim TemplateName As String
Dim swConfig As SldWorks.Configuration
Dim xlApp As Excel.Application
Dim wbk As Excel.Workbook
Dim sht As Excel.Worksheet
Dim NumCol As Long
Dim NumRow As Long
Dim I As Long
Dim J As Long
Dim chemin As String
Sub xls()
' On ouvre un nouvel objet Excel
Set xlApp = New Excel.Application
' On rend Excel visible avec un nouveau classeur
With xlApp
.Visible = True
Set wbk = .Workbooks.Add
Set sht = wbk.ActiveSheet
End With
' On se raccroche à l'application SW
Set swApp = Application.SldWorks
' On se raccroche au document SW ouvert
Set swModel = swApp.ActiveDoc
Set swModelDocExt = swModel.Extension
' On définit le modèle de nomenclature
TemplateName = "Z:\BIBLIO\BIBLIO_LOGICIEL\BIBLIO_SOLIDWORKS\SOLIDWORKS_FORMALISME_CLEO\Modèle de nomenclature\9999_Nomenclature_SW.sldbomtbt"
BomType = swBomType_Indented
' On récupère la configuration active
Set swConfig = swModel.GetActiveConfiguration
Configuration = swConfig.Name
' On insère la nomenclature dans le 3D
Set swBOMAnnotation = swModelDocExt.InsertBomTable3(TemplateName, 0, 1, BomType, Configuration, False, swNumberingType_Detailed, True)
Set swBOMFeature = swBOMAnnotation.BomFeature
' On reconstruit le 3D
swModel.ForceRebuild3 True
' On remplit les cellules de Excel à partir des valeurs de la nomenclature
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
' On définit le nom complet du fichier Excel
chemin = Environ("USERPROFILE") & "\Desktop\" & "export" & ".xls"
' On sauvegarde le fichier Excel puis on ferme Excel
With xlApp
wbk.SaveAs chemin
wbk.Close
.Quit
End With
End Sub
J'imagine que la section à modifier est la suivante,
Dim wbk As Excel.Workbook
ou
' On ouvre un nouvel objet Excel
Set xlApp = New Excel.Application
' On rend Excel visible avec un nouveau classeur
With xlApp
.Visible = True
Set wbk = .Workbooks.Add
Set sht = wbk.ActiveSheet
End With
mais je ne sais pas comment indiquer le chemin de mon modèle xls
Merci de votre aide