< návrat zpět

MS Excel


Téma: Tisk makrem na síťovou tiskárnu a formulář rss

Zaslal/a 17.7.2018 18:37

Zdravím,

potřeboval bych tisknout na síťovou tiskárnu, na uživatelsky definovaný formulář (resp. rozměr - nastaveno v tiskovém serveru ve správci tiskáren).
Problém je, že to potřebuji rozjet z různých počítačů v síťi.

Jediné,co mě zatím napadlo, je před tiskem použít následné:


If Worksheets("Tisk").Cells(12, 4) = "PC1" Then
Application.ActivePrinter = "Jehlicka na Ne05:"
Worksheets("Tisk").PageSetup.PaperSize = 163
End If

If Worksheets("Tisk").Cells(12, 4) = "PC2" Then
Application.ActivePrinter = "Jehlicka na Ne04:"
Worksheets("Tisk").PageSetup.PaperSize = 190
End If

If Worksheets("Tisk").Cells(12, 4) = "PC3" Then
Application.ActivePrinter = "Jehlicka na Ne04:"
Worksheets("Tisk").PageSetup.PaperSize = 186
End If

If Worksheets("Tisk").Cells(12, 4) = "PC4" Then
Application.ActivePrinter = "Jehlicka na Ne06:"
Worksheets("Tisk").PageSetup.PaperSize = 192
End If

If Worksheets("Tisk").Cells(12, 4) = "PC5" Then
Application.ActivePrinter = "Jehlicka na Ne06:"
Worksheets("Tisk").PageSetup.PaperSize = 192
End If


Adresace síťové tiskárny i adresace velikosti papíru se totiž pro potřeby makra na každém PC liší, i když název tiskárny i tiskového formuláře je všude zadán totožný. Název tiskového formuláře je "Stitek", název tiskárny "Jehlicka", v buňce D12 je uvedena identifikace konkrétního PC.

Takto to funguje (vyjma Excel 2002, nevím proč), ale potřeboval bych poradit, jak to udělat, aby tisk fungoval z jakéhokoliv PC vždy stejně (tedy například nějakou jinou adresací tiskárny a formuláře/velikosti papíru). Výše uvedené je totiž celkem prasácké a nesystémové řešení. Aby to nebylo úplně jednoduché, jedná se o různé OS (W7 a W10) a různé verze Excel (2002,2007, 2010).

Díky za případné návrhy.

Zaslat odpověď >

icon #040925
eLCHa
Vyhledávání seznamu tiskáren a pak konkrétní z nich lze - lze to například pomocí API. Já si osobně myslím, že v jednoduchosti je síla a to co máte je srozumitelné a jednoduché. Problém může nastat u toho dodatku (na NeXX)- pokud se ale nepřeinstalovává, nemuselo by to vadit. Rozhodně je jednodušší opravit to v buňce než v kódu.

Místo toho PCX na listu Tisk vyplňte 2 buňky - ActivePrinter a PaperSize. Pak nepotřebujete tolikrát If - stačí natáhnout konkrétní hodnoty.

Na každém PC pak nastavíte požadované hodnoty.

Co se týče 2002 - nevím jestli vám tu bude ještě někdo schopen pomoci. Krokujte kód pomocí F8 a zjistěte konkrétně, co nefunguje.citovat
#040928
avatar
Jen drobnosti - ne If..Then, ale Select..Case, na listu roletka s výběrem (Data/Oveření, Seznam), nějaký SVYHLEDAT a ende. Jinak k tiskárnám má pod VBA možná blíž tzv. WMI.citovat
#041337
avatar

eLCHa napsal/a:

Vyhledávání seznamu tiskáren a pak konkrétní z nich lze - lze to například pomocí API. Já si osobně myslím, že v jednoduchosti je síla a to co máte je srozumitelné a jednoduché. Problém může nastat u toho dodatku (na NeXX)- pokud se ale nepřeinstalovává, nemuselo by to vadit. Rozhodně je jednodušší opravit to v buňce než v kódu.

Místo toho PCX na listu Tisk vyplňte 2 buňky - ActivePrinter a PaperSize. Pak nepotřebujete tolikrát If - stačí natáhnout konkrétní hodnoty.

Na každém PC pak nastavíte požadované hodnoty.

Co se týče 2002 - nevím jestli vám tu bude ještě někdo schopen pomoci. Krokujte kód pomocí F8 a zjistěte konkrétně, co nefunguje.


Tak problém s "NeXX" nakonec nastal. Na dvou strojích se totiž neustále mění. Nechápu, že nelze "adresovat" tiskárnu pouze názvem - na všech strojích se prostě jmenuje "Jehlicka", stejně tak tiskový formulář je všude nazván stejně. Proč ve VBA kódu musí být jakýsi dodatek, který znemožňuje tisk na jiném stroji (na některých strojích bohužel i po restartu) mi zatím nikdo nebyl schopen vysvětlit.

Potřeboval bych nějaké univerzální řešení, které bude fungovat nezávisle na stroji.citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje