Witam
Linie:
Sub main()
Dim ts As Date
Dim tshour1 As Date
Dim tshour2 As Date
ts = Now
tshour1 = DateAdd("s", 20, ts)
Przejdź do początku kodu.
Następnie wiersze:
tshour2 = Now
Do While True
If Len(Dir("ton fichier pdf avec chemin")) <> 0 Then
Exit Do
End If
tshour2 = Now
If DateDiff("s", tshour2, tshour1) <= 0 Then
Exit Sub
End If
Loop
Idź zaraz po wierszu, w którym zapisujesz plik.
Teraz jest całkiem możliwe, że to nie zadziała, oznacza to, że Twój kod jest wstrzymywany lub błądzi, zanim dotrze do tych wierszy. Co się dzieje i jakie informacje zwrotne otrzymujesz w trybie debugowania, gdy wystąpi problem?
To prowadzi nas z powrotem do początkowej uwagi remrem, z którą całkowicie się zgadzam, będziesz musiał poradzić sobie z błędami w swoim kodzie. Ponieważ metoda "SaveAs2 (IModelDoc2)" jest przestarzała, lepiej byłoby przełączyć się na metodę "SaveAs (IModelDocExtension)" (zobacz tutaj), która pozwala na obsługę określonej liczby błędów poprzez zwroty "swFileSaveError_e Enumeration" i "swFileSaveWarning_e Enumeration" (patrz tutaj i tutaj). Bądź ostrożny, sposób zapisywania w formacie PDF jest inny i musi przejść przez "ExportPdfData" (patrz przykład tutaj).
Aby poradzić sobie z błędami w vba, możesz również zobaczyć tutaj.
Dla Twojej informacji, makra znajdujące się na tej stronie są na ogół fragmentami kodu, w których zarządzanie błędami nigdy nie jest wykonywane, to od wnioskodawcy zależy, czy ukończy i sprawi, że jego makro będzie niezawodne, w przeciwnym razie może szybko stać się konkretnym opracowaniem specyfikacji, a następnie staje się zadaniem...
Pozdrowienia