Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  SWX-Datei aus Excel öffnen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
SOLIDWORKS Grundlagen, ein Seminar am 26.01.2026
Autor Thema:  SWX-Datei aus Excel öffnen (4553 mal gelesen)
Konstruktulf
Mitglied
Maschbau-Ing.


Sehen Sie sich das Profil von Konstruktulf an!   Senden Sie eine Private Message an Konstruktulf  Schreiben Sie einen Gästebucheintrag für Konstruktulf

Beiträge: 41
Registriert: 18.08.2005

SWX 2007
Xeon@3,2GHz
NVidia Quadro FX 1100

erstellt am: 29. Sep. 2005 14:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,
ich möchte gerne aus meiner Berechnungsdatei heraus mittels eines VBA-Makros die zugehörige SWXSolidWorks-Modelldatei öffnen.
SWXSolidWorks wird auch gestartet, aber dann kommt die Meldung:
"Der eingegebene Dateiname ist ungültig, wurde nicht gefunden, ist gesperrt oder ein inkompatibler Dateityp."
Ich bin mir aber sicher, dass die Pfade zum Programm und zur Datei stimmen im Makrocode.

Weiß jemand Rat?
Gruß Ulf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Jan Boettcher
Mitglied



Sehen Sie sich das Profil von Jan Boettcher an!   Senden Sie eine Private Message an Jan Boettcher  Schreiben Sie einen Gästebucheintrag für Jan Boettcher

Beiträge: 184
Registriert: 22.06.2005

erstellt am: 29. Sep. 2005 15:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Konstruktulf 10 Unities + Antwort hilfreich

Hallo Ulf,

Meine erste Idee bei so einer Meldung ist immer: Da ist bestimmt ein Leerzeichen im Pfad.

Vielleicht kannst Du ja mal den entsprechenden Quellcode und den Pfad posten.

Gruss
Jan

------------------
Jan Böttcher
  jan.boettcher@ib-boettcher.de 
www.ib-boettcher.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Konstruktulf
Mitglied
Maschbau-Ing.


Sehen Sie sich das Profil von Konstruktulf an!   Senden Sie eine Private Message an Konstruktulf  Schreiben Sie einen Gästebucheintrag für Konstruktulf

Beiträge: 41
Registriert: 18.08.2005

SWX 2007
Xeon@3,2GHz
NVidia Quadro FX 1100

erstellt am: 04. Okt. 2005 13:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo, konnte erst jetzt wieder ins Internet...

Also, der Quellcode lautet:

Sub SWX_Öffnen()
' Tastenkombination: Strg+s
'
  Dim Datei As String
  Datei = Shell("C:\Programme\SolidWorks\SLDWORKS.exe ThisWorkbook.Path & \SWXSolidWorks\Baugruppe.SLDASM")
End Sub

Es soll die Datei Baugruppe.sldasm geöffnet werden.
Ich bin mir nicht so sicher, ob ich das so mit dem Relativpfad machen kann, es kommt aber mit diesem sowie mit absolutem Pfad die gleiche Fehlermeldung. Der Pfad an sich stimmt aber.

Gruß Ulf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



Sehen Sie sich das Profil von Lutz Federbusch an!   Senden Sie eine Private Message an Lutz Federbusch  Schreiben Sie einen Gästebucheintrag für Lutz Federbusch

Beiträge: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 04. Okt. 2005 16:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Konstruktulf 10 Unities + Antwort hilfreich

Die von Dir eingesetzten Methoden sind nicht gut.

Schau Dir lieber mal die Api-Hilfe an. Zum Öffnen, Aktivieren und Schließen von Dokumenten gibt es sogar gute Beispiele, zum Beispiel das SaveAs-Example. Die Pfade zum Öffnen oder Speichern kannst Du dann aus Strings zusammensetzen...
Und was Jan meint, daß ein Zeichen zuviel oder zuwenig beteiligt ist, kommt schon auch öfter vor!

------------------
Lutz Federbusch
Mein Gästebuch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Jan Boettcher
Mitglied



Sehen Sie sich das Profil von Jan Boettcher an!   Senden Sie eine Private Message an Jan Boettcher  Schreiben Sie einen Gästebucheintrag für Jan Boettcher

Beiträge: 184
Registriert: 22.06.2005

erstellt am: 04. Okt. 2005 16:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Konstruktulf 10 Unities + Antwort hilfreich

Hallo,

Der Zusammenbau Deines Pfades ist wohl die Ursache des Problems.

Das hier funktioniert für mich problemlos:

Code:
res = Shell("e:\programme\solidworks\sldworks.exe " + ThisWorkbook.Path + "\testklotz.sldprt")

Gruß
Jan

------------------
Ingenieurbüro
Jan Böttcher

jan.boettcher@ib-boettcher.de 
www.ib-boettcher.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Andreas Müller
Mitglied
Masch. Ing. HTL / Betriebsing. STV


Sehen Sie sich das Profil von Andreas Müller an!   Senden Sie eine Private Message an Andreas Müller  Schreiben Sie einen Gästebucheintrag für Andreas Müller

Beiträge: 1151
Registriert: 11.04.2001

erstellt am: 04. Okt. 2005 16:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Konstruktulf 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Konstruktulf:
...Datei = Shell("C:\Programme\SolidWorks\SLDWORKS.exe ThisWorkbook.Path & \SWX\Baugruppe.SLDASM")
...

Ich meine, dass Dir zumindest mal eine falsche Formatierung untergerutscht ist: Der Teil >\SWX\Baugruppe.SLDASM< sollte ein String sein, ist aber keiner, sondern eher eine Variable. Vielleicht könnte es so aussehen:

Datei = Shell("C:\Programme\SolidWorks\SLDWORKS.exe ThisWorkbook.Path & "\SWX\Baugruppe.SLDASM"")

...oder so ähnlich. Ich komme darauf, weil >ThisWorkbook.Path< vermutlich auch einen String zurückgibt.

EDIT
Arrrghhhh... knapp zu spät!! 
ENDEDIT
------------------
  Gruss
Andreas
A+E Müller AG

[Diese Nachricht wurde von Andreas Müller am 04. Okt. 2005 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Konstruktulf
Mitglied
Maschbau-Ing.


Sehen Sie sich das Profil von Konstruktulf an!   Senden Sie eine Private Message an Konstruktulf  Schreiben Sie einen Gästebucheintrag für Konstruktulf

Beiträge: 41
Registriert: 18.08.2005

SWX 2007
Xeon@3,2GHz
NVidia Quadro FX 1100

erstellt am: 05. Okt. 2005 09:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hm...
Das klappt bei mir immer noch nicht...
Ich hatte den Code an Jan´s Version angepasst, doch auch mit einer absolut verschreibungssicheren Dummidatei und allen möglichen Pfaden kommt immer die gleiche Fehlermeldung von SWXSolidWorks...
@Jan: Wie sieht denn bei Deiner Version der gesamte Code aus?

Vielen Dank für Eure Mühen!!!
Ulf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Jan Boettcher
Mitglied



Sehen Sie sich das Profil von Jan Boettcher an!   Senden Sie eine Private Message an Jan Boettcher  Schreiben Sie einen Gästebucheintrag für Jan Boettcher

Beiträge: 184
Registriert: 22.06.2005

erstellt am: 05. Okt. 2005 09:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Konstruktulf 10 Unities + Antwort hilfreich

Hallo Ulf,

Da ist nicht viel dran:

Code:

Sub vbtest()
res = Shell("e:\programme\solidworks\sldworks.exe " + ThisWorkbook.Path + "\testklotz.sldprt")
End Sub


res ist ein Double.
Achte auf das Leerzeichen nach ...sldworks.exe.
Ansonsten noch einmal der Hinweis mit dem Leerzeichen. Wenn die Excelmappe in einem Pfad liegt, der ein Leerzeichen enthält, dann funktioniert das Ganze oben nicht mehr, weil SWX dann mit zwei Argumenten aufgerufen wird. Sollte das der Fall sein, dann sollte das Folgende ganz allgemeingültig klappen:

Code:

Sub vbtest()
res = Shell("e:\programme\solidworks\sldworks.exe """ + ThisWorkbook.Path + "\testklotz.sldprt""")
End Sub

Gruß
Jan

------------------
Ingenieurbüro
Jan Böttcher

jan.boettcher@ib-boettcher.de 
www.ib-boettcher.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



Sehen Sie sich das Profil von Lutz Federbusch an!   Senden Sie eine Private Message an Lutz Federbusch  Schreiben Sie einen Gästebucheintrag für Lutz Federbusch

Beiträge: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 05. Okt. 2005 09:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Konstruktulf 10 Unities + Antwort hilfreich

Also mir gefällt ja der Shell-Befehl nicht, da er im Zusammenhang mit anderen laufenden Programmen öfter mal Probleme bereitet. Versuche es doch mal so:
Private Sub SolidWorks_DXF() '##### Lädt die in Spalte A gefundenen Nummern als SW-Zeichnung und speichert sie als DXF ######
    Dim swApp As Object
    Dim Zeichnung As Object
    Dim Zeile As String
    Dim Spalte As String
    Dim Nummer As String
    Const swDocDrawing = 3
       
    Spalte = "A"
    Zeile = 2
    Range(Spalte & Zeile).Select
    Nummer = ActiveCell.FormulaR1C1      ' erste Nummer holen
    While Nummer <> ""
        Set swApp = CreateObject("SldWorks.Application")                ' SW holen, sollte besser schon laufen
        Set Zeichnung = swApp.OpenDoc("C:\Temp\" + Nummer, swDocDrawing) ' Zeichnung holen
                If Zeichnung Is Nothing Then
                    MsgBox ("Fehler beim Laden von : C:\Temp\" + Nummer)
                  Else
                    Zeichnung.SaveAs2 "C:\Temp\" + Nummer + ".DXF", 0, True, False  ' DXF speichern
                    swApp.CloseDoc Zeichnung.GetTitle                              ' wieder schließen
                End If 'Zeichnung da? Speichern!
        Zeile = Zeile + 1
        Range(Spalte & Zeile).Select
        Nummer = ActiveCell.FormulaR1C1
    Wend
    MsgBox ("Fertig!")
End Sub

------------------
Lutz Federbusch
Mein Gästebuch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Andreas Müller
Mitglied
Masch. Ing. HTL / Betriebsing. STV


Sehen Sie sich das Profil von Andreas Müller an!   Senden Sie eine Private Message an Andreas Müller  Schreiben Sie einen Gästebucheintrag für Andreas Müller

Beiträge: 1151
Registriert: 11.04.2001

erstellt am: 05. Okt. 2005 09:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Konstruktulf 10 Unities + Antwort hilfreich

Und wenn Du erst mal SWX startest, dann "anlinkst" und mit >SldWorks.OpenDoc6< die BG öffnest?

------------------
Gruss
Andreas
A+E Müller AG

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Konstruktulf
Mitglied
Maschbau-Ing.


Sehen Sie sich das Profil von Konstruktulf an!   Senden Sie eine Private Message an Konstruktulf  Schreiben Sie einen Gästebucheintrag für Konstruktulf

Beiträge: 41
Registriert: 18.08.2005

SWX 2007
Xeon@3,2GHz
NVidia Quadro FX 1100

erstellt am: 05. Okt. 2005 10:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Oh hauehaueha,
nu wird dat aber wat kompliziert...
Ich hatte gehoft, dass das etwas simpler gehen würde...
Wie wär´s denn, wenn man unter Windows eine Verknüpfung zu der Baugruppe erstellt, meinetwegen im gleichen Ordner wie die Exceldatei.
Und dann die Verknüpfung durch ein Makro öffnen lässt. Müsste nicht dann Windows den Rest machen?

Nur sone Idee...
Gruß Ulf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



Sehen Sie sich das Profil von Lutz Federbusch an!   Senden Sie eine Private Message an Lutz Federbusch  Schreiben Sie einen Gästebucheintrag für Lutz Federbusch

Beiträge: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 05. Okt. 2005 10:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Konstruktulf 10 Unities + Antwort hilfreich

Willst Du programmieren oder pfuschen?!

------------------
Lutz Federbusch
Mein Gästebuch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Konstruktulf
Mitglied
Maschbau-Ing.


Sehen Sie sich das Profil von Konstruktulf an!   Senden Sie eine Private Message an Konstruktulf  Schreiben Sie einen Gästebucheintrag für Konstruktulf

Beiträge: 41
Registriert: 18.08.2005

SWX 2007
Xeon@3,2GHz
NVidia Quadro FX 1100

erstellt am: 05. Okt. 2005 11:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Na gut, die Frage war jetzt berechtigt... ;o)

Aber das Problem ist eben, je aufwendiger die Programmierung, desto mehr Fehler können sich einschleichen.

Wie sagte noch mein Informatik-Prof? "Die Summe der Fehler in einem Programm ist eine Konstante..."

Ich hätte halt nicht gedacht, dass es so aufwendig wir, mittels eines Makros aus Excel eine Datei zu öffnen...

Ulf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Jan Boettcher
Mitglied



Sehen Sie sich das Profil von Jan Boettcher an!   Senden Sie eine Private Message an Jan Boettcher  Schreiben Sie einen Gästebucheintrag für Jan Boettcher

Beiträge: 184
Registriert: 22.06.2005

erstellt am: 05. Okt. 2005 12:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Konstruktulf 10 Unities + Antwort hilfreich

Hallo Ulf,

Was ist denn jetzt aufwendig? Die 'quick and dirty' Lösung mit dem Shell -Kommando funktioniert im Alltagsbetrieb sicher ausreichend zuverlässig, wenn Du das Makro nur für Dich und Deine Kollegen verwendest.
Die sauberere Lösung, die Andreas angesprochen und Lutz als Beispiel eingestellt hat, hast Du ja jetzt auch zur Verfügung.

Wenn Alles für Alle immer supereinfach ist und gleichzeitig auch noch supersicher ist, dann muss ich mir wohl einen neuen Job suchen 

Gruss
Jan

------------------
Ingenieurbüro
Jan Böttcher

jan.boettcher@ib-boettcher.de 
www.ib-boettcher.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz