Macro solidworks édition propriétés personalisées + Userform

Bonjour,

J’ai une macro qui a l’origine fonctionne parfaitement seule, mais que je voudrais améliorer et combiner avec une UserForm. Et là elle ne fonctionne pas correctement. La macro devrait s’exécuter sur les documents sélectionnés dans une ListBox de la UserForm, mais rien ne se passe lorsqu’on appuie sur le bouton d’exécution. Le lien entre la UserForm et la macro ne semble pas se faire correctement.

Si quelqu’un a une idée de ce qui pourrait poser problème, merci pour votre aide !

Pour expliquer la demande initiale : modifier les unités et les propriétés personnalisés de pièces, assemblage et mise en plan solidworks. Potentiellement plusieurs a la fois mais potentiellement qu’une. d’où l’idée de la userform avec liste des composants a sélectionner
Configure Imported Components.swp (96 Ko)

Bonjour

Tu peux commencer par utiliser des fonctions Debug.Print pour vérifier le contenu de tes variables à chaque étape avant et pendant l’appui sur le bouton. Ça devrait rapidement mettre en lumière le problème.

3 « J'aime »

Bonjour,

Le problème se situe dans ces lignes du formulaire UserForm1.

    ' 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

La macro ne fonctionne que si le document actif est sélectionné dans la liste. Il faut donc parcourir les documents ouverts, voir cet exemple de l’API: Get Paths of Open Documents (VBA) - 2024 - SOLIDWORKS API Help

Bonjour,

en effet bien vu. J’ai fait le test même si les documents sortent bien dans la liste si je sectionne un document qui n’est pas celui actif, rien ne se passe.

Quand je sélectionne le document actif la macro se lance bien jusqu’à arriver à là :

’ Boucle pour vérifier chaque propriété
For Each propName In propNames

avec une erreur ‹ 13 ›

et en effet sur mon document, les unités sont bien modifier mais la macro se stop et ne réussis pas a gérer les propriétés personalisée. ce qui pourtant fonctionnait bien en lancant la macro seul sans lien avec la userform :face_with_monocle:

Je vais regarder plus en détail l’histoire du document actif dans un premier temps

Erreur 13 c’est une incompatibilité de type. Donc il doit y avoir un problème dans les paramètres passés.