Öffnen einer Datei aus Excel

Ich versuche, eine SW-Datei aus einem Excel-Makro zu öffnen.

Ich verwende den folgenden 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

Das Öffnen von SW ist in Ordnung, aber die Datei mypiece.sldprt lässt sich nicht öffnen. Keine Fehlermeldung.

Ich verwende SW 2015.

Können Sie mir sagen, was los ist?

Hallo;

Ihre Anfrage und der beigefügte Code lassen mich ratlos zurück.
Was genau möchten Sie tun?
Öffnen Sie ein bestimmtes Dokument mit einem Makro aus Solidworks (Solidworks API)?
oder
Verwenden Sie Excel, um ein Dokument aus einer Liste zu öffnen (über eine Makro-Schaltfläche? ?
....
In beiden Fällen: Bevorzugen Sie den Opendoc6-Befehl("Speicherort und Name der zu öffnenden Datei",swdocpart,swOpenDocOptions_Silent,"")
Ein Beispiel hier: https://help.solidworks.com/2015//Open_Document_Example_VB.htm?verRedirect=1
Und die Bestellinformationen hier:https://help.solidworks.com/2015/opendoc6.html

Herzliche Grüße

1 „Gefällt mir“

Ich versuche, ein Solidworks Dokument über eine Schaltfläche in einer Excel-Datei zu öffnen

Ich habe auch die Funktion "opendoc6" ausprobiert, ohne Erfolg.

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

Könnte es von den Optionen kommen, die ich nur schwer  definieren kann? Hier der ReadOnly-Modus. Ich möchte idealerweise im ReadOnly- UND Silent-Modus öffnen.

Ich für meinen Teil habe diesen Code anzupassen (Raum 5, Raum 6 und MEP-Raum  sind bei Bedarf zu ersetzen). Getestet und für gut befunden

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 „Gefällt mir“

Toll, es funktioniert.

Ich mache mit meinem Code weiter;)