Stránka 1 z 1

excel vba - tisk jen nekterych listu

Napsal: 12 dub 2018 19:16
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

Re: excel vba - tisk jen nekterych listu

Napsal: 12 dub 2018 20:39
od Grimm
V souboru umístěné makro, které vytvoří náhled před tiskem podle zvoleného seznamu.

Re: excel vba - tisk jen nekterych listu

Napsal: 12 dub 2018 22:11
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?

Re: excel vba - tisk jen nekterych listu

Napsal: 13 dub 2018 11:15
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.

► Zobrazit spoiler

Re: excel vba - tisk jen nekterych listu

Napsal: 13 dub 2018 13:13
od elninoslov
Nepozeral som riešenie od kolegu, ale tu som urobil niečo ako nápad...

Re: excel vba - tisk jen nekterych listu

Napsal: 16 dub 2018 09:11
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:

Re: excel vba - tisk jen nekterych listu

Napsal: 19 dub 2018 14:38
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 :-)

Re: excel vba - tisk jen nekterych listu

Napsal: 19 dub 2018 21:01
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


Re: excel vba - tisk jen nekterych listu

Napsal: 26 dub 2018 17:39
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? :-)

Re: excel vba - tisk jen nekterych listu

Napsal: 29 dub 2018 13:34
od Grimm