Remplacement des propriétés personalisées

Bonjour,

Pour ajout d'une propriété personnalisée en VBA :

Dim swApp As Object

Sub main()

Set swApp = Application.SldWorks

Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim cusPropMgr As SldWorks.CustomPropertyManager
Dim bret As Boolean

Set swModel = swApp.ActiveDoc
Set swModelDocExt = swModel.Extension
Set cusPropMgr = swModelDocExt.CustomPropertyManager("")

bret = cusPropMgr.Add3("Designation4", swCustomInfoType_e.swCustomInfoText, "test Designation 4", swCustomPropertyAddOption_e.swCustomPropertyDeleteAndAdd)

End Sub

Cordialement,

Donc pour ajout d'une propriété, relevé de la valeur d'une propriété et suppression d'une propriété on peut faire :

Dim swApp As Object

Sub main()

Set swApp = Application.SldWorks

Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim config As SldWorks.Configuration
Dim cusPropMgr As SldWorks.CustomPropertyManager
Dim bret As Boolean
Dim lRetVal As Long
Dim ValOut As String
Dim ResolvedValOut As String
Dim wasResolved As Boolean
Dim nNbrProps As Long
Dim vPropNames As Variant
Dim vPropTypes As Variant
Dim vPropValues As Variant
Dim resolved As Variant
Dim custPropType As Long
Dim K As Long
Dim NomProperty As String

Set swModel = swApp.ActiveDoc
Set swModelDocExt = swModel.Extension
Set cusPropMgr = swModelDocExt.CustomPropertyManager("")

' On ajoute une propriété
bret = cusPropMgr.Add3("Designation5", swCustomInfoType_e.swCustomInfoText, "test Designation5", swCustomPropertyAddOption_e.swCustomPropertyDeleteAndAdd)

nNbrProps = cusPropMgr.Count
vPropNames = cusPropMgr.GetNames
For K = 0 To nNbrProps - 1
    cusPropMgr.Get2 vPropNames(K), ValOut, ResolvedValOut
    custPropType = cusPropMgr.GetType2(vPropNames(K))
    ' On relève la valeur de la propriété "Designation5"
    If vPropNames(K) = "Designation5" Then
        NomProperty = ResolvedValOut
        MsgBox NomProperty
    End If
    ' On supprime la propriété "Designation5"
    If vPropNames(K) = "Designation5" Then
        cusPropMgr.Delete (vPropNames(K))
    End If
Next K

End Sub

Cordialement,

Merci D. Roger pour ta récompse, ça fonctionne excepté pour les valeurs des propriétés qui continnent des guillemets par exemple " $PRP:"SW-File Name", dans la macro se met  défaut  "erreur de compilation  Attendu séparateur de liste ou )", je comprends bien le problème ce qui est inscrit dans les propriétés se "mélange" au code VB comment faire pour lui dire que les guillmets ne font pas partie du code mais de la valeur à écrire dans la case ?

tu écrit comme suit (avec toutes les guillemets) : "$PRP:""SW-File Name"""

Cordialement,

1 « J'aime »

Super parfait tout fonctionne comme il faut ! Je regarderai plus tard pour pouvoir lancer la amcro en rafale sur plusiseurs fichiers.