excel vba - tisk jen nekterych listu

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

Moderátor: Mods_senior

Odpovědět
zutano
nováček
Příspěvky: 8
Registrován: 09 kvě 2017 14:49

excel vba - tisk jen nekterych listu

Příspěvek od zutano »

Zdravím všechny,
mám excel s několika listy. Chtěl bych vytvořit makro, které vytiskne jen některé listy. A to podle toho zda je zakliknuté, že se má list vytisknout nebo ne. Na to mám zaškrtávací políčka, která jsou propojená i s podmíněním formátováním.

Snad je to aspoň trochu srozumitelné. Soubor v příloze by měl vše objasnit.

Díky moc
Přílohy
tisk listu.xlsm
(33.86 KiB) Staženo 49 x
Uživatelský avatar
Grimm
Level 2
Level 2
Příspěvky: 165
Registrován: 30 zář 2017 20:50

Re: excel vba - tisk jen nekterych listu

Příspěvek od Grimm »

V souboru umístěné makro, které vytvoří náhled před tiskem podle zvoleného seznamu.
Přílohy
tisk listu.xlsm
(28.08 KiB) Staženo 83 x
zutano
nováček
Příspěvky: 8
Registrován: 09 kvě 2017 14:49

Re: excel vba - tisk jen nekterych listu

Příspěvek od zutano »

Díky za rychlou reakci a fungující makro. Většinu z něj nechápu, takže nejsem schopen ho upravit. Po vytištění zůstaly označené listy, které se tiskly (stejně jak když klikám na listy s podrženým CTRL), jde to udělat, aby se automaticky "odznačily" po vytištění?

Bohužel nemohu dát takto veřejně originální dokument, takže jsem vytvořil náhradní. Ten nebyl stejný, ale jen podobný. Díky tomu mi makro po zkopírování nefunguje. Tentokrát jsem dodal i další listy a další poznámky přímo do excelu. Je to poměrně přesná kopie originálního dokumentu, takže by makro mělo fungovat po zkopírování i tam. Omlouvám se za komplikace, netušil jsem, že to bude na mě tak složité. Šlo by prosím makro upravit, aby fungovalo v nově přiloženém excelu?
Přílohy
tisk listu 2.xlsm
(39.62 KiB) Staženo 38 x
Uživatelský avatar
Grimm
Level 2
Level 2
Příspěvky: 165
Registrován: 30 zář 2017 20:50

Re: excel vba - tisk jen nekterych listu

Příspěvek od Grimm »

Ahoj, tak sem předělal kód aby pracoval přímo s názvy listů, které jsou uvedeny na listě přehled (předchozí kód pracuje s indexovým číslem listu). Tím však došlo k úpravě listu přehled, konkrétně názvy listů, které se mají tiskout jsou zapsány ve sloupci B. Sloupec A obsahuje pořadí listů (1-11). Dříve bylo pořadí i název listu v jedné buňce sloupce A. Nevím jestli je to možný způsob řešení nebo je struktura listu pevně dána a nelze s ní manipulovat. Pokud by to nebylo možné dej vědět, kód by se upravil.
ABBC3_SPOILER_SHOW
Přílohy
tisk listu 2.xlsm
(40.37 KiB) Staženo 71 x
Uživatelský avatar
elninoslov
Level 2.5
Level 2.5
Příspěvky: 386
Registrován: 12 čer 2013 23:40

Re: excel vba - tisk jen nekterych listu

Příspěvek od elninoslov »

Nepozeral som riešenie od kolegu, ale tu som urobil niečo ako nápad...
Přílohy
tisk listu 2.xlsm
(51 KiB) Staženo 85 x
zutano
nováček
Příspěvky: 8
Registrován: 09 kvě 2017 14:49

Re: excel vba - tisk jen nekterych listu

Příspěvek od zutano »

Díky za pomoc a nápady všem. Po malých úpravách jsem vše rozchodil jak jsem potřeboval :thumbup:
Lukanec
nováček
Příspěvky: 3
Registrován: 19 dub 2018 14:34

Re: excel vba - tisk jen nekterych listu

Příspěvek od Lukanec »

Ahoj,

potřebuji podobnou funkci, avšak k vytisknout chci jen zobrazené listy. Listů mám více, na základě daných pravidel uživatel otevře jen některé a ty vyplní. A právě pouze ty vyplněné a zobrazené potřebuji vytisknout. Ty skryté prázdné nikoliv, jak na to? Zaškrtávání a ruční výběr nepotřebuji, neboť listy budou tisknout uživatelé, ne já.

Děškuji :-)
Uživatelský avatar
Grimm
Level 2
Level 2
Příspěvky: 165
Registrován: 30 zář 2017 20:50

Re: excel vba - tisk jen nekterych listu

Příspěvek od Grimm »

Např. takto:

Kód: Vybrat vše

Option Explicit

Sub Tisk()
Dim List As Worksheet
Dim i As Long
Dim Sestava()

For Each List In ThisWorkbook.Worksheets
 	If List.Visible = True Then
    		ReDim Preserve Sestava(i)
        	Sestava(i) = List.Name
        	i = i + 1
 	End If
Next List

Sheets(Sestava).PrintPreview

Erase Sestava
End Sub

Lukanec
nováček
Příspěvky: 3
Registrován: 19 dub 2018 14:34

Re: excel vba - tisk jen nekterych listu

Příspěvek od Lukanec »

Díky, funguje skvěle. Ještě by mne zajímalo, jak omezit tisk listů které jsou sice aktivní, mají pevnou oblast tisku s opakováním záhlaví. Řekněme 30 řádek. Když uživatel vyplní 30 řádků, vytiskne se pouze první stránka listu, pokud 31 vytisknou se dvě stránky listu, 61 vytisknu se tři stránky, atd. Řádky na sebe navazují, tedy není mezi nimi mezera, (od určitého řádku od záhlaví). Je to zvyšující se číselný seznam 1až N, po 1. Napadá mne funkce zjištění řádku posledního textu, nebo nejvyšší hodnotu a pozici řádku. Dle toho pak tisknut, ale nevím jak to navázat na VBA. Ať bude seznam jak chce dlouhý, budou čísla řádků vždy odpovídat pořadí zvyšující se po 1. Nějaká rada? :-)
Odpovědět
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Tisk sloupců vedle sebe na A4 - Excel
    od atari » » v Kancelářské balíky
    5 Odpovědi
    5941 Zobrazení
    Poslední příspěvek od atari
  • Pomoc při výběru některých komponentů - nový PC 50-70 tisíc
    od Overlord » » v Rady s výběrem hw a sestavením PC
    5 Odpovědi
    7420 Zobrazení
    Poslední příspěvek od Overlord
  • Jakou laserovou tiskárnu pro domácí tisk
    od Miranda6 » » v Vše ostatní (hw)
    9 Odpovědi
    6420 Zobrazení
    Poslední příspěvek od zeus
  • Přechod z Excel 21 na Excel 24
    od Snekment » » v Kancelářské balíky
    2 Odpovědi
    14443 Zobrazení
    Poslední příspěvek od Snekment
  • Pohoda a excel
    od brownwld » » v Kancelářské balíky
    1 Odpovědi
    7370 Zobrazení
    Poslední příspěvek od atari

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