sub tiskvyberu
Dim Oblast(0) as New com.sun.star.table.CellRangeAddress
Dim Podminka(0) as New com.sun.star.beans.PropertyValue
doc = thisComponent
listktisku = doc.Sheets.getByName("List1") ' tiskneme z listu1
REM nastavíme formát stránky pro dokument na výšku
Podminka(0).Name = "PaperOrientation"
Podminka(0).Value = com.sun.star.view.PaperOrientation.PORTRAIT
doc.Printer = Podminka()
REM nastavíme první oblast tisku
Oblast(0) = listktisku.getCellRangeByName("A1:A3").RangeAddress
listktisku.setPrintAreas(Oblast())
doc.Print(Array()) 'tiskneme první oblast
REM počkáme 1 vteřinu kvuli synchronizaci
wait 1000
REM nastavíme format na šířku
Podminka(0).Name = "PaperOrientation"
Podminka(0).Value = com.sun.star.view.PaperOrientation.LANDSCAPE
doc.Printer = Podminka()
REM nastavíme druhou oblast
Oblast(0) = listktisku.getCellRangeByName("B1:B3").RangeAddress
listktisku.setPrintAreas(Oblast())
doc.Print(Array())
end sub
Toto makro nastavuje oblasti tisku, stejně jako Formát -> Oblast tisku po skončení běhu makra, tak zůstane nastavená oblast č. 2 a formát stránky na šířku. Při opakovaném tisku makra to však nevadí, neboť makro definuje podmínky tisku znovu.
Pokud si v sešitu pojmenujete oblasti přes Data -> Definovat oblast můžete tyto názvy použít v makru místo rozsahu buněk (místo "A1:A3" napíšete "Oblast1")
;o)
A problém je právě v tom slučování buněk a rozdílné šířce sloupců:)
To řeším kopií listu a pak nahrazením dat v kopii odkazy na původní buňky.
]]>1. pracovní mějte v jednom listě a dělejte si v ní co chcete a nastavte si formátování jaké vám vyhovuje pro práci
2. tiskovou vytvořte na samostatném listě pomocí prostých odkazů ( =A1) a naformátujte dle libosti.
Ještě předtím je ale třeba vědět, zda je opravdu nutné mít obě tabulky na jednom listu? Odkazy z tabulky do tabulky můžete přetahovat nejen mezi buňkami, ale i listy a dokonce i dokumenty.
Nejjednodušší je tedy varianta přesunout tabulku na další list, upravit vzorce a nastavit si formát stránky na každém listu zvlášť.
]]>