Makro - PDF-Zeichnung - Spezieller Name - Mehrere Ordner

Hallo 
Ich hatte schon vor ein paar Monaten eine Anfrage gepostet... Nach mehreren erfolglosen Versuchen kläre ich, was ich umsetzen möchte, um mir viel Zeit zu sparen

Wie Sie sicherlich an der Einfachheit des Makros verstehen werden, weiß ich nichts darüber, ich versuche zu lernen, aber es ist ziemlich komplex... Übrigens, wenn Sie einen Buchnamen oder eine Website zum Lernen haben, bin ich interessiert. 

Das Endziel des Makros:
Ich habe einen Plan mit einem oder mehreren Blättern
Ich möchte es als einzelne PDF-Datei in zwei Ordnern exportieren.

  1. auf dem Desktop
  2. in dem Ordner, in dem die Zeichnungsdatei gespeichert ist.

Ich möchte auch, dass es wie folgt umbenannt wird: 
"Stadt - Straße/Nachbarschaft - Ind. (Hinweisbuchstabe) - DD.MM.YYYY"
Wenn ich zum Beispiel das Bild von meinem Foto oben nehme, wird es sein: 
"St Malo de Guersac - Allée des garennes - Ind. A - 30.01.2019"Aktuell habe ich viel Makro ausprobiert, einige ohne Erfolg gehackt.
Die einzige, die funktioniert, aber mich zum Umbenennen und Kopieren zwingt, ist diese (siehe angehängte Datei)
 

Vielen Dank im Voraus an alle, die mir helfen können


ext_to_pdf.swp

Hallo

Sie haben bereits alle Antworten auf Ihre alte Anfrage, siehe HIER.

Ist es das Ziel für uns, dieses spezielle Makro für Sie zu schreiben?

Für die Websites können Sie Folgendes versuchen:

- 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

- ...

Herzliche Grüße

Genau wie du weiß ich nicht viel darüber, ich habe meine Makros gemacht, indem ich hier und da Bits genommen habe. Probieren Sie den angehängten Pfad aus, ändern Sie die benutzerdefinierten Eigenschaften und fügen Sie einen 2. Export mit Ihrem 2. Pfad hinzu. Es funktioniert gut für mich.


file_save_as_dxf.txt
1 „Gefällt mir“

Hier ist, was Ihren Anforderungen entsprechen sollte:

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

 

Vergessen Sie nicht, die notwendigen Referenzen einzufügen (Tools / Referenzen...):

Herzliche Grüße

1 „Gefällt mir“

Hallo

Nein, das Ziel ist nicht, dass jemand ein VBA für mich schreibt.

Ich habe versucht, mehrere zu machen (ich war bei meinem 4. ohne Erfolg)

Ich soll aus dem Forum lernen . Dank dessen habe ich gelernt, Gitarren zu bauen, und glauben Sie mir, niemand hat ein Flugzeug an meine Stelle gesetzt... So wurde meine Bitte erneuert, weil ich entmutigt wurde, mich im Kreis zu drehen, ohne etwas zu erreichen. 

Vielen Dank für Ihre Antworten, ich werde sehen, was passiert, indem ich die Änderungen vornehme, die Sie mir gesagt haben. 

Ich komme zurück zu Ihnen, um zu zeigen, was dabei herauskommt

Schönen Tag

Nach einigen Recherchen und Versuchen habe ich Folgendes zusammengetragen:

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

 

Lassen Sie es mich klar sagen, ich habe nur einen kleinen Teil  von all dem verstanden, aber es ist bis auf einen Teil funktionsfähig. 

Ich habe mir mehrere Themen zur Wiederherstellung von Eigentum angesehen, verstehe aber nicht, wie es funktioniert: 

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"

das Get4 oder Get5... Ich weiß nicht, wie ich sagen soll: 

Der Wert, der "Stadt" zugewiesen wird, ist der Wert, der sich im nächsten Feld befindet

und dann, um es in den Namen transkribieren zu können, denn im Moment werden außer dem Datum die Namen der Immobilien nicht angezeigt. Hier ist das Ergebnis, das ich erhalte: " -  - Ind.  - 04.02.2019.PDF"

Um ein wenig mehr zu verstehen, was der Zweck aller Zeilen unter "Option Explizit" des Stils ist: 

Dim swApp           As SldWorks.SldWorks

 

Vielen Dank im Voraus

Hallo

Also schon für die Zeilen "Dim xxx As yyyyyyy":

Dim : Deklaration der Variablen

xxx : Name für diese Variable (ohne Leerzeichen)

As : Deklaration des Typs der Variablen

yyyyyyyy: Typ der Variablen

"Dim swApp As SldWorks.SldWorks" bedeutet also, dass wir eine Variable namens swApp deklarieren, die vom Typ SldWorks ist, siehe HIER. Einige Erklärungen zu anderen Arten von Variablen finden Sie hier.

Für die Funktionen Get, Get2, Get3, Get4 und Get5: Die Get5-Funktion ist eine Weiterentwicklung der Get4-Funktion, die eine Weiterentwicklung der Get3-Funktion ist, die eine Weiterentwicklung der Get2-Funktion ist, die eine Weiterentwicklung der Get-Funktion ist, siehe HIER. Jede Funktion hat eine bestimmte Anzahl von Argumenten, die von einem bestimmten Typ sind, deren Reihenfolge und Menge eingehalten werden müssen, einige Argumente werden verwendet, um einen Wert an die Funktion zu senden, und andere werden verwendet, um Werte abzurufen, was bei der Get-Funktion der Fall ist, zum Beispiel:

swCustProp.Get2 "City", valOut1, resolvedValOut1 bedeutet, dass ich den "Wert/Textausdruck" in der Rückgabevariablen "valOut1" und den "Ausgewerteten Wert" in der Rückgabevariablen "resolvedValOut1" für die benutzerdefinierte Eigenschaft mit dem Namen "City" abrufen kann.

In Ihrem Makro gibt es in der Tat einige Probleme mit den Get-Funktionen, bereits um zu sehen, ob Sie die neueste (Get5) oder eine andere verwenden möchten, aber wählen Sie eine und nur eine, dann respektieren Sie die Anzahl und Art der Argumente der von Ihnen gewählten und schließlich müssen die zurückgegebenen Werte in verschiedenen Variablen sein, sonst wird diese im Laufe der Zeit überschrieben (Ihre ValOut-Variable). Schauen Sie sich an, was ich in meinem Makro gemacht habe:

swCustProp.Get2 "Stadt", valOut1, gelöstValOut1
swCustProp.Get2 "Straße/Nachbarschaft", valOut2, gelöstValOut2
swCustProp.Get2 "Index", valOut3, resolvedValOut3

....

nFileName = Pfad & "\" & aufgelöstValOut1 & " - " & aufgelöstValOut2 & " - Ind." & gelöstValOut3 & " - " & dateNow & ".PDF"

Da haben Sie es, in der Hoffnung, dass ich ziemlich klar war.

Herzliche Grüße

 

2 „Gefällt mir“

Hallo

Vielen Dank für diese Erklärungen. 

Ich werde mir die Links ansehen, die Sie mir gegeben haben. 

Nach der Modifikation habe ich ein Problem, das ich vorher hatte, es erkennt den Wert nicht... Ich verstehe nicht, warum. Haben Sie eine Idee , warum?

Vielen Dank im Voraus


save_pdf_test1_04.02.2019.swp

Hallo

Das Makro beginnt mit der Zeile "Option Explicit", was bedeutet, dass Sie die Variablen explizit deklarieren müssen, aber die folgenden Variablen in den Deklarationszeilen fehlen:

Dim valOut1 As String
Dimmen valOut2 als Zeichenfolge
Dim valOut3 As String
Dim resolvedValOut1 As String
Dim resolvedValOut2 als Zeichenfolge
Dim resolvedValOut3 als Zeichenfolge

Sie müssen auch "swCustProp" in den Zeilen in "swCustPropMgr" ändern:

swCustProp.Get2 'City', valOut1, resolvedValOut1          ' ruft den Wert der Eigenschaft "City" ab
swCustProp.Get2 'Straße/Nachbarschaft', valOut2, resolvedValOut2   ' ruft den Wert der Eigenschaft "Straße/Nachbarschaft" ab
swCustProp.Get2 "Index", valOut3, resolvedValOut3         ' ruft den Wert der Eigenschaft "Index" ab

da die Variable, die Sie deklariert haben, "swCustPropMgr" heißt.

Und schließlich müssen Sie die Konstruktion des Namens der PDF-Datei in den Zeilen bereinigen:

Dateipfad = "D:\Downloads\PDF-Plan"
Dateipfad = Dateipfad + "\"
nfileName = Pfad & "\" & resolvedValOut1 & " - " & resolvedValOut2 & " - Ind." & resolvedValOut3 & " - " & dateNow & ".PDF"

swDraw.SaveAs (Dateipfad + Dateiname + ".PDF")

Dies könnte wie folgt aussehen:

Dateipfad = "D:\Downloads\PDF-Plan\"

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

swDraw.SaveAs (Dateipfad + Dateiname )

Achten Sie darauf, die Variablen zu deklarieren und sie dann mit ihren Namen zu verwenden:

Dim fileName als Zeichenfolge

kann nicht als "nfileName" verwendet werden

Herzliche Grüße

2 „Gefällt mir“

Re

Können Sie es testen, um zu sehen, ob es mit Ihrem PC funktioniert?

Ich habe geändert:

  1. den Ort der Registrierung, um jedes Problem eines Konflikts oder einer Autorisierung auszuschließen.
  2. Dim dateNow Als Zeichenfolge, ich habe es in Option Explicit eingefügt
  3. swCustProp.Get2 zu swCustPropMgr.Get2
  4. die Zeile mit Filepath = "C:\" um das "\" hinzuzufügen und daher die nächste Zeile zu löschen, die unbrauchbar wird
  5. nfileName Ich habe nicht verstanden, warum das "n" vor dieser Befehlszeile ... Was ist der Unterschied zwischen mit und ohne?

Keine Fehlermeldung mehr, aber ich kehre zum vorherigen Problem zurück, das mir eine Datei " -  - Ind. - 05.02.2019" gibt

Könnten die Großschreibungen ein Problem sein, weil ich einen Unterschied (und ich kann ihn nicht ändern, er korrigiert ihn automatisch) zwischen ValOut - valOut1 - resolvedValOut1 gesehen habe

Herzliche Grüße

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

Ja, es funktioniert, solange die benutzerdefinierten Eigenschaften auf der Registerkarte "Benutzerdefiniert" des Raums erstellt werden, da Sie dort die Werte durch die Zeile "Set swCustPropMgr = swRefModel.Extension.CustomPropertyManager("")" abrufen.

Ich bekomme eine PDF-Datei mit dem Namen "My City - My Street - Ind.B - 05.02.2019.PDF".

Herzliche Grüße

1 „Gefällt mir“

Ich verstehe nicht warum, aber ich habe die Werte, die gut in die benutzerdefinierte Registerkarte passen ...


plcion_-_test.slddrw

Ja, aber aus Ihrem Plan, während mit den Zeilen:

Legen Sie swRefModel = swview fest. Referenziertes Dokument
Set swCustPropMgr = swRefModel.Extension.CustomPropertyManager("")

Suchen Sie in der Zeichnungsansicht nach den Eigenschaften der Registerkarte Anpassen des Referenzteils.

Entfernen Sie die Zeile "Set swRefModel = swview. ReferencedDocument" und ersetzen Sie "swRefModel" durch "swModel" in Ihrer Zeile "Set swCustPropMgr = swRefModel.Extension.CustomPropertyManager("")", wenn Sie die Eigenschaften der Zeichnung wünschen.

Herzliche Grüße

2 „Gefällt mir“

Vielen Dank an d.roger für diese Hilfe. 

Alles funktioniert einwandfrei. 

Hier ist das letzte Makro, falls jemand es jemals braucht. 

Einen schönen Tag für Sie

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

Bitte...

Hier ist eine Version mit der Hinzufügung der doppelten Sicherung, wie ursprünglich gewünscht, und der Entfernung überflüssiger Zeilen:

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

 

Herzliche Grüße

2 „Gefällt mir“

Hallo

Vielen Dank für dieses Makro, es hilft mir sehr.

Auf der anderen Seite befindet sich der Hinweis in meinem Fall auf der Registerkarte "konfigurationsspezifisch" und nicht in "Anpassen", sodass beim Speichern nicht nach dem Hinweis gesucht wird

Ich denke, das Problem kommt von swParentModel.Extension.CustomPropertyManager(""), aber ich bin überhaupt kein Experte in dieser Disziplin.

Im Anhang ist mein Programm (naja, Kopieren und Einfügen von mehreren Makros)

Vielen Dank im Voraus


sauv_pdf_ind.swp

Hallo

Wenn es so ist, wäre es gut, eine neue Diskussion zu erstellen und einen Link zur ursprünglichen Diskussion zu setzen, anstatt eine 1 Jahr alte Diskussion erneut zu eröffnen...

Für Ihren Fall müssen Sie nur den Namen der Zielkonfiguration in die Anführungszeichen Ihrer Zeile setzen:

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

Zum Beispiel:

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

Herzliche Grüße