Macro fond de plan

Bonjour ,

je cherche a mettre a jour les fonds de plans de vieux plans. J'ai les format templates suivant présent dans le dossier windows C:\parametre-sw\Fonds de Plans

A3 ;   A3_Technical_specifications_catalogue_products ; A2  ; A2_TECH; A1;  A1_TECH

 

sur mes vieux fonds de plan j'utilisais

 

A3 ;  Technical_specifications_catalogue_products ; A2  ; A2_TECH; A1;  A1_TECH

Je souhaiterais que si nom templates est

Technical_specifications_catalogue_products.slddrt   alors charger le fond de plan par : A3_Technical_specifications_catalogue_products.slddrt

Si A3.slddrt  alors A3.slddrt nouveau chemin

..............

 

Je vous joint la macro que j'utilise.

Avez vous une idée pour vérifier le nom du templates?

 

Merci d'avance de vos retours

 


mise_en_forme_fdp_avant_validation.swp

Bonjour,

En fonction de comment est déclaré la fonction SldWorks.Sheet il faut écrire ceci:

Set swSheet = swDraw.GetCurrentSheet
sTemplate = Mid(swSheet.GetTemplateName, InStrRev(swSheet.GetTemplateName, "\") + 1)

 

1 « J'aime »

Merci pour votre retour cyril

j'ai testé, mais cela ne fonctionne pas, ci joint la macro mise à jour

Avez vous une idée?

 

 

 


mise_en_forme_fdp_avant_validation_-_copie.swp

Bonjour,

Je n'avais pas ouvert le code jusque là donc en l'ouvrant, je vois qu'il manque un traitement sur le nom du fond de plan trouvé.

Il faut donc utiliser sTemplate avec du If ... Then.

Après pour le changement de fond de plan sur le même format, je vais reprendre une information que m'avait donné @d.roger dans un autre sujet en 2017.

En gros il faut lancer deux fois le changement de fond de plan pour que ça fonctionne.

bRet = swDraw.SetupSheet4(swSheet.GetName, vSheetProps(0), 12, vSheetProps(2), vSheetProps(3), True, stemplatepath, 0#, 0#, "")
bRet = swDraw.SetupSheet4(swSheet.GetName, vSheetProps(0), 12, vSheetProps(2), vSheetProps(3), True, stemplatepath, 0#, 0#, "")

 

Bonjour Cyril,

Merci pour votre retour.

Pour le format A3, j'ai 3 formats existant A3,A3TECH,A3_Technical_specifications_catalogue_products 

Tous les templates sont nommés de la même facon (A3 pour A3 , A3-TEC pour A3-TECH, A2 pour A2 ........), sauf le  Technical_specifications_catalogue_products qui est devenu A3_Technical_specifications_catalogue_products.

Je suppose qu'il faut créer autant de constantes que de fond de plan?

Je ne comprend pas comment  procéder pour vérifier le nom du fond de plan et charger le fond de plan correspondant.

merci d'avance de votre retour


mise_en_forme_fdp_avant_validation_-_copie.swp

Bonjour,

Exemple pour le format A3, à répéter sur les autres formats.

                   If vSheetProps(0) = "8" Then
                      Select Case sTemplate
                        Case "Technical_specifications_catalogue_products.slddrt"
                            stemplatepath = cDirTemplate & "A3_Technical_specifications_catalogue_products.slddrt"
                        Case "A3.slddrt"
                            stemplatepath = cDirTemplate & cTemplateA3
                        Case "A3-TEC.slddrt"
                            stemplatepath = cDirTemplate & "A3-TEC.slddrt"
                        End Select
                        bRet = swDraw.SetupSheet4(swSheet.GetName, vSheetProps(0), 12, vSheetProps(2), vSheetProps(3), True, stemplatepath, 0#, 0#, "")
                        bRet = swDraw.SetupSheet4(swSheet.GetName, vSheetProps(0), 12, vSheetProps(2), vSheetProps(3), True, stemplatepath, 0#, 0#, "")

 

2 « J'aime »

Si j'ai bien tout suivi tu récupère le nom du template via la variable sTemplate.

Il suffit juste de mettre dans la ligne suivant " sTemplate = Mid(swSheet.GetTemplateName, InStrRev(swSheet.GetTemplateName, "\") + 1)", un debug.print sTemplate ou msgbox sTemplate pour voir la valeur de la variable s'afficher.

Ensuite au lieu de faire tes test via vSheetProps tu fait ton test avec la variable sTemplate (Is sTemplate est égal à ou commence par alors...

1 « J'aime »

Merci cyril,

bonne journée