Ik ben een beginner in macro, we gebruiken Solidworks op de BE en ik wil een aantal taken automatiseren. Momenteel exporteer ik de stuklijsten naar Excel sinds de tekening en integreer ik ze in ons ERP. Ik wil een macro om de nomenclatuur te exporteren met dezelfde naam als de tekening en in dezelfde map.
Ik heb het geprobeerd via Chatgpt onmogelijk.
Ik heb wat onderzoek gedaan, maar ik kan niet vinden wat ik zoek, heeft iemand een macro die vergelijkbaar is met mijn verzoek in hun gereedschapskist?
Bedankt voor je snelle antwoord, ik had deze onderwerpen gezien, maar het eerste onderwerp integreert een nomenclatuur, exporteert deze en verwijdert deze. Ik wil dat de macro de nomenclatuur selecteert die in de tekening staat en deze exporteert naar xlsx.
Hallo @Jérémy_Guillon ; U moet nauwkeuriger zijn in uw verzoeken...
De solidworks versie
De Excel-versie
de naam van de , of vellen tekeningen
De naam en het type van de nomenclaturen...
de locatie van de bestemming (dynamisch of statisch?)…
(bij twijfel exporteert de onderstaande macro alle stuklijsten die in een tekening zijn gevonden naar een *.xlsx bestand ( C:\Temp\Nomenclature_MiseEnPlan.xlsx)
Sub ExportNomenclatureMiseEnPlan()
Dim swApp As Object
Dim swDraw As Object
Dim swTable As Object
Dim swSheet As Object
Dim swView As Object
Dim swTableAnnotation As Object
Dim excelApp As Object
Dim wb As Object
Dim ws As Object
Dim i As Long, j As Long
Dim rowCount As Long, colCount As Long
' Initialiser SolidWorks
Set swApp = GetObject(, "SldWorks.Application")
Set swDraw = swApp.ActiveDoc
If swDraw Is Nothing Then
MsgBox "Aucune mise en plan active."
Exit Sub
End If
' Créer une instance Excel
Set excelApp = CreateObject("Excel.Application")
excelApp.Visible = True
Set wb = excelApp.Workbooks.Add
Set ws = wb.Sheets(1)
' Localiser la table BOM dans la mise en plan
' Supposons qu'il y ait une seule table BOM
For Each swTableAnnotation In swDraw.GetTableAnnotations
If swTableAnnotation.Type = 0 Then ' 0 pour BOM
Set swTable = swTableAnnotation
Exit For
End If
Next
If swTable Is Nothing Then
MsgBox "Aucune table de nomenclature trouvée."
Exit Sub
End If
' Récupérer le nombre de lignes et colonnes
rowCount = swTable.RowCount
colCount = swTable.ColumnCount
' Parcourir la table et exporter
For i = 0 To rowCount - 1
For j = 0 To colCount - 1
ws.Cells(i + 1, j + 1).Value = swTable.Text(i, j)
Next j
Next i
' Enregistrer le fichier Excel
Dim savePath As String
savePath = "C:\Temp\Nomenclature_MiseEnPlan.xlsx"
wb.SaveAs savePath
' Nettoyer
wb.Close
excelApp.Quit
MsgBox "Export terminé : " & savePath
End Sub