Validation du SmartProperties

J'ai fermé l'ancien sujet trop rapidement...

Ma macro lance le SmartProperties sur chacun des dossiers Articles Soudés.

J'ai utilisé la macro d'axemble "SmartProperties 2013-Auto.swp", ce qui le valide automatiquement.

Comment faire dans la macro pour "attendre" que l'utilisateur valide lui-même chaque Smart avant de passer au suivant ?

Cette ligne lance bien le SmartProperties, mais la macro n'atant pas la validation de celui-ci pour continuer...

1 « J'aime »

Si la macro n'est pas trop longue, tu peux la coller ici ?

Et indiquer à quel moment tu voudrais la pause ?

Voila le bout de macro concerné :

 

    Set swapp = Application.SldWorks
    Set swModel = swapp.ActiveDoc

    On Error Resume Next
    ToolbarId = 59427
    If swModel Is Nothing Then
        MsgBox ("Pas de document actif")
        End
    Else
        Dim stPathMacro As String
        stPathMacro = swapp.GetCurrentMacroPathName
        strRegFileName = Replace(stPathMacro, ".swp", ".dll")
        strDllFileName = strRegFileName
              
        lStatus = swapp.LoadAddIn(strDllFileName)
        Set swDCAddIn = swapp.GetAddInObject("{5E333A56-A5B6-4a90-B365-BEF36FE5D81C}")
        swDCAddIn.ToolbarCallback0

ICI
        Compteur = Compteur + 1
       
    End If

 

 

Avant le ICI, le smart se lance, mais la macro continue (compteur, puis suite...)

1 « J'aime »

Et que veux tu attendre ?

Il existe DoEvents qui permet d'attendre une action de l'utilisateur :

http://social.msdn.microsoft.com/Forums/en-US/0398e15d-717b-49eb-b093-62cd0acdf00b/wait-for-event-in-visual-basic-2010

 

Ou pour un temps donné, tu peux boucler sur un DoEvents pour "maintenir" ton code actif comme dans la solution que j'ai proposé ici (page 2) :

 

http://www.lynkoa.com/forum/3d/aucun-acces-solidworks-lors-de-l-execution-de-ma-macro-avec-un-bouton?page=1

 

   For Y = 1 To 50000
            DoEvents
        Next Y

 

Ou 50000 représente 5 secondes.

Bonjour,

 

Je pense que le mieux serai de lancer une macro qui lance SmartProperties sur le premier Article et qu'ensuite une nouvelle macro serait lancer via le SmartProperties qui relancerais SmartProperties sur l'article suivant

La deuxième macro sera lancer avec le type "Executé" et avec comme paramétre "Aprés la fermeture de SmartProperties".

 

Pour savoir sur quel dossier de mécano on a appliqué SmartProperties, soit renseigné l'information dans une propriétés du document, soit récupérer l'élément selectionné dans SolidWorks

 

 

6 « J'aime »

@Lucas : je veux attendre que l'utilisateur "Valide" le SmartProperties de l'Article1 avant de passer au suivant.

Le DoEvents est peut-être une solution, mais je ne vois pas trop comment l'utiliser...

 

@Prossignol : l'idée est pas mal, mais difficile à mettre en place. Car la macro "Article suivant" ne marche plus dans ce cas là. Il faudrait tout reprendre à zero. Mais je garde l'idée si jamais.

1 « J'aime »

Réussi avec le DoEvents et la macro en fin de Smart !

 

    CompteurValide = False
SMARTPROPERTIES
    While CompteurValide <> True
       DoEvents
    Wend

 

 


Macro à éxécuter en fin de smart.
___________________________
    Public Sub execute()
       CompteurValide = True
    End Sub

 

Merci les gars

1 « J'aime »