Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  SolidWorks
  Solidworks VBA Exceltabelle für Muster importieren

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
  
Baden-Württembergischer Schreinertag, eine Veranstaltung am 05.07.2025
Autor Thema:  Solidworks VBA Exceltabelle für Muster importieren (248 / mal gelesen)
Obi1317
Mitglied
Konstrukteur


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

Beiträge: 27
Registriert: 15.02.2016

Win10, SWX2023

erstellt am: 30. Apr. 2025 15:05    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

Moin zusammen,

ich hätte noch mal eine Frage zu VBA. Folgende Ausgangslage:
Ich habe im SWX ein Part offen, welches ein variables Muster hat. Für dieses Muster möchte ich per VBA die Excel-Mustertabelle importieren.
Hier der nicht funktionierende Code (Nebenfrage: Wie gibt man hier im Forum Programmcode ein?):

Option Explicit
Dim swApp As Object

Sub main()

Set swApp = Application.SldWorks
Dim swModel As Object
Set swModel = swApp.ActiveDoc
Dim ExcelFile As String
Dim swTab As Integer
Dim swPart As Object
Set swPart = swModel
Dim swFeature As Object
Set swFeature = swPart.FeatureByName("Muster")

ExcelFile = "\\[UNC-Pfad]\Bohrbild_Importtabelle1.xlsx"
swTab = swFeature.DimPatternFeatureData.ImportFromExcel(ExcelFile) '-> Fehler

swModel.EditRebuild3
End Sub

Kann irgendwer mir hier helfen, besser zu verstehen, wie ich die Features und Eigenschaften anzusprechen habe, damit es klappt?
Vielen Dank im Voraus.

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

HenryV
Mitglied
Konstrukteur, Engineering


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

Beiträge: 823
Registriert: 18.05.2005

SolidWorks 2022 x64 SP5.0
Dell Precision 5820
Intel Xeon W-2125 4x4GHz
NVIDIA Quadro P2000 5GB
32GB RAM
2x Dell U2412M, 24" TFT
Windows 10 Enterprise x64 22H2
Microsoft 365 E5
Microsoft Visual Studio Enterprise 2022

erstellt am: 30. Apr. 2025 18:02    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 Obi1317 10 Unities + Antwort hilfreich

Hallo

Nachdem du das Feature hast, musst du dessen Definition abfragen-> IGetDefinition Method (IFeature)
Dadurch erhältst du die IDimPatternFeatureData
In dieses kannst du deine Excel-Tabelle importieren.
Danach musst du das Feature noch mit IModifyDefinition2 updaten.

Gruss Andreas

PS: Hier mein Test-Makro. Das Importieren dauerte bei mir gefühlt echt lange, k.A. ob es an meinem PC liegt oder ob der Befehl langsam ist.
Ob es auch mit einem UNC-Pfad funktioniert habe ich nicht getestet.

Code:
Option Explicit
Dim swApp As SldWorks.ISldWorks
Dim swModel As SldWorks.IModelDoc2
Dim swPart As SldWorks.IPartDoc
Dim swFeature As SldWorks.IFeature
Dim swDimensionDrivenTablePatternFeat As SldWorks.IDimPatternFeatureData

Dim ExcelFile As String
Dim swTab As Integer
Dim bRet As Boolean
   
Sub main()

Set swApp = Application.SldWorks
Set swModel = swApp.IActiveDoc
Set swPart = swModel

Set swFeature = swPart.IFeatureByName("Muster")
Set swDimensionDrivenTablePatternFeat = swFeature.IGetDefinition

'ExcelFile = "\\[UNC-Pfad]\Bohrbild_Importtabelle1.xlsx"
ExcelFile = "C:\Users\HenryV\Desktop\Bohrbild_Importtabelle1.xlsx"

'swTab = swFeature.DimPatternFeatureData.ImportFromExcel(ExcelFile) '-> Fehler
swTab = swDimensionDrivenTablePatternFeat.ImportFromExcel(ExcelFile) '-> Fehler

' Apply changes
bRet = swFeature.IModifyDefinition2(swDimensionDrivenTablePatternFeat, swModel, Nothing): Debug.Assert bRet

swModel.EditRebuild3

End Sub


PPS: Die Code Tags findest du links neben dem Eingabefeld oder du kannst sie selbst rein schreiben -> UBB-Code

------------------
21 ist nur die halbe Antwort.

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

Obi1317
Mitglied
Konstrukteur


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

Beiträge: 27
Registriert: 15.02.2016

Win10, SWX2023

erstellt am: 05. Mai. 2025 12:06    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

Hi,

sorry für die späte Rückmeldung, da war das lange WE dazwischen.
Den Sinn hinter dem Abfragen der Definition begreife ich nicht, aber das Makro funktioniert.
Vielen Dank!

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

Obi1317
Mitglied
Konstrukteur


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

Beiträge: 27
Registriert: 15.02.2016

Win10, SWX2023

erstellt am: 05. Mai. 2025 13:23    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

Nachtrag bzw. Folgefrage:
Ich hab den Code in ein Excel-Makro übertragen und entsprechend verändert, damit es aus Excel heraus funktioniert. In der vorletzten Zeile gibt es aber einen Laufzeitfehler.
Code:

Sub Tabelle()
    Dim swApp As Object
    Dim swModel As Object
    Dim swPart As Object
    Dim swFeature As Object
    Dim swDimensionDrivenTablePatternFeat As Object
   
    Dim ExcelFile As String
    Dim swTab As Integer
    Dim bRet As Boolean
   
    Set swApp = GetObject(, "SldWorks.Application")
    Set swModel = swApp.ActiveDoc
    Set swPart = swModel
   
    Set swFeature = swPart.FeatureByName("Muster")
    Set swDimensionDrivenTablePatternFeat = swFeature.GetDefinition
   
    ExcelFile = "\\[UNC-Pfad]\Bohrbild_Importtabelle1.xlsx"
   
    swTab = swDimensionDrivenTablePatternFeat.ImportFromExcel(ExcelFile)
   
    ' Apply changes
    bRet = swFeature.ModifyDefinition2(swDimensionDrivenTablePatternFeat, swModel, Nothing): Debug.Assert bRet  '-> Fehler
   
    swModel.EditRebuild3

End Sub


Wie muss die ich vorletzte Zeile anpassen, damit es funzt?

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

HenryV
Mitglied
Konstrukteur, Engineering


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

Beiträge: 823
Registriert: 18.05.2005

SolidWorks 2022 x64 SP5.0
Dell Precision 5820
Intel Xeon W-2125 4x4GHz
NVIDIA Quadro P2000 5GB
32GB RAM
2x Dell U2412M, 24" TFT
Windows 10 Enterprise x64 22H2
Microsoft 365 E5
Microsoft Visual Studio Enterprise 2022

erstellt am: 05. Mai. 2025 18:32    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 Obi1317 10 Unities + Antwort hilfreich

ModifyDefinition2 gibt es nicht. Bei LateBinding kannst du ModifyDefinition (ohne die 2) verwenden.

------------------
21 ist nur die halbe Antwort.

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



Anzeige:Infos zum Werbeplatz >>

GeoVisual Civil Engineer CAD APP für 3D, Tiefbau, AEC - Architektur-, Ingenieur- und Bauwesen

Die benutzerfreundliche Softwarelösung zur Visualisierung von Infrastrukturplanungen

Obi1317
Mitglied
Konstrukteur


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

Beiträge: 27
Registriert: 15.02.2016

Win10, SWX2023

erstellt am: 06. Mai. 2025 08:36    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

Jepp, funzt!
Vielen lieben Dank!!! 

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)2025 CAD.de | Impressum | Datenschutz