Macro-export stuklijst naar Excel

Hoi allemaal

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?

Bekijk dit onderwerp:

Of:

En om deze af te maken:

Edit: met de zoekfunctie van het forum zijn de onderwerpen ook vindbaar en zonder dat je een praatje hoeft te maken! :wink:

3 likes

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