Tisk pomocí makra

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

luko02420
Level 2
Level 2
Příspěvky: 218
Registrován: 28 úno 2012 18:36

Tisk pomocí makra

Příspěvek od luko02420 »

Dobrý den, potřeboval bych poradit, zda jde tisknout z excelu pomocí makra na tiskárnu, která není v systému nastavena jako výchozí.

Našel jsem makro od P. Lasaka, ale nějak mi to nefunguje. prosím o radu.
Děkuji

Kód: Vybrat vše

Sub tisk()


ActiveSheet.PrintOut From:=1, To:=100, Copise:=1, ActivePrinter:="ZDesigner GK420t na USB002", Collate:=True

End Sub
Uziv00

Re: Tisk pomocí makra

Příspěvek od Uziv00 »

A co konkrétně nefunguje?
luko02420
Level 2
Level 2
Příspěvky: 218
Registrován: 28 úno 2012 18:36

Re: Tisk pomocí makra

Příspěvek od luko02420 »

Tisk neproběhne a vypíše chybu
Run-time error 1004
Application -defined or object - defined error.
Uziv00

Re: Tisk pomocí makra

Příspěvek od Uziv00 »

To vypadá, jako by ten název nebyl korektní. Opsal jsi to dobře?
Uživatelský avatar
Grimm
Level 2
Level 2
Příspěvky: 165
Registrován: 30 zář 2017 20:50

Re: Tisk pomocí makra

Příspěvek od Grimm »

Makro z odkazu vypíše nainstalované tiskárny do okna Immediate

https://wordmvp.com/FAQs/MacrosVBA/Avai ... inters.htm
luko02420
Level 2
Level 2
Příspěvky: 218
Registrován: 28 úno 2012 18:36

Re: Tisk pomocí makra

Příspěvek od luko02420 »

Dobrý den, tak jsem zkoušel makro od Grimma, postupoval jsem podle návodu a makro se mi vůbec nespustí.
Už nevím co dělám špatně.

Tak jsem si nechal vyjet seznam tiskáren přes PowerShell a mám vše správně. A přesto mi to makro nejede. Tak už nevím.

Už jsem našel chybu v kódu ve slově Copies, už mi to tiskne ale pořád na výchozí tiskárnu
Uziv00

Re: Tisk pomocí makra

Příspěvek od Uziv00 »

Tak jsem pohledal a dověděl jsem se, že VBA nelze tisknout na jinou tiskárnu, než na výchozí. Přesněji - ve woknech nejde tisknout na jinou tiskárnu žádným skriptem. Ani cmd, ani powershelem ani vbs.
Ve VBS to někdo řešil tak, že změnil výchozí tiskárnu na tu, která má tisknout, poslal na ni dokument a změnu vrátil zpět. Nemám ale tušení, zda by tohle fungovalo ve VBA. Pokud máš zájem, můžu zkusit to napsat.
luko02420
Level 2
Level 2
Příspěvky: 218
Registrován: 28 úno 2012 18:36

Re: Tisk pomocí makra

Příspěvek od luko02420 »

Dobrý den, děkuji za informaci.
Pokud bude chtít něco zkusit napsat můžete, ale pokud jsi nejste jisty, že se to povede tak se na to vykašlete.
nechci Vás okrádat o čas.
Samozřejmě pokud by to fungovalo byl bych moc rád.
Uziv00

Re: Tisk pomocí makra

Příspěvek od Uziv00 »

V pohodě. není to zas taková trága. Horší je donutit excel, aby akceptoval kód :-)

Kód: Vybrat vše

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colPrinters = objWMIService.ExecQuery _
    ("Select * from Win32_Printer Where Default = TRUE")

For Each objPrinter In colPrinters
    strOldDefault = objPrinter.Name
    strOldDefault = Replace(strOldDefault, "\", "\\")
Next

Set colPrinters = objWMIService.ExecQuery _
    ("Select * from Win32_Printer Where Name = 'PDFCreator'")
    
For Each objPrinter In colPrinters
    objPrinter.SetDefaultPrinter
Next

Application.Wait (Now + TimeValue("0:00:02"))

' Sem doplň příkaz k tisku

Set colPrinters = objWMIService.ExecQuery _
    ("Select * from Win32_Printer Where Name = '" & strOldDefault & "'")

For Each objPrinter In colPrinters
    objPrinter.SetDefaultPrinter
Next

Set objWMIService = Nothing
Set colPrinters = Nothing

Co to dělá?
Načte výchozí tiskárnu. Uloží ji do proměnné strOldDefault. (replace je zapotřebí pro konverzi jména v případě že by výchozí tiskárna byla síťová).
Vyhledá podle jména požadovanou tiskárnu. Zde je to PDFCreator. Místo PDFCreator si doplníš svou tiskárnu.
Tuto tiskárnu nastaví jako výchozí.
Počká 2 sec (pro jistotu, aby měl systém čas udělat změny).
Následuje příkaz k tisku, který si doplníš sám.
Vyhledá tiskárnu dle uloženého jména v proměnné strOldDefault
Nastaví ji jako výchozí (tak vrátí změnu zpět).
Toť vše.

Ověřeno na excelu2016, funguje. Jediná zrada by mohla být v mezerách ve jméně té další tiskárny. To ale řešit nehodlám, prostě si tu tiskárnu přejmenuj.
Uživatelský avatar
elninoslov
Level 2.5
Level 2.5
Příspěvky: 386
Registrován: 12 čer 2013 23:40

Re: Tisk pomocí makra

Příspěvek od elninoslov »

No ja som to robil tak, že som si odložil aktuálnu tlačiareň, z nej som si vypreparoval predložku pred číslom portu (najdôležitejší krok, kvôli jazykovým mutáciám, napr. "na port", "on port", ...), z registru zobral názvy tlačiarní, zložil správny názov tlačiareň+predložka+port a nastavil ako východziu. Vytlačil a vrátil predchádzajúcu. Niekde to snáď nájdem.
Přílohy
Tlačiť dočasne na inú tlačiareň2.xlsm
(29.18 KiB) Staženo 74 x
Naposledy upravil(a) elninoslov dne 01 čer 2021 10:41, celkem upraveno 1 x.
luko02420
Level 2
Level 2
Příspěvky: 218
Registrován: 28 úno 2012 18:36

Re: Tisk pomocí makra

Příspěvek od luko02420 »

Tak to je bomba, funguje skvěle, tiskárnu jsem přejmenoval.
Děkuji moc za ochotu.
ještě počkám jestli najde kód mistr Elninoslov a po té zamknu.
Vcelku by mě to zajímalo.
Díky všem
Uziv00

Re: Tisk pomocí makra

Příspěvek od Uziv00 »

elninoslov: Myslím, že proto se nemusí chodit do registru. Název tiskárny se dá najít skriptem, a pak je třeba ošetřit ty mezery buď zdvojenými uvozovkami (analogie s replace "\", "\\"), popřípadě použít chr(32).
To ovšem za předpokladu, že by ty mezery vadily. Podle mě by nemusely, ale všechno je možné.

Dodatečně přidáno po 33 minutách 16 vteřinách:
Tak ve vbs to mezery akceptuje bez problémů.
Zamčeno
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Jakou laserovou tiskárnu pro domácí tisk
    od Miranda6 » » v Vše ostatní (hw)
    9 Odpovědi
    6475 Zobrazení
    Poslední příspěvek od zeus
  • Tisk sloupců vedle sebe na A4 - Excel
    od atari » » v Kancelářské balíky
    5 Odpovědi
    5999 Zobrazení
    Poslední příspěvek od atari
  • Nic se nenačítá ani po resetu biosu pomocí cmos baterie
    od Bliske » » v Problémy s hardwarem
    4 Odpovědi
    6716 Zobrazení
    Poslední příspěvek od pcmaker

Zpět na „Kancelářské balíky“