Temat: Generowanie pliku pdf
Witam. Mam problem z generowaniem plików pdf za pomocą makra. Używam następującego makra:
Sub odczytowapdf()
Sheets("Dane osobowe").Range("N4") = 23 'wskazuje na pierwszego ze stu klientów
Dim I As Byte ' licznik
For I = 1 To 100
If (Sheets("Dane osobowe").Range("Q14") = 1) Then 'jeżeli jest jedynką znaczy, że klient płaci VAT i generować fakturę VAT
Sheets("Faktura odczyty VAT").Select ' aktywuje formularz faktury VAT
If (Sheets("Faktura odczyty VAT").Range("J33") > 0) Then ' tu sprawdza czy faktura ma wartośc większą od zera, nie generujemy zerowych faktur
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\" & I, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
'w powyższej linii exportujemy fakturę do pliku pdf, do lokalizacji gdzie znajduje się arkusz o nazwie numeru w liczniku I
End If
End If
If (Sheets("Dane osobowe").Range("Q14") = 0) Then 'jeżeli jest zerem znaczy, że klient nie płaci VAT i generować rachunek
Sheets("Faktura odczyty").Select
If (Sheets("Faktura odczyty").Range("J33") > 0) Then
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\" & I, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End If
End If
Sheets("Dane osobowe").Range("N4") = Sheets("Dane osobowe").Range("N4") + 1 ' zwiększenie o jeden aby przejśc do następnego klienta
Next
Sheets("Dane osobowe").Select ' po przejrzeniu wszystkich klientów uaktywniamy arkusz dane osobowe
End Sub
Problem polega na tym, e jeżeli uruchomię to makro za pierwszym razem gdy nie ma jeszcze plików pdf przez nie tworzonych to po każdym zapisie pliku pdf wyrzuca błąd
Run-time error '1004':
Nie zapisano dokumentu. Być może jest on otwarty lub przy zapisywaniu napotkano błąd. Gdy natomiast uruchomię je tyle razy ile ma ono wygenerować plików i te pliki się utworzą, wówczas nie ma problemu. Nadpisuje już utworzone pliki i nie ma błędu. Próbowałem opóźniać działanie pętli - bezskutecznie. Może pomogłoby tworzenie pliku pdf przed funkcją ActiveSheet.ExportAsFixedFormat. Proszę o jakieś rady, pozdrawiam.