Macro solidworks aangepaste eigenschappen editie + Userform

Hallo

Ik heb een macro die oorspronkelijk perfect op zichzelf werkt, maar die ik graag wil verbeteren en combineren met een UserForm. En daar werkt het niet goed. De macro zou moeten worden uitgevoerd op de geselecteerde documenten in een ListBox van de UserForm, maar er gebeurt niets wanneer de knop Uitvoeren wordt ingedrukt. De koppeling tussen de UserForm en de macro lijkt niet correct te zijn gedaan.

Als iemand enig idee heeft wat de problemen zou kunnen veroorzaken, bedankt voor je hulp!

Om het oorspronkelijke verzoek toe te lichten: wijzig de eenheden en aangepaste eigenschappen van solidworks onderdelen, assemblage en tekening. Mogelijk meerdere tegelijk, maar mogelijk slechts één. Vandaar het idee van het gebruikersformulier met een lijst van componenten om te selecteren
Configureer Geïmporteerde Components.swp (96 kB)

Hallo

U kunt beginnen met het gebruik van Debug.Print-functies om de inhoud van uw variabelen bij elke stap voor en tijdens het indrukken van de knop te controleren. Dit zou het probleem snel moeten benadrukken.

3 likes

Hallo

Het probleem zit hem in de regels van het UserForm1-formulier.

    ' Parcourir la collection des documents sélectionnés
    For Each selectedDocTitle In selectedDocs
        ' Trouver le modèle actif correspondant
        Set swModel = swApp.ActiveDoc
        If InStr(1, swModel.GetTitle, selectedDocTitle, vbTextCompare) > 0 Then
            ' Exécuter Macro11 sur ce modèle
            Macro11 swModel
        End If
    Next selectedDocTitle

De macro werkt alleen als het huidige document is geselecteerd in de lijst. U moet dus door geopende documenten bladeren, zie dit voorbeeld van de API: Get Paths of Open Documents (VBA) - 2024 - SOLIDWORKS API Help

Hallo

inderdaad goed gezien. Ik heb de test gedaan, zelfs als de documenten goed uit de lijst komen, als ik een document doordeel dat niet het actieve document is, gebeurt er niets.

Wanneer ik het actieve document selecteer, wordt de macro goed gestart totdat deze op dit punt aankomt:

' Lus om elke eigenschap te controleren
Voor elke propName In propNames

met een fout ‹ 13 ›

En inderdaad op mijn document, de eenheden zijn gewijzigd, maar de macro stopt en slaagt er niet in om de aangepaste eigenschappen te beheren. wat goed werkte door alleen de macro te starten zonder enige link naar het gebruikersformulier :face_with_monocle:

Ik zal eerst de geschiedenis van het actieve document in meer detail bekijken

Fout 13 is een typemismatch. Er moet dus een probleem zijn in de instellingen in het verleden.