Makra w fakturze
Makra w fakturze
Witam nie wiem czy piszę w dobrym miejscu ale mam prośbę, otóż ściągnąłem z Internetu wzór faktury VAT (bardzo dobry),działa ten plik (makra) dobrze w Microsoft Office, ale niestety te makra w LibreOffice 4.2 nie działają; czy ktoś może mi pomóc i przerobić je na ten program bo są bardzo przydatne szczególnie zapisz jako PDF (umożliwiający też wydruk, zapis w odpowiednim folderze pod dowolną nazwą). W załączeniu plik z wzorem faktury - w nagłówku hasło aby arkusz nie był chroniony. Pozdrawiam. Edward
- Załączniki
-
- Faktura-Vat_01 (1).xlsm
- (89.5 KiB) Pobrany 307 razy
windows xp, libreoffice 4.2
Re: Makra w fakturze
Z chęcią ci pomogę, ale musisz wykazać trochę własnej inicjatywy. O eksporcie do PDF było już na forum wystarczy użyć szukajki. Poszukaj i wstaw znaleźiony kod do modułu basica, uprzednio zapisując plik jako ODS i robiąc w modułach porządek (pozostałości excelowe). Kiedy to zrobisz i zatniesz się w jakimś punkcie, wtedy zadaj pytanie na forum, na pewno znajdzie się ktoś pomocny.
LibreOffice 5.1.2.2 Ubuntu 16 LTS
Re: Makra w fakturze
witam - Znalazłem coś takiego ale mi nie działa choć uzupełniam na różne sposoby linię: pokazuje się
oto używane Makro:
Kod: Zaznacz cały
cFile = ("/home/Twój_katalog/"& oSheet.name()&".pdf")'Windows c:\COŚ_TAMKod: Zaznacz cały
Błąd uruchomieniowy języka BASIC.
Wystąpił wyjątek Type: com.sun.star.task.ErrorCodeIOException
Message: SfxBaseModel::impl_store <file:///home/faktury/Wystaw%20faktur%C4%99.pdf> failed: 0x507.Kod: Zaznacz cały
Sub CopyPDF
oDoc = Thiscomponent 'the document running the macro
oSheet = oDoc.getCurrentController().getActiveSheet() ' the active sheet
'oDoc.g1etCurrentController.Select oSheet
'print osheet.name()
cFile = ("/home/Twój_katalog/"& oSheet.name()&".pdf")'Windows c:\COŚ_TAM
cUrl = ConvertToUrl( cFile )
oDoc.storeToUrl( cUrl, Array( MakePropertyValue( "FilterName", "calc_pdf_Export", "Selection,0,0")))
End Sub
Function MakePropertyValue( Optional cName As String, Optional uValue ) As com.sun.star.beans.PropertyValue
oPropertyValue = createUnoStruct( "com.sun.star.beans.PropertyValue" )
If Not IsMissing( cName ) Then
oPropertyValue.Name = cName
EndIf
If Not IsMissing( uValue ) Then
oPropertyValue.Value = uValue
EndIf
MakePropertyValue() = oPropertyValue
End Function
Ostatnio zmieniony pn cze 02, 2014 9:55 pm przez Jan_J, łącznie zmieniany 1 raz.
Powód: znaczniki [code]
Powód: znaczniki [code]
windows xp, libreoffice 4.2
Re: Makra w fakturze
Twój oSheet jest obiektem odpowiedzialnym za arkusz w skoroszycie, a oSheet.Name to nazwa tego arkusza. Korzystasz z niej jakby była nazwą pliku. OK, plik się będzie tworzył.
Ale URL pliku w systemie Windows posługuje się ścieżką bezwzględną z nazwą woluminu. W XP spodziewałbym się czegoś w rodzaju "c:\documents and settings\faktury\" & oSheet.Name & ".pdf", ew. z ukośnikami w drugą stronę. A masz u siebie "/home/faktury/", jakby na uniksie.
PS. w Windows zamiast sztywnej ścieżki zgrabniej byłoby skorzystać ze zmiennej środowiskowej USERPROFILE, bo tak po przejściu na innego użytkownika, albo na inny system, który ma ścieżki inaczej poustawiane, wystąpi problem.
Ale URL pliku w systemie Windows posługuje się ścieżką bezwzględną z nazwą woluminu. W XP spodziewałbym się czegoś w rodzaju "c:\documents and settings\faktury\" & oSheet.Name & ".pdf", ew. z ukośnikami w drugą stronę. A masz u siebie "/home/faktury/", jakby na uniksie.
PS. w Windows zamiast sztywnej ścieżki zgrabniej byłoby skorzystać ze zmiennej środowiskowej USERPROFILE, bo tak po przejściu na innego użytkownika, albo na inny system, który ma ścieżki inaczej poustawiane, wystąpi problem.
JJ
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Makra w fakturze
.. dzięki serdeczne mam już duży postęp, choć wiele już w nim przerobiłem (w dokumencie)jeżeli chodzi o formuły to jednak makra nie bardzo pojmuję, dwie nadal nie rozwiązane sprawy to:
1) zapisuje mi cały dokument a mi potrzeba żeby zapisywało w pdf tylko 1 arkusz (pozostałe są pomocnicze do uzupełniania tego pierwszego arkusza);
2) zapisuje mi pod nazwą "FakturyWystaw fakturę.pdf" a chodzi mi żeby zapisywało każdy dokument pod inną nazwą czy to będzie kolejny numer faktury a lepiej żebym mógł podawać za każdym razem nazwę do zapisania (ale to ostatnie nie wiem czy jest możliwe);
3) a jak konkretnie skorzystać ze wskazówki poniżej (konkretny zapis ścieżki i w którym miejscu);
jeszcze raz dziękuję i proszę o dalsza pomoc. Pozdrawiam. Edward
1) zapisuje mi cały dokument a mi potrzeba żeby zapisywało w pdf tylko 1 arkusz (pozostałe są pomocnicze do uzupełniania tego pierwszego arkusza);
2) zapisuje mi pod nazwą "FakturyWystaw fakturę.pdf" a chodzi mi żeby zapisywało każdy dokument pod inną nazwą czy to będzie kolejny numer faktury a lepiej żebym mógł podawać za każdym razem nazwę do zapisania (ale to ostatnie nie wiem czy jest możliwe);
3) a jak konkretnie skorzystać ze wskazówki poniżej (konkretny zapis ścieżki i w którym miejscu);
jeszcze raz dziękuję i proszę o dalsza pomoc. Pozdrawiam. Edward
Jan_J pisze:PS. w Windows zamiast sztywnej ścieżki zgrabniej byłoby skorzystać ze zmiennej środowiskowej USERPROFILE, bo tak po przejściu na innego użytkownika, albo na inny system, który ma ścieżki inaczej poustawiane, wystąpi problem.
windows xp, libreoffice 4.2
Re: Makra w fakturze
ZamiastJan_J pisze:[...] zamiast sztywnej ścieżki zgrabniej byłoby skorzystać ze zmiennej środowiskowej USERPROFILE [...]
Kod: Zaznacz cały
domowy = "c:\documents and settings\kamil borysiak"Kod: Zaznacz cały
domowy = environ("USERPROFILE")Kod: Zaznacz cały
select case GetGUIType()
case 1: domowy = environ("USERPROFILE") ' Windows
case else: domowy = environ("HOME") ' inne systemy
end select
JJ
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)