Een bestand openen vanuit Excel

Ik probeer een SW-bestand te openen vanuit een Excel-macro.

Ik gebruik de volgende code:

Dim swApp       As SldWorks.SldWorks
Dim swModel     As SldWorks.ModelDoc2
Dim retval      As String
Dim xlApp       As Excel.Application
Dim xlWB        As Excel.Workbook
Dim exSheet     As Excel.Worksheet
Dim i           As Integer
Dim bool        As Boolean
Dim boolstatus  As Boolean
Dim myBool As Boolean
Dim myError As Long, myWarning As Long

Sub Bouton1_Cliquer()
 
myBool = Shell("C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\SLDWORKS.exe ", vbNormalFocus)
 
Set swApp = CreateObject("SldWorks.Application")
Set swModel = swApp.OpenDoc("C:\Users\nouveau\Documents\mapiece.SLDPRT", swDocPART)
Set swApp = Nothing: Set swModel = Nothing
 
End Sub

Het openen van SW is prima, maar het bestand mypiece.sldprt opent niet. Geen foutmelding.

Ik gebruik SW 2015.

Kun je me vertellen wat er aan de hand is?

Hallo;

Uw verzoek en de bijgevoegde code laten me perplex achter.
Wat wil je precies gaan doen?
Een specifiek document openen met een macro van Solidworks (Solidworks API)?
of
Gebruik Excel om een document uit een lijst te openen (via een Macro-knop? ?
....
In beide gevallen: geef de voorkeur aan het Opendoc6-commando ("Locatie en naam van het te openen bestand",swdocpart,swOpenDocOptions_Silent,"")
Een voorbeeld hier: https://help.solidworks.com/2015//Open_Document_Example_VB.htm?verRedirect=1
En de bestelinformatie hier:https://help.solidworks.com/2015/opendoc6.html

Vriendelijke groeten

1 like

Ik probeer een Solidworks-document te openen via een knop in een Excel-bestand

Ik heb ook de functie "opendoc6" geprobeerd, zonder succes.

Set swModel = swApp.OpenDoc6("C:\Users\nouveau\Documents\mapiece.SLDPRT", 2, 1, "", myError, myWarning)

Zou het kunnen komen van de opties die ik moeilijk  kan definiëren? Hier, Alleen-lezen modus. Ik zou idealiter willen openen in de Alleen-lezen EN stille modus.

Van mijn kant heb ik deze code aan te passen (kamer 5, kamer 6 en MEP-kamer  moeten worden vervangen door uw behoefte). Getest en goedgekeurd

Sub EssaiSW()

 Dim swApp As SldWorks.SldWorks
    Dim swModelUn As SldWorks.ModelDoc2
    Dim swModelDeux As SldWorks.ModelDoc2

    If swApp Is Nothing Then
        Set swApp = CreateObject("SLDWORKS.application")
        swApp.Visible = True
    Else
        Set swApp = Application.SldWorks
        MsgBox "Ouverture de Solidworks par Excel=Ok"
    End If

    Set swDocSpecification = swApp.GetOpenDocSpec("C:\Users\sebastien.denis\Desktop\Pièce5.sldprt")
    Set swModelUn = swApp.OpenDoc7(swDocSpecification)
    MsgBox swModelUn.GetTitle
    
    Set swDocSpecification = swApp.GetOpenDocSpec("C:\Users\sebastien.denis\Desktop\Pièce5.slddrw")
    Set swModelUn = swApp.OpenDoc7(swDocSpecification)
    MsgBox swModelUn.GetTitle
    
    swApp.CloseDoc swModelUn.GetTitle
    
    Set swModelUn = swApp.ActiveDoc
    MsgBox swModelUn.GetTitle
    
    'Set swDocSpecification = swApp.GetOpenDocSpec("C:\Users\sebastien.denis\Desktop\Pièce6.sldprt")
    'Set swModelDeux = swApp.OpenDoc7(swDocSpecification)
    
    'swApp.CloseDoc swModelUn.GetTitle

    'MsgBox swModelDeux.GetTitle
    
    'swApp.CloseDoc swModelDeux.GetTitle
    
    
End Sub

.

1 like

Geweldig, het werkt.

Ik ga door met mijn code;)