Stránka 1 z 1

Excel - VBA - tisk libovolne vybranych listu

Napsal: 21 srp 2010 17:09
od karamelka80
Prosím o pomoc s napsanim VBA pro tisk libovoně vybranych listů v Excelu.
Mam excel, ktery ma pres 70 listů (vim, je to dost, ale je to tak). Rada bych na prvni liste měla možnost vybrat jestli a) tisknout všechny listy b) tisknout vybrané sekce - celkem je jich sest (jedna sekce = nekolik listů).. to abych byla za ekologa a netiskla vzdy vse, kdyz neni potreba :lol: .

Takže jsem na list dala 2 přepínače - Tisk vše nebo Tisk vybranych sekci. Az potud v pohode.
Pod variantu b) jsem dala zaškrtávací políčka, aby se dalo vybrat, které všechny sekce se mají tisknout (může nastat libovolna kombinace 1 až n).
To s čím si nevím rady je, jak napsat VBA, aby označilo pro tisk vsechny listy z vybranych sekci podle toho, jak jsou zaskrtnoute policka, a nemusela to psat stylem... kdyz je prvni zaskrtnute, tak ... kdyz je prvni a druhe zaskrtnute, tak... kdyz je druhe, treti a pate zaskrtnute.... :?

Má někdo nápad, jak to šikovně pořesit?
Díky moc předem.

Re: Excel - VBA - tisk libovolne vybranych listu

Napsal: 21 srp 2010 22:33
od navstevnik
Tisk skupin listu - navrh mozneho reseni:
na vhodnem listu pripravit blok obsahujici v radcich skupiny a ve sloupcich seznam listu k tisku
Procedura v priloze nacte blok seznamu (rozsah upravit v procedure) a podle hodnoty Skupina tiskne listy prislusne skupiny, cislo skupiny je vkladano na vyzvu v InputBoxu.

Re: Excel - VBA - tisk libovolne vybranych listu

Napsal: 21 srp 2010 23:09
od karamelka80
Diky za odpoved. Akorát to uplne neřeší můj problém, aby se mohlo tisknout vice sekci zaroven (viz jako zkraceno v prilozenem excelu...)a ja abych nemusela vypisovat vsechny varianty, ktere mohou nastat (36), a do kazde z nich psat nazvy tech listu (az 70), coz se mi moc nechce. :-(
Tak mi nezbyva nez doufat, ze reseni existuje....

Re: Excel - VBA - tisk libovolne vybranych listu

Napsal: 22 srp 2010 00:11
od navstevnik
Otazky:
- oznaceni Sekce1(list 1-3) znamena, ze budou tisknuty vzdy prvni tri listy zleva (zalozky listu odleva) bez ohledu na jejich nazev nebo se jedna o listy s nazvem list1, list2, list3?
- je neresitelny problem sestavit seznam listu kazde sekce? to je obsazeno v upravene priloze. Tisk vsech listu dalsim tlacitkem.
Procedury viz modul listu List1(Start).
Doplneno 23.8.10:
V nove priloze je doplnen zpusob zadavani indexu listu do sekci.

Re: Excel - VBA - tisk libovolne vybranych listu

Napsal: 23 srp 2010 21:23
od karamelka80
Teeda, tak to uz je pro me opravdu "vyssi divci" a budu potrebovat nejaky cas se tim prokousat.... Jen se chci rychle zeptat,jestli tomu rozumim dobre - nazvy listu, patrici do sekce 1 je napsaný v bunkach G1 az J1? Takto by mi to velmi vyhovovalo, ze bych ke kazde sekci vypsala nazvy listu, ktere se maji tisknout.
(Jen uplně nerozumím tomu, proc se v print preview ukazuje i list test, ktery tam neni definovany).
A pak ještě jeden praktický dotaz... do teď, když se dal tisk tohoto souboru, tak se musela potvrdit tiskarna, na kterou se má tisknout (a u každého je jiná)... znamená to, že tak, jak je to napsané nyní, že bude človek muset potvrdit pokaždém listu výběr tiskárny?
Děkuji.

Re: Excel - VBA - tisk libovolne vybranych listu

Napsal: 23 srp 2010 22:32
od navstevnik
Odpoved proc i list test, nejspis shoda v zafajfkovanych sekcich pro zpusob zadavani:
V naposledy pripojene priloze je k tlacitku Tisk skupin navzana procedura Sub TiskSkupinListu2(), ktera pracuje s indexy listu - v G21-G26. Proceduru Sub TiskSkupinListu1() (tiskne ze seznamu v G1:J3) nutno vybrat zmenou zaremovani v procedure Sub cmdTiskSkupin_Click().

Co se tyce vyberu tiskarny, jsou procedury doplneny o radek napr. (retezec musis zmenit dle vybrane tiskarny):

Application.ActivePrinter = "CutePDF Writer na CPW2:"

oznacene casti retezce ziskas z: nabidka Soubor>Tisk: vybrana tiskarna - Typ: a Kde: , pripadne si nahraj makro s nastavenim tiskarny.

Re: Excel - VBA - tisk libovolne vybranych listu  Vyřešeno

Napsal: 26 srp 2010 20:07
od karamelka80
Děkuji moc. Jdu se tím prokousat. :-)