makro za shranjevanje xps

Pomoč pri izdelavi makrov
Odgovori
dejvi
Prispevkov: 28
Pridružen: So Jan 14, 2012 11:42 pm

makro za shranjevanje xps

Odgovor Napisal/-a dejvi »

Pozdrav

Zanima me,kaj je narobe z omenjenim makrojem.Rad bi da excel shrani datoteko,ki ji dam ime kot .xps na željeno lokacijo.
Xps mora tudi biti berljiv v internet explorerju in makro mora tiskalnik na koncu nastaviti na privzete.
Hvala in lep pozdrav

Sub Gumb4_Klikni()
Application.DisplayAlerts = False
Dim imeDatoteke
imeDatoteke = InputBox(" VNESITE IME IN PRIIMEK STRANKE...")
ActiveSheet.Range("A1:I52").Select
ActiveSheet.PageSetup.PrintArea = Selection.Address
ActiveSheet.PrintOut PrintToFile:=True, PrToFileName.SaveCopyAs filename:="d:\emmegas vse\EMMEGAS RACUNI IN PREDRACUNI\EMMEGAS RACUNI\RACUNI STRANK POSLJI\" + " & imeDatoteke & " + ".xps"
ActiveSheet.Save
Application.DisplayAlerts = True
End Sub
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: makro za shranjevanje xps

Odgovor Napisal/-a admin »

Da natisnete xps dokument, morate uporabiti XPS tiskalnik (v sistem ga vstavi instalacija MS pisarne)...

Vaš makro pa poskuša z privzetim tiskalnikom natisnoti XPS datoteko... Če je privzet tiskalnik že omenjeni XPS tiskalnik bi moralo biti OK... Če ni pa seveda ne more delovati.
lp,
Matjaž Prtenjak
Administrator
dejvi
Prispevkov: 28
Pridružen: So Jan 14, 2012 11:42 pm

Re: makro za shranjevanje xps

Odgovor Napisal/-a dejvi »

Mi ne uspe pravilno popraviti in tudi file mi ne shrani pod imenom,ki ga vpišem v box.

Hvala vam za popravek
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: makro za shranjevanje xps

Odgovor Napisal/-a admin »

Tale makro vam bo izvedel tisto, kar iščete:

Koda: Izberi vse

Sub NatisniXPS()
    Application.ActivePrinter = "Microsoft XPS Document Writer on Ne00:"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, PrintToFile:=True, PrToFileName:="c:\test.xps"
End Sub
Je pa problem zadeti pravo ime tiskalnika! Priporočam vam, da v Excelu izberete XPS tiskalnik in z njim nekaj natisnete. S tem bo omenjeni tiskalnik postal privzeti tiskalnik in lahko se postavite v VBA urejevalnik ter ga izpišete:

Koda: Izberi vse

debug.print Application.ActivePrinter
Na ta način boste dobili njegovo pravo ime na konkretnem računalniku. Problem je namreč v tem, da ime tiskalnika ni preprosto "Microsoft XPS Document Writer", temveč mu excel zraven doda še vrata (port) in dobi ime "Microsoft XPS Document Writer on XXXX:"
lp,
Matjaž Prtenjak
Administrator
dejvi
Prispevkov: 28
Pridružen: So Jan 14, 2012 11:42 pm

Re: makro za shranjevanje xps

Odgovor Napisal/-a dejvi »

Pozdrav

Sedaj makro dela,vendar so težave,če posnamem makro mi napiše,da je xps tiskalnik Ne00,vendar vseeno pokaže ob zagonu makroja napako.
Tudi ta vaš ukaz mi ga ne izpiše
Sub Gumb2_Klikni()
Debug.Print Application.ActivePrinter
End Sub

To pa je cela koda,kaj naj še spremenim.

Sub Gumb1_Klikni()
Dim defPrinter As String
defPrinter = Application.ActivePrinter
Application.ActivePrinter = "Microsoft XPS Document Writer on Ne00:"
Application.DisplayAlerts = False
Dim imeDatoteke As String
imeDatoteke = InputBox(" VNESITE IME IN PRIIMEK STRANKE...")
ActiveSheet.Range("A1:I42").Select
ActiveSheet.PageSetup.PrintArea = Selection.Address
----VRSTICO SEM DAL TUDI SEM IN TUDI NE DELA--Application.ActivePrinter = "Microsoft XPS Document Writer on Ne00:"-----
ActiveSheet.PrintOut PrintToFile:=True, PrToFileName:="d:\david\" + imeDatoteke + ".xps"
Application.DisplayAlerts = True
Application.ActivePrinter = defPrinter

End Sub

hvala in lp
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: makro za shranjevanje xps

Odgovor Napisal/-a admin »

Ah :(.... Malce se pa morate pozanimati tudi o VBA urejevalniku... 'Debug.Print' pač piše v Debug okno VBA urejevalnika...

Če hočete v Excelu videti rezultat, ga pač izpišite v sporočilnem oknu:

Koda: Izberi vse

Sub Gumb2_Klikni()
    MsgBox Application.ActivePrinter
End Sub
lp,
Matjaž Prtenjak
Administrator
Odgovori