Rebonjour à tous,
désolé de publier sans tester, donc je donne suite
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Sub Gestion()
AffectationPrincipauxObjets
'Gestion de la Hauteur du fond
If Test("D1@Esq1", "500") Then
boolstatus = swModel.EditRebuild3()
Else
MsgBox " Problème"
End If
'Largeur...
'Profondeur...
'Epaisseur...
End Sub
Sub AffectationPrincipauxObjets() 'Peut être placé dans un autre module sans PB
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
'Set= .....
End Sub
Function Test(NomVar As String, ValVar As String) As Boolean 'Peut être placé dans un autre module sans PB
Dim swEquationMgr As SldWorks.EquationMgr
Dim vSplit As Variant
Set swEquationMgr = swModel.GetEquationMgr
Test = False
For i = 0 To swEquationMgr.GetCount - 1
vSplit = Split(swEquationMgr.equation(i), "=")
vSplit(0) = Replace(vSplit(0), Chr(34), Empty)
vSplit(0) = Replace(vSplit(0), Chr(32), Empty)
If vSplit(0) = NomVar Then
swEquationMgr.equation(i) = Replace(swEquationMgr.equation(i), vSplit(1), ValVar)
Test = True
Exit Function
End If
Next i
End Function
Je viens de tester et retravailler vite fait ce code à toi JB de le 'mettre à ta sauce'.
Faire appel à des functions (ici Test) avec passage d'arguments ( ici NomVar et ValVar) te permet de ranger tes affaires dans plusieurs modules. Concernant la sub intitulée Gestion, je l'a vois bien dans un module de ta UserForm, à voir.
Cordialement MC