Macro - Mise en plan PDF - Nom spé - Dossiers multiple

Bonjour, 
J'avais déjà posté il y a quelques mois un demande... après des multiples essais infructueux, je clarifie ce que je souhaite mettre en place pour me faire gagner beaucoup de temps

Comme vous allez surement le comprendre par la simplicité de la macro, je n'y connais rien, j'essaye d'apprendre mais c'est assez complexe... donc en passant, si vous avez un nom de bouquin ou un site pour apprendre, je suis preneur. 

Le but final de la macro:
J'ai une mise en plan avec une ou plusieurs feuilles
Je souhaite l'exporter dans un seul fichier PDF dans deux dossiers.

  1. sur le bureau
  2. dans le dossier où est enregistré le fichier de mise en plan.

Je souhaite aussi qu'il soit renommé de la manière suivante: 
"Ville - Rue/Quartier - Ind. (lettre d'indice) - DD.MM.YYYY"
Pour exemple, si je prends celui de ma photo ci-dessus, ça donnerai: 
"St Malo de Guersac - Allée des garennes - Ind. A - 30.01.2019"Actuellement j'ai essayé plein de macro, bidouillé certaine sans réussir.
La seul qui fonctionne mais qui m'oblige à renommer et à copier c'est celle ci (voir fichier joint)
 

Merci d'avance à tous ceux qui pourrons m'aider


ext_to_pdf.swp

Bonjour,

Tu as déjà toutes les réponses sur ton ancienne demande, voir ICI.

Le but est-il que l'on écrive cette macro spécifique à ta place ?

Pour les sites, tu peux essayer :

- https://excel-malin.com/tutoriels-vba/

- https://excel.developpez.com/cours/?page=prog#prog

- https://openclassrooms.com/fr/courses/825502-analysez-des-donnees-avec-excel/822888-premiers-pas-en-vba

- http://help.solidworks.com/2019/English/api/HelpViewerDS.aspx?version=2019&prod=api&lang=English&path=SWHelp_List.html&id=e37ca3781e9d493db18b067164ef22f4

- ...

Cordialement,

Tout comme toi je n'y connais pas grand chose, j'ai fait mes macro en prenant des bouts par-ci par là. Essaye celle ci-jointe, en changeant les propriétés personnalisées, et ajoutant un 2eme export avec ton 2eme chemin. Moi ca marche bien.


file_save_as_dxf.txt
1 « J'aime »

Voici qui devrait répondre à ton besoin :

Option Explicit

Dim swApp As Object
Dim swModel As SldWorks.ModelDoc2
Dim swCustProp As CustomPropertyManager
Dim valOut1 As String
Dim valOut2 As String
Dim valOut3 As String
Dim resolvedValOut1 As String
Dim resolvedValOut2 As String
Dim resolvedValOut3 As String
Dim Path As String
Dim PathDesktop As String
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swExportPDFData As SldWorks.ExportPdfData
Dim nFileName As String
Dim nFileName2 As String
Dim boolstatus As Boolean
Dim lErrors As Long
Dim lWarnings As Long
Dim lgFichier As Integer

Sub main()
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc

    Dim dateNow As String
    dateNow = Replace(Date, "/", ".")

    If swModel.GetType = swDocDRAWING Then
    
        Path = swModel.GetPathName
        lgFichier = InStrRev(Path, "\", -1, vbTextCompare) - 1
        If lgFichier > 0 Then
              Path = Left(Path, lgFichier)
        End If

        PathDesktop = Environ("USERPROFILE") & "\Desktop"

        Set swCustProp = swModel.Extension.CustomPropertyManager("")
        swCustProp.Get2 "Ville", valOut1, resolvedValOut1
        swCustProp.Get2 "Rue/Quartier", valOut2, resolvedValOut2
        swCustProp.Get2 "Indice", valOut3, resolvedValOut3

        Set swModelDocExt = swModel.Extension
        Set swExportPDFData = swApp.GetExportFileData(1)
        swExportPDFData.ViewPdfAfterSaving = False
        
        nFileName = Path & "\" & resolvedValOut1 & " - " & resolvedValOut2 & " - Ind." & resolvedValOut3 & " - " & dateNow & ".PDF"
        boolstatus = swModelDocExt.SaveAs(nFileName, 0, 0, swExportPDFData, lErrors, lWarnings)
        
        nFileName2 = PathDesktop & "\" & resolvedValOut1 & " - " & resolvedValOut2 & " - Ind." & resolvedValOut3 & " - " & dateNow & ".PDF"
        boolstatus = swModelDocExt.SaveAs(nFileName2, 0, 0, swExportPDFData, lErrors, lWarnings)

    End If
End Sub

 

Sans oublier de mettre les références nécessaires (Outils / Références...) :

Cordialement,

1 « J'aime »

Bonjour,

Non le but n'est pas que l'on m'écrive une VBA à ma place.

J'ai essayé d'en faire plusieurs (j'en était à ma 4eme différente sans réussir)

Je suis pour apprendre à partir de forum. J'ai appris à faire des guitares grâce à ça et crois moi, personne n'a mis un coup de rabot à ma place...donc ma demande à été renouvelée car j'étais découragé de tourner en rond sans rien réussir. 

Merci pour vos réponses, je vais voir ce que cela donne en faisant les changements que vous m'avez indiqué. 

Je reviens vers vous pour montrer ce qu'il en ressort

Bonne journée

Après quelques recherches et tentatives voila ce que j'ai compilé:

Option Explicit

Dim swApp           As SldWorks.SldWorks
Dim swModel         As SldWorks.ModelDoc2
Dim swDraw          As SldWorks.DrawingDoc
Dim Filepath        As String
Dim fileName        As String
Dim Revision        As String
Dim exportData      As SldWorks.ExportPdfData
Dim lErrors         As Long
Dim lWarnings       As Long
Dim confName        As String
Dim revNmb          As String
Dim val             As String
Dim resolved        As Boolean
Dim swview          As SldWorks.View
Dim swRefModel      As ModelDoc2
Dim swRefAssy       As AssemblyDoc
Dim swCustPropMgr   As SldWorks.CustomPropertyManager
Dim ValOut          As String
Dim numéro          As String
Dim description     As String

Sub Main()
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    If swModel Is Nothing Then
        MsgBox "Tu as pensé à ouvrir ta mise en plan?", vbCritical
        End
    End If
    If swModel.GetType <> swDocDRAWING Then
        MsgBox "Et si tu ouvrais ta mise en plan avant?", vbCritical
        End
    End If
    Set swDraw = swModel
    If swDraw.GetPathName = "" Then
        swDraw.Save
    End If

    If swModel.GetType = swDocDRAWING Then ' Pour savoir si le document est un plan
            Set swDraw = swApp.ActiveDoc
            Set swview = swDraw.GetFirstView 'selectionne le fond de plan
            Set swview = swview.GetNextView  'selectionne la premier vue
            Set swRefModel = swview.ReferencedDocument
            Set swCustPropMgr = swRefModel.Extension.CustomPropertyManager("")

swCustPropMgr.Get4 "Ville", True, ValOut, "Ville", False   'récupère la valeur de la propriété "Ville"
swCustPropMgr.Get5 "Rue/Quartier", True, ValOut, "Rue/Quartier", False 'récupère la valeur de la propriété "Rue/Quartier"
swCustPropMgr.Get2 "indice", True, ValOut, "indice", False   'récupère la valeur de la propriété "indice"

Dim dateNow As String
dateNow = Replace(Date, "/", ".")

Filepath = "D:\Téléchargements\Plan PDF"
Filepath = Filepath + "\"
fileName = ValOut & " " & "-" & " " & ValOut & " " & "-" & " " & "Ind." & " " & ValOut & " " & "-" & " " & dateNow

swDraw.SaveAs (Filepath + fileName + ".PDF")

Exit Sub
End If

End Sub

 

Qu'on soit claire, je n'ai compris qu'une petite partie  de tout ça mais c'est fonctionnel sauf une partie. 

J'ai regardé plusieurs sujet de récupération de propriété mais je ne comprends pas comment cela fonctionne: 

swCustPropMgr.Get4 "Ville", True, ValOut, "Ville", False   'récupère la valeur de la propriété "Ville"
swCustPropMgr.Get5 "Rue/Quartier", True, ValOut, "Rue/Quartier", False 'récupère la valeur de la propriété "Rue/Quartier"
swCustPropMgr.Get2 "indice", True, ValOut, "indice", False   'récupère la valeur de la propriété "indice"

le Get4 ou Get5... je ne vois pas comment dire : 

La valeur assigné à "Ville" est ce qu'il y a dans la case suivante

et ensuite, pouvoir le retranscrire dans le nom car pour l'instant, hormis la date, les noms des propriétés ne s'affiche pas. Voila le résultat que j'obtiens: " -  - Ind.  - 04.02.2019.PDF"

De plus, pour comprendre un peu plus, à quoi sert toutes les lignes en dessous de "Option Explicit" du style: 

Dim swApp           As SldWorks.SldWorks

 

Merci d'avance

Bonjour,

Alors déjà pour les lignes "Dim xxx As yyyyyyy" :

Dim : déclaration de la variable

xxx : nom choisi pour cette variable (sans espaces)

As : déclaration du type de la variable

yyyyyyy : type de la variable

Donc "Dim swApp As SldWorks.SldWorks" veut dire que l'on déclare une variable nommée swApp qui est du type SldWorks, voir ICI. Quelques explications sur d'autres type de variables ICI.

Pour les fonctions Get, Get2, Get3, Get4 et Get5 : La fonction Get5 est une évolution de la fonction Get4 qui est une évolution de la fonction Get3 qui est une évolution de la fonction Get2 qui est une évolution de la fonction Get, voir ICI. Chaque fonction a un certain nombre d'arguments qui sont d'un certain type, l'ordre et la quantité de ceux-ci doivent être respecté, certains arguments servent à envoyer une valeur à la fonction et d'autres permettent de récupérer des valeurs, ce qui est le cas pour la fonction Get, par exemple :

swCustProp.Get2 "Ville", valOut1, resolvedValOut1 veut dire que je peux récupérer la "valeur / Expression de texte" dans la variable de retour "valOut1" et la "Valeur évaluée" dans la variable de retour "resolvedValOut1" pour la propriété personnalisée nommée "Ville".

Dans ta macro il y a effectivement quelques problèmes sur les fonctions Get, déjà à voir si tu veux utiliser la plus récente (Get5) ou une autre mais choisi en une et une seule puis respecte le nombre et le type d'arguments de celle que tu auras choisi et enfin, les valeurs renvoyées doivent lêtre dans des variables différentes sinon celle-ci est écrasée au fur et à mesure (ta variable ValOut). Regarde ce que j'ai fais dans ma macro :

swCustProp.Get2 "Ville", valOut1, resolvedValOut1
swCustProp.Get2 "Rue/Quartier", valOut2, resolvedValOut2
swCustProp.Get2 "Indice", valOut3, resolvedValOut3

....

nFileName = Path & "\" & resolvedValOut1 & " - " & resolvedValOut2 & " - Ind." & resolvedValOut3 & " - " & dateNow & ".PDF"

Voilà, en espérant avoir été à peu près clair.

Cordialement,

 

2 « J'aime »

Bonjour

Merci pour ces explications. 

Je vais regarder les liens que tu m'as donné. 

Après modification je me retrouve avec un soucis que j'avais avant, il ne reconnait pas le valOut... je ne comprends pas pourquoi. aurais-tu une idée pourquoi?

Merci d'avance


save_pdf_test1_04.02.2019.swp

Bonjour,

La macro commence par la ligne "Option Explicit", ce qui veut dire qu'il faut déclarer les variables de façon explicite or il te manque les variables suivantes dans les lignes de déclarations :

Dim valOut1 As String
Dim valOut2 As String
Dim valOut3 As String
Dim resolvedValOut1 As String
Dim resolvedValOut2 As String
Dim resolvedValOut3 As String

Il faut aussi que tu changes "swCustProp" par "swCustPropMgr" dans les lignes :

swCustProp.Get2 "Ville", valOut1, resolvedValOut1           'récupère la valeur de la propriété "Ville"
swCustProp.Get2 "Rue/Quartier", valOut2, resolvedValOut2    'récupère la valeur de la propriété "Rue/Quartier"
swCustProp.Get2 "Indice", valOut3, resolvedValOut3          'récupère la valeur de la propriété "indice"

puisque la variable que tu as déclarée s'appelle "swCustPropMgr".

Et enfin, il faut que tu fasses le ménage dans la construction du nom du fichier pdf dans les lignes :

Filepath = "D:\Téléchargements\Plan PDF"
Filepath = Filepath + "\"
nfileName = Path & "\" & resolvedValOut1 & " - " & resolvedValOut2 & " - Ind." & resolvedValOut3 & " - " & dateNow & ".PDF"

swDraw.SaveAs (Filepath + fileName + ".PDF")

Cela pourrait être comme suit :

Filepath = "D:\Téléchargements\Plan PDF\"

fileName = resolvedValOut1 & " - " & resolvedValOut2 & " - Ind." & resolvedValOut3 & " - " & dateNow & ".PDF"

swDraw.SaveAs (Filepath + fileName )

Attention à bien déclarer les variables puis ensuite à bien les utiliser par leurs noms :

Dim fileName As String

ne peut pas être utilisée comme "nfileName"

Cordialement,

2 « J'aime »

Re,

Peux-tu la tester voir si elle marche avec ton PC ?

J'ai changé:

  1. le lieu d'enregistrement histoire d'exclure tout problème de conflit ou d'autorisation.
  2. Dim dateNow As String, je l'ai placé dans Option Explicit
  3. swCustProp.Get2 en swCustPropMgr.Get2
  4. la ligne avec Filepath = "C:\" pour rajouter le "\" et donc supprimé la ligne suivante qui devient donc inutile
  5. nfileName je n'avais pas compris pourquoi le "n" avant cette ligne de commande... Quelle est la différence entre avec ou sans?

Fini le message d'erreur mais je reviens au problème précédent qui me donne un fichier " -  - Ind. - 05.02.2019"

Est-ce que les Majuscules pourraient poser problème car j'ai vu une différence (et je n'arrive pas a la changer il me le corrige automatiquement) entre ValOut - valOut1 - resolvedValOut1

Cordialement

Option Explicit

Dim swApp               As SldWorks.SldWorks
Dim swModel             As SldWorks.ModelDoc2
Dim swDraw              As SldWorks.DrawingDoc
Dim Filepath            As String
Dim fileName            As String
Dim Revision            As String
Dim exportData          As SldWorks.ExportPdfData
Dim lErrors             As Long
Dim lWarnings           As Long
Dim confName            As String
Dim revNmb              As String
Dim val                 As String
Dim resolved            As Boolean
Dim swview              As SldWorks.View
Dim swRefModel          As ModelDoc2
Dim swRefAssy           As AssemblyDoc
Dim swCustPropMgr       As SldWorks.CustomPropertyManager
Dim dateNow             As String
Dim ValOut              As String
Dim numéro              As String
Dim description         As String
Dim valOut1             As String
Dim valOut2             As String
Dim valOut3             As String
Dim resolvedValOut1     As String
Dim resolvedValOut2     As String
Dim resolvedValOut3     As String

Sub Main()
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    If swModel Is Nothing Then
        MsgBox "Tu as pensé à ouvrir ta mise en plan?", vbCritical
        End
    End If
    If swModel.GetType <> swDocDRAWING Then
        MsgBox "Et si tu ouvrais ta mise en plan avant?", vbCritical
        End
    End If
    Set swDraw = swModel
    If swDraw.GetPathName = "" Then
        swDraw.Save
    End If

    If swModel.GetType = swDocDRAWING Then                      'Pour savoir si le document est un plan
            Set swDraw = swApp.ActiveDoc                        'selectionne le document actif
            Set swview = swDraw.GetFirstView                    'selectionne le fond de plan
            Set swview = swview.GetNextView                     'selectionne la premier vue
            Set swRefModel = swview.ReferencedDocument
            Set swCustPropMgr = swRefModel.Extension.CustomPropertyManager("")

swCustPropMgr.Get2 "Ville", valOut1, resolvedValOut1           'récupère la valeur de la propriété "Ville"
swCustPropMgr.Get2 "Rue/Quartier", valOut2, resolvedValOut2    'récupère la valeur de la propriété "Rue/Quartier"
swCustPropMgr.Get2 "Indice", valOut3, resolvedValOut3          'récupère la valeur de la propriété "indice"

dateNow = Replace(Date, "/", ".")

Filepath = "C:\"                                                'Destination d'enregistrement du PDF
fileName = resolvedValOut1 & " - " & resolvedValOut2 & " - Ind." & resolvedValOut3 & " - " & dateNow & ".PDF"   'Nom du PDF

swDraw.SaveAs (Filepath + fileName)

Exit Sub
End If

End Sub

 


save_pdf_test1_04.02.2019.swp

Oui elle fonctionne sous réserve que les propriétés personnalisées soient bien créées dans l'onglet personnaliser de la pièce puisque c'est là que tu vas chercher les valeurs au travers de la ligne "Set swCustPropMgr = swRefModel.Extension.CustomPropertyManager("")".

J'obtiens bien un fichier PDF nommé "Ma Ville - Ma Rue - Ind.B - 05.02.2019.PDF".

Cordialement,

1 « J'aime »

Je ne comprends pas pourquoi, j'ai pourtant les valeurs qui vont bien dans l'onglet personnalisé...


plcion_-_test.slddrw

Oui mais de ton plan alors qu'avec les lignes :

Set swRefModel = swview.ReferencedDocument
Set swCustPropMgr = swRefModel.Extension.CustomPropertyManager("")

tu vas chercher les propriétés de l'onglet personnaliser de la pièce en référence dans ta vue de mise en plan.

Enlève ta ligne "Set swRefModel = swview.ReferencedDocument" et remplace "swRefModel" par "swModel" dans ta ligne "Set swCustPropMgr = swRefModel.Extension.CustomPropertyManager("")" si tu veux les propriétés de la mise en plan.

Cordialement,

2 « J'aime »

Merci d.roger pour cette aide. 

Tout fonctionne nickel. 

Voila la macro final si un jour quelqu'un en a besoin. 

Bonne journée à toi

Option Explicit

Dim swApp               As SldWorks.SldWorks
Dim swModel             As SldWorks.ModelDoc2
Dim swDraw              As SldWorks.DrawingDoc
Dim Filepath            As String
Dim fileName            As String
Dim Revision            As String
Dim exportData          As SldWorks.ExportPdfData
Dim lErrors             As Long
Dim lWarnings           As Long
Dim confName            As String
Dim revNmb              As String
Dim val                 As String
Dim resolved            As Boolean
Dim swview              As SldWorks.View
Dim swRefModel          As ModelDoc2
Dim swRefAssy           As AssemblyDoc
Dim swCustPropMgr       As SldWorks.CustomPropertyManager
Dim dateNow             As String
Dim ValOut              As String
Dim numéro              As String
Dim description         As String
Dim valOut1             As String
Dim valOut2             As String
Dim valOut3             As String
Dim resolvedValOut1     As String
Dim resolvedValOut2     As String
Dim resolvedValOut3     As String

Sub Main()
    
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    If swModel Is Nothing Then
        MsgBox "Tu as pensé à ouvrir ta mise en plan?", vbCritical
        End
    End If
    
    If swModel.GetType <> swDocDRAWING Then
        MsgBox "Et si tu ouvrais ta mise en plan avant?", vbCritical
        End
    End If
    
    Set swDraw = swModel
    If swDraw.GetPathName = "" Then
        swDraw.Save
    End If

    If swModel.GetType = swDocDRAWING Then                          'Pour savoir si le document est un plan
            Set swDraw = swApp.ActiveDoc                            'selectionne le document actif
            Set swview = swDraw.GetFirstView                        'selectionne le fond de plan
            Set swview = swview.GetNextView                         'selectionne la premier vue
            Set swCustPropMgr = swModel.Extension.CustomPropertyManager("")
    
    swCustPropMgr.Get2 "Ville", valOut1, resolvedValOut1            'récupère la valeur de la propriété "Ville"
    swCustPropMgr.Get2 "Rue/Quartier", valOut2, resolvedValOut2     'récupère la valeur de la propriété "Rue/Quartier"
    swCustPropMgr.Get2 "Indice", valOut3, resolvedValOut3           'récupère la valeur de la propriété "indice"
            
            dateNow = Replace(Date, "/", ".")                       'remplace les / par des . dans la date
    
    Filepath = "D:\Téléchargements\Plan PDF\"                       'Destination d'enregistrement du PDF
    fileName = resolvedValOut1 & " - " & resolvedValOut2 & " - Ind." & resolvedValOut3 & " - " & dateNow & ".PDF"   'Nom du PDF
        
        swDraw.SaveAs (Filepath + fileName)                         'Sauvegarde dans le dossier choisi avec le nom défini par les propriétées

    Exit Sub
    End If

    End Sub

 


save_pdf_-_05.02.2019.swp

De rien...

Voici une version avec ajout de la double sauvegarde comme demandé initialement et suppression des lignes superflues :

Option Explicit

' On définit les variables nécessaires
Dim swApp As Object
Dim swModel As SldWorks.ModelDoc2
Dim swCustProp As CustomPropertyManager
Dim valOut1 As String
Dim valOut2 As String
Dim valOut3 As String
Dim resolvedValOut1 As String
Dim resolvedValOut2 As String
Dim resolvedValOut3 As String
Dim Path As String
Dim PathDesktop As String
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swExportPDFData As SldWorks.ExportPdfData
Dim nFileName As String
Dim nFileName2 As String
Dim boolstatus As Boolean
Dim lErrors As Long
Dim lWarnings As Long
Dim lgFichier As Integer

Sub main()
' On se raccroche à Solidworks
Set swApp = Application.SldWorks

' On récupère le document actif dans Solidworks
Set swModel = swApp.ActiveDoc

' On vérifie qu'un document est bien ouvert dans Solidworks
If swModel Is Nothing Then
	MsgBox "Un document doit être actif dans Solidworks.", vbCritical
	End
End If

' On vérifie que le document ouvert dans Solidworks est un plan
If swModel.GetType <> swDocDRAWING Then
	MsgBox "Le document actif dans Solidworks doit être un plan.", vbCritical
	End
End If

' On vérifie que le plan ouvert dans Solidworks est bien enregistré
If swModel.GetPathName = "" Then
	swModel.Save
End If

' On récupère la date du jour et on la met dans un format pouvant se mettre dans le nom d'un fichier
Dim dateNow As String
dateNow = Replace(Date, "/", ".")

' On récupère le chemin du dossier d'enregistrement du plan
Path = swModel.GetPathName
lgFichier = InStrRev(Path, "\", -1, vbTextCompare) - 1
If lgFichier > 0 Then
	Path = Left(Path, lgFichier)
End If

' On récupère le chemin du bureau Windows
PathDesktop = Environ("USERPROFILE") & "\Desktop"

' On récupère les valeurs qui nous intéresse dans les propriétés personnalisées du plan
Set swCustProp = swModel.Extension.CustomPropertyManager("")
swCustProp.Get2 "Ville", valOut1, resolvedValOut1
swCustProp.Get2 "Rue/Quartier", valOut2, resolvedValOut2
swCustProp.Get2 "Indice", valOut3, resolvedValOut3

' On définit les paramètres d'export en PDF
Set swModelDocExt = swModel.Extension
Set swExportPDFData = swApp.GetExportFileData(1)
swExportPDFData.ViewPdfAfterSaving = False

' On définit le chemin et le nom du premier fichier pdf à créer
nFileName = Path & "\" & resolvedValOut1 & " - " & resolvedValOut2 & " - Ind." & resolvedValOut3 & " - " & dateNow & ".PDF"

' On sauvegarde le premier fichier pdf
boolstatus = swModelDocExt.SaveAs(nFileName, 0, 0, swExportPDFData, lErrors, lWarnings)

' On définit le chemin et le nom du deuxième fichier pdf à créer
nFileName2 = PathDesktop & "\" & resolvedValOut1 & " - " & resolvedValOut2 & " - Ind." & resolvedValOut3 & " - " & dateNow & ".PDF"

' On sauvegarde le deuxième fichier pdf
boolstatus = swModelDocExt.SaveAs(nFileName2, 0, 0, swExportPDFData, lErrors, lWarnings)

End Sub

 

Cordialement,

2 « J'aime »

Bonjour,

Merci pour cette macro elle m'aide énormément.

En revanche dans mon cas, l'indice se trouve dans l'onglet "spécifiques à la configuration" et non dans "personnaliser", du coup lors de l'enregistrement ça ne va pas chercher l'indice

Je pense que le soucis vient de swParentModel.Extension.CustomPropertyManager("") mais je ne suis pas du tous Expert dans la discipline.

ci-joint mon programme (enfin du copier coller de plusieurs macro)

Merci d'avance


sauv_pdf_ind.swp

Bonjour,

Quand c'est comme ça il serait bien de créer une nouvelle discussion et de mettre un lien vers la discussion d'origine plutôt que de rouvrir une discussion vieille de 1 an ...

Pour ton cas tu as juste à mettre le nom de la configuration ciblée entre les guillemets de ta ligne :

Set swCustPropMgr = swParentModel.Extension.CustomPropertyManager("")

comme par exemple :

Set swCustPropMgr = swParentModel.Extension.CustomPropertyManager("Défaut")

Cordialement,