Vypočítaš si matematický vzťah medzi počtom stĺpcov a šírkou stĺpca, aby sa počet stĺpcov pri danej šírke zmestil na Tebou danú šírku strany.
U mňa v Exceli pri 2 cm L a R okrajoch je tento vzťah cca:
84 - (pocet - 1) * koef) / pocet
pričom koef = 0,7
pocet je počet stĺpcov aktuálnej oblasti.
84 je šírka jedného stĺpca, ktorá sa ešte zmestí do Tebou udanej šírky hárka A4 pri jednom stĺpci, než začne Excel zalamovať.
Koeficient koef je potrebný kvôli tomu, že pri potrebe dvoch stĺpcov sa ich šírky nebudú rovnať šírke pôvodného jedného stĺpca deleného dvomi...
U LibreOffice to bude určite iné.
Potom zadáš do editora kódu nasledujúci kód, u mňa v Exceli:
Sub NastavSirky()
ActiveWorkbook.Save
pocet = Range("A1").SpecialCells(xlLastCell).Column
koef = 0.7
For i = 1 To pocet
Columns(i).ColumnWidth = (84 - (pocet - 1) * koef) / pocet
Next i
End Sub
A potom nastavíš udalosť, pri ktorej má dôjsť k nastaveniu šírok (napr tlačidlo, ktorým pošleš materiál na tlačiareň, najprv vykoná výpočet a následne materiál vytlačí)
Je tam, žiaľ, jeden trik, keďže Excel nevie zistiť skutočnú poslednú bunku, pokiaľ nastala zmena ku zmenšeniu "aktuálnej" oblasti (pričom som musel pripustiť možnosť výskytu medziľahlých prázdnych riadkov).
Tým trikom je uloženie zošita, kedy sa Excel spamätá a zistí si skutočnú adresu poslednej bunky...
No a čo ostáva na Tebe, je aplikácia tohto Excelovského kódu do LibreOffice
Problémom však bude, ak vypočítaná šírka nebude postačovať na to, aby sa do nej zmestil celý obsah bunky...
Ale dá sa aj to ošetriť... najprv si dáš urobiť automatické prispôsobenie šírok obsahu (v Exceli je to dvojklik na pravú hranu záhlavia prispôsobovaného stĺpca, pri viacerých stĺpcoch musia byť vybrané všetky stĺpce) a zistíš najširší rozmer stĺpcov aktuálnej oblasti. Potom keď dáš vypočítať šírku Tebou požadovaným spôsobom, zistíš, či vypočítaný rozmer bude väčší, ako onen vypočítaný najširší stĺpec. Ak je väčší, bude to ok, ak nie, potom sa síce šírky prispôsobia, ale ich obsah bude presahovať mimo rozmer. Toto sa dá poriešiť tým, že povolíš zalamovanie obsahu buniek.
Tým však môže nastať to, že to, čo sa predtým na dĺžku zmestilo na jednu stranu, presiahne i na druhú... Atď atď...
Vypočítaš si matematický vzťah medzi počtom stĺpcov a šírkou stĺpca, aby sa počet stĺpcov pri danej šírke zmestil na Tebou danú šírku strany.
U mňa v Exceli pri 2 cm L a R okrajoch je tento vzťah cca:
84 - (pocet - 1) * koef) / pocet
pričom koef = 0,7
pocet je počet stĺpcov aktuálnej oblasti.
84 je šírka jedného stĺpca, ktorá sa ešte zmestí do Tebou udanej šírky hárka A4 pri jednom stĺpci, než začne Excel zalamovať.
Koeficient koef je potrebný kvôli tomu, že pri potrebe dvoch stĺpcov sa ich šírky nebudú rovnať šírke pôvodného jedného stĺpca deleného dvomi...
U LibreOffice to bude určite iné.
Potom zadáš do editora kódu nasledujúci kód, u mňa v Exceli:
A potom nastavíš udalosť, pri ktorej má dôjsť k nastaveniu šírok (napr tlačidlo, ktorým pošleš materiál na tlačiareň, najprv vykoná výpočet a následne materiál vytlačí)
Je tam, žiaľ, jeden trik, keďže Excel nevie zistiť skutočnú poslednú bunku, pokiaľ nastala zmena ku zmenšeniu "aktuálnej" oblasti (pričom som musel pripustiť možnosť výskytu medziľahlých prázdnych riadkov).
Tým trikom je uloženie zošita, kedy sa Excel spamätá a zistí si skutočnú adresu poslednej bunky...
No a čo ostáva na Tebe, je aplikácia tohto Excelovského kódu do LibreOffice
Problémom však bude, ak vypočítaná šírka nebude postačovať na to, aby sa do nej zmestil celý obsah bunky...
Ale dá sa aj to ošetriť... najprv si dáš urobiť automatické prispôsobenie šírok obsahu (v Exceli je to dvojklik na pravú hranu záhlavia prispôsobovaného stĺpca, pri viacerých stĺpcoch musia byť vybrané všetky stĺpce) a zistíš najširší rozmer stĺpcov aktuálnej oblasti. Potom keď dáš vypočítať šírku Tebou požadovaným spôsobom, zistíš, či vypočítaný rozmer bude väčší, ako onen vypočítaný najširší stĺpec. Ak je väčší, bude to ok, ak nie, potom sa síce šírky prispôsobia, ale ich obsah bude presahovať mimo rozmer. Toto sa dá poriešiť tým, že povolíš zalamovanie obsahu buniek.
Tým však môže nastať to, že to, čo sa predtým na dĺžku zmestilo na jednu stranu, presiahne i na druhú... Atď atď...
Ďakujem za odpoveď, vyskúšam, pozriem.