Makro - Rysunek PDF - Nazwa specjalna - Wiele folderów

Witam 
Już kilka miesięcy temu zamieściłem prośbę... Po wielu nieudanych próbach wyjaśniam, co chcę wprowadzić, aby zaoszczędzić mi dużo czasu

Jak na pewno zrozumiesz po prostocie makra, nic o nim nie wiem, staram się uczyć, ale jest to dość złożone... Tak przy okazji, jeśli masz tytuł książki lub stronę do nauczenia się, jestem zainteresowany. 

Końcowy cel makro:
Mam plan z jednym lub kilkoma arkuszami
Chcę wyeksportować go jako pojedynczy plik PDF w dwóch folderach.

  1. na pulpicie
  2. w folderze, w którym zapisany jest plik rysunku.

Chcę również, aby jego nazwa została zmieniona w następujący sposób: 
"Miasto - Ulica/Okolica - Ind. (list podpowiedzi) - DD.MM.YYYY"
Na przykład, jeśli wezmę ten z mojego zdjęcia powyżej, będzie to: 
"St Malo de Guersac - Allée des garennes - Ind. A - 30.01.2019"Obecnie próbowałem wielu makro, zhakowałem niektóre bez powodzenia.
Jedynym, który działa, ale zmusza mnie do zmiany nazwy i skopiowania, jest ten (patrz załączony plik)
 

Z góry dziękuję wszystkim, którzy mogą mi pomóc


ext_to_pdf.swp

Witam

Masz już wszystkie odpowiedzi na swoje stare zapytanie, zobacz TUTAJ.

Czy naszym celem jest napisanie dla Ciebie tego konkretnego makra?

W przypadku witryn możesz spróbować:

- 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

- ...

Pozdrowienia

Podobnie jak ty nie wiem o tym zbyt wiele, robiłem swoje makra, biorąc bity tu i tam. Wypróbuj załączony, zmieniając właściwości niestandardowe i dodając drugi eksport z drugą ścieżką. U mnie działa dobrze.


file_save_as_dxf.txt
1 polubienie

Oto, co powinno zaspokoić Twoje potrzeby:

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

 

Nie zapomnij umieścić niezbędnych referencji (Narzędzia / Referencje...):

Pozdrowienia

1 polubienie

Witam

Nie, celem nie jest, aby ktoś napisał dla mnie VBA.

Próbowałem zrobić kilka (byłem na moim 4 innym bez powodzenia)

Mam się uczyć z forum. Dzięki temu nauczyłem się robić gitary i uwierzcie mi, nikt nie postawił samolotu na moim miejscu... Tak więc moja prośba została ponowiona , ponieważ zniechęcono mnie do kręcenia się w kółko bez osiągnięcia czegokolwiek. 

Dziękuję za odpowiedzi, zobaczę, co się stanie, wprowadzając zmiany, o których mi powiedziałeś. 

Wrócę do Was, żeby pokazać, co z tego wyjdzie

Miłego dnia

Po kilku badaniach i próbach, oto co skompilowałem:

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

 

Pozwólcie, że wyrażę się jasno, zrozumiałem tylko niewielką część  tego wszystkiego, ale jest to funkcjonalne, z wyjątkiem części. 

Przejrzałem kilka tematów związanych z odzyskiwaniem nieruchomości, ale nie rozumiem, jak to działa: 

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"

Get4 lub Get5... Nie wiem, jak powiedzieć: 

Wartość przypisana do "Miasto" to wartość znajdująca się w następnym polu

A potem, aby móc to przepisać w nazwie, ponieważ na razie oprócz daty nie wyświetlają się nazwy właściwości. Oto wynik, który otrzymuję: " -  - Ind.  - 04.02.2019.PDF"

Ponadto, aby zrozumieć trochę więcej, jaki jest cel wszystkich wierszy poniżej "Opcja jawna" stylu: 

Dim swApp           As SldWorks.SldWorks

 

Z góry dziękuję

Witam

Więc już dla wierszy "Dim xxx As yyyyyyy":

Dim : Deklaracja zmiennej

xxx : nazwa wybrana dla tej zmiennej (bez spacji)

Jako : Deklaracja typu zmiennej

yyyy: typ zmiennej

Tak więc "Dim swApp As SldWorks.SldWorks" oznacza, że deklarujemy zmienną o nazwie swApp typu SldWorks, zobacz TUTAJ. Kilka wyjaśnień na temat innych typów zmiennych tutaj.

W przypadku funkcji Get, Get2, Get3, Get4 i Get5: Funkcja Get5 jest ewolucją funkcji Get4, która jest ewolucją funkcji Get3, która jest ewolucją funkcji Get2, która jest ewolucją funkcji Get, zobacz TUTAJ. Każda funkcja ma określoną liczbę argumentów, które są określonego typu, ich kolejność i ilość muszą być przestrzegane, niektóre argumenty są używane do wysyłania wartości do funkcji, a inne są używane do pobierania wartości, co ma miejsce w przypadku funkcji Get, na przykład:

swCustProp.Get2 "City", valOut1, resolvedValOut1 oznacza, że mogę pobrać "Value/Text Expression" w zwracanej zmiennej "valOut1" i "Evaluated Value" w zmiennej zwracanej "resolvedValOut1" dla właściwości niestandardowej o nazwie "City".

W twoim makrze rzeczywiście występują pewne problemy z funkcjami Get, już po to, aby sprawdzić, czy chcesz użyć najnowszej (Get5) lub innej, ale wybierz jedną i tylko jedną, a następnie szanuj liczbę i typ argumentów tego, który wybierzesz, a na końcu zwracane wartości muszą znajdować się w różnych zmiennych, w przeciwnym razie ta zostanie nadpisana w miarę postępów (twoja zmienna ValOut). Spójrz na to, co zrobiłem w moim makro:

swCustProp.Get2 "Miasto", valOut1, resolvedValOut1
swCustProp.Get2 "Ulica/Okolica", valOut2, resolvedValOut2
swCustProp.Get2 "Indeks", valOut3, rozwiązanyValOut3

....

nFileName = Ścieżka & "\" & resolvedValOut1 & " - " & resolvedValOut2 & " - Ind." & resolvedValOut3 & " - " & dateNow & ".PDF"

Masz nadzieję, że wyraziłem się całkiem jasno.

Pozdrowienia

 

2 polubienia

Witam

Dziękuję za te wyjaśnienia. 

Zamierzam spojrzeć na linki, które mi podałeś. 

Po modyfikacji mam problem, który miałem wcześniej, nie rozpoznaje wartości... Nie rozumiem dlaczego. Czy masz jakiś pomysł dlaczego?

Z góry dziękuję


save_pdf_test1_04.02.2019.swp

Witam

Makro zaczyna się od wiersza "Option Explicit", co oznacza, że musisz jawnie zadeklarować zmienne, ale brakuje następujących zmiennych w wierszach deklaracji:

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

Musisz także zmienić "swCustProp" na "swCustPropMgr" w wierszach:

swCustProp.Get2 'City', valOut1, resolvedValOut1          ' pobiera wartość właściwości "City"
swCustProp.Get2 'Ulica/Okolica', valOut2, resolvedValOut2   ' pobiera wartość właściwości "Ulica/Okolica"
swCustProp.Get2 "Index", valOut3, resolvedValOut3         ' pobiera wartość właściwości "Index"

ponieważ zadeklarowana zmienna nazywa się "swCustPropMgr".

I na koniec musisz uporządkować konstrukcję nazwy pliku pdf w wierszach:

Filepath = "D:\Pliki do pobrania\PDF plan"
filepath = ścieżka pliku + "\"
nfileName = Ścieżka & "\" & resolvedValOut1 & " - " & resolvedValOut2 & " - Ind." & resolvedValOut3 & " - " & dateNow & ".PDF"

swDraw.SaveAs (ścieżka pliku + nazwa_pliku + ".PDF")

Może to wyglądać następująco:

Filepath = "D:\Pliki do pobrania\Plan PDF\"

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

swDraw.SaveAs (ścieżka pliku + nazwa_pliku )

Zachowaj ostrożność, aby zadeklarować zmienne, a następnie użyć ich według ich nazw:

Dim fileName As Ciąg

nie może być użyta jako "nfileName"

Pozdrowienia

2 polubienia

Ponownie

Czy możesz go przetestować, aby sprawdzić, czy działa z twoim komputerem?

Zmieniłem:

  1. miejsce rejestracji w celu wykluczenia wszelkich problemów związanych z konfliktem lub autoryzacją.
  2. Dim dateNow Jako ciąg, umieszczam go w opcji Explicit
  3. swCustProp.Get2 na swCustPropMgr.Get2
  4. wiersz z Filepath = "C:\", aby dodać "\" i tym samym usunąć następny wiersz, który staje się bezużyteczny
  5. nfileName Nie rozumiałem, dlaczego "n" przed tym wierszem poleceń... Jaka jest różnica między z i bez?

Nie ma już komunikatu o błędzie, ale wracam do poprzedniego problemu, który daje mi plik " -  - Ind. - 05.02.2019"

Czy wielkie litery mogą być problemem, ponieważ zauważyłem różnicę (i nie mogę jej zmienić, koryguje to automatycznie) między ValOut - valOut1 - resolvedValOut1

Pozdrowienia

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

Tak, działa to tak długo, jak długo właściwości niestandardowe są tworzone w zakładce niestandardowej pomieszczenia, ponieważ to właśnie tam uzyskasz wartości za pomocą wiersza "Set swCustPropMgr = swRefModel.Extension.CustomPropertyManager("")".

Otrzymuję plik PDF o nazwie "Moje miasto - Moja ulica - Ind.B - 05.02.2019.PDF".

Pozdrowienia

1 polubienie

Nie rozumiem dlaczego, ale mam wartości, które dobrze pasują do zakładki niestandardowej...


plcion_-_test.slddrw

Tak, ale z twojego planu, natomiast z liniami:

Ustaw wartość swRefModel = swview. ReferencedDocument (Dokument referencyjny)
Ustaw swCustPropMgr = swRefModel.Extension.CustomPropertyManager("")

Będziesz szukać właściwości karty Dostosuj części referencyjnej w widoku rysunku.

Usuń wiersz "Set swRefModel = swview. ReferencedDocument" i zamień "swRefModel" na "swModel" w wierszu "Set swCustPropMgr = swRefModel.Extension.CustomPropertyManager("")" jeśli chcesz uzyskać właściwości rysunku.

Pozdrowienia

2 polubienia

Dziękuję d.roger za tę pomoc. 

Wszystko działa idealnie. 

Oto ostatnie makro, jeśli ktoś kiedykolwiek będzie go potrzebować. 

Życzę Ci miłego dnia

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

Proszę...

Oto wersja z dodaniem podwójnej kopii zapasowej, zgodnie z początkowym żądaniem, i usunięciem zbędnych linii:

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

 

Pozdrowienia

2 polubienia

Witam

Dziękuję za to makro, bardzo mi pomaga.

Z drugiej strony w moim przypadku podpowiedź znajduje się w zakładce "konfiguracja specyficzna" a nie w "dostosuj", więc przy zapisywaniu nie będzie szukał podpowiedzi

Myślę, że problem wynika z swParentModel.Extension.CustomPropertyManager(""), ale w ogóle nie jestem ekspertem w tej dziedzinie.

W załączeniu mój program (dobrze kopiujemy i wklejamy kilka makr)

Z góry dziękuję


sauv_pdf_ind.swp

Witam

Kiedy tak jest, dobrze byłoby utworzyć nową dyskusję i umieścić link do oryginalnej dyskusji, zamiast ponownie otwierać dyskusję sprzed 1 roku...

W Twoim przypadku wystarczy umieścić nazwę docelowej konfiguracji w cudzysłowie wiersza:

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

Na przykład:

Ustaw swCustPropMgr = swParentModel.Extension.CustomPropertyManager("Domyślnie")

Pozdrowienia