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.
A nestačilo by pro daný workbook úplně zrušit ukládání při zavření (i uživatelem)?
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Me.Saved = True
End Sub
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.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
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.