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)
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.
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
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
Je vais regarder plus en détail l’histoire du document actif dans un premier temps