< návrat zpět

MS Excel


Téma: VBA - nastavení více oblastí pro tisk rss

Zaslal/a 1.6.2017 22:04

Dobrý den,
Pomůžete s kódem ve VBA?
Mám na excelovském listu proměnný počet tabulek, tabulky jsou vždy stejně velké.
Např. v oblasti
B2: J8
B11: J17
B20: J26
B29: J35
B38: J44

Nebo někdy v oblasti
B2: J8
B11: J17

Nebo někdy v oblasti
B2: J8
B11: J17
B20: J26
B29: J35

Atd.
Počet oblastí je proměnný. Jak mám nastavit oblast tisku, aby se každá tabulka tiskla na novou stránku?

Děkuji

Petr

Zaslat odpověď >

#036607
elninoslov
Ak chcete tlačiť vždy za sebou idúci neznámy počet tabuliek, tak medzi ne vložte zlomy strán (Rozloženie strany - Zlomy strán - Vložiť zlom strany). Nadrobte si zlomy na dostatočný počet budúcich možných tabuliek, teda na N x 9 riadkov, alebo použite verziu s makrom, ktoré si samo pred samotným spustením tlače (nevidíte to v náhľade) vloží zlomy každých 9 riadkov až po posledný použitý riadok na liste TBL.
Příloha: zip36607_zlomy-stran.zip (29kB, staženo 30x)
citovat
#036613
avatar

pon1 napsal/a:

Díky
Super nápad. Můžete ještě pomoci s kódem, hází mi to chybu … potřebuji nepravidelný posun pro první tabulku (viz příloha).
První tabulka buď začíná na prvním nebo 4-tém řádku, jinak je mezera mezi ostatními tabulkami je 2 řádky. Vložil jsem do kódu proměnnou „count“, která zjišťuje, o kolik bude posun. Pokud je count 1, znamená to, že se jedná o první tabulku a posun bude jiný, než pokud je count vyšší než jedna, kdy posun bude taky jiný.

If count = 1 Then Riadok = Riadok + 45
Else
Riadok = Riadok + 44
End If

Ale dostal jsem hlášku, že: „Else without If

viz přiložený soubor
Dík
Příloha: rar36613_test-konec-stranek.rar (57kB, staženo 23x)
citovat
#036615
avatar
No skús tento riadok rozpísať na dva. Teda za THEN daj ENTER
If count = 1 Then Riadok = Riadok + 45
na
If count = 1 Then
Riadok = Riadok + 45
citovat
#036616
elninoslov
Príp. skúste takéto niečo.
Příloha: zip36616_zlomy-stran.zip (68kB, staženo 33x)
citovat
#036656
avatar
Ještě otázka
Viz přiložený soubor. Poslední řádek v listu "DOHODA2-VYSTUP" je 89 (tj. chci vytisknout jen tyto 2 stránky), ale makro mi poslední řádek našlo 1322 (Proměnná Riadkov je 1322). Tj. nevytisknou se jen 2 stránky, ale o hodně více. Co s tím?

List dohoda2 … tlačítko

Díky
Příloha: rar36656_makro-kopie.rar (71kB, staženo 23x)
citovat
#036657
avatar
díky elninoslov,
podíval jsem se na kód, list 2. Poslední řádek je 397, v kódu ale proměnná Riadkov má hodnotu 10 937 (posledni řádek 10 937). Co s tím?

Když jsem si v listu ručně upravil oblast tisku na B1:F5 a spustil jsem makro, tak se se nic nestalo … tj. oblast tisku se nezměnila.
Příloha: rar36657_zlomy-stran-primo-na-tisk.rar (59kB, staženo 23x)
citovat
#036662
elninoslov
To je jednoduché, máte tam 10000 riadkov, ktoré boli nejako použité, a následne iba vymazané. Keď ich vymažete iba pomocou Delete, tak ostanú označené ako "použitá oblasť". Treba celé riadky označiť za ušká vľavo, pklik na ušká a vybrať Odstrániť, potom uložiť súbor, a sú preč a nebudú považované za "použité". Lebo inak Vám to aj zväčšuje veľkosť súboru, aj zneprehľadňuje scrolovanie.

Každopádne makro som Vám prerobil tak, že mu je šumák, či je alebo nieje použitých 10000 prázdnych riadkov. Má to ale isté obmedzenia:
-medzera pre prvou tabuľkou musí byť menšia ako výška tabuľky
-medzi tabuľkami a pod tabuľkami nesmú byť žiadne dáta
-tabuľky a medzery medzi nimi musia byť rovnaké (používajú sa totiž násobky)

Dá sa to urobiť aj inak, napr sa spočíta koľko krát sa v stĺpci B vyskytuje text "CELKEM :", a podľa jeho pozície sa určí pozícia tabuľky. Spôsobov je viac.
Příloha: zip36662_zlomy-stran.zip (61kB, staženo 50x)
citovat
#036730
avatar
díky moc, zatím to fungujecitovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

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.

On-line nástroje