Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

15 Май 2021, 08:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Calc: Автонастройка высоты объединённой ячейки макросом  (Прочитано 539 раз)
0 Пользователей и 1 Гость смотрят эту тему.
eeigor
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 550



« Стартовое сообщение: 26 Март 2021, 21:26 »

Имеются очень длинные наименования.
Ситуация с "непопулярным" хранением данных на листе - объединение ячеек. Да, этого следует избегать.
Такие данные не поддаются дальнейшей обработке. Но иногда и не надо. Храним так, как и выводим на печать.
Надо сделать хранение данных компактным и всё.

Проблема в том, что после объединения ячеек такая объединённая ячейка сама не "раздвигается" по высоте, и это надо делать вручную.
Требуется макрос, который после редактирования данных в ячейке сделает примерно следующее:
 - отменит объединение ячеек (данные окажутся в верхней ячейке);
 - выполнит автонастройку высоты строки ячейки с данными и запомнит полученную (результирующую) высоту;
 - объединит ячейки обратно и... сделает что-то, чтобы высота строки объединённых ячеек в сумме равнялась ранее сохранённому значению (как поделить высОты строк, составляющих объединённую строку, - это открытый вопрос: поровну или как-то иначе).

Возможно, есть готовое решение...
С объединёнными столбцами подобных манипуляций делать необходимости нет (объединение и редактирование данных в столбцах - более редкий случай).
Если есть такой макрос для LO Calc, просьба поделиться...

https://www.thesmallman.com/autofit-merged-cells


* Снимок экрана от 2021-03-26 21-14-57.png (23.39 Кб, 550x229 - просмотрено 9 раз.)
« Последнее редактирование: 27 Март 2021, 01:36 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.1.1.2 Community
sokol92
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 404


WWW
« Ответ #1: 26 Март 2021, 21:44 »

Для проверки качества программы прилагаю форму Бухгалтерского баланса, взятую из системы "Консультант Плюс". Улыбка

* Бухгалтерский баланс.ods (32.63 Кб - загружено 6 раз.)
Записан

Владимир.
eeigor
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 550



« Ответ #2: 26 Март 2021, 21:53 »

Для проверки качества программы...
Не сразу сообразил, что программу ещё надо написать  Улыбка
Лист выглядит ужасающе!

Однако в прилагаемом файле всё более менее раздвигается (мало объединённых строк, или это объединение "поддерживается" достаточным количеством вложенных строк), "проблема" не проявляется в исходном состоянии. Возможно, при вводе данных случится то, о чём я написал в стартовой теме.

UPD:
Кстати, я назвал ситуацию с объединением ячеек "непопулярной темой". Возможно, я ошибаюсь, и это делают гораздо чаще (кроме объединения в столбцах, ведь здесь нет, как в Excel, центрирования значения по центру выделения).
« Последнее редактирование: 26 Март 2021, 22:04 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.1.1.2 Community
sokol92
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 404


WWW
« Ответ #3: 26 Март 2021, 22:09 »

В Excel макрос для подбора высоты объединенных ячеек - довольно популярная тема. Если кто-то предлагает решение, то можете протестировать качество этого решения на файле из #1. После подбора высоты лист должен "красиво" распечатываться на 2 страницах без потери символов. Результат должен быть близок к этому.

Файл из #1 выглядит "ужасающе", поскольку я взял "правильный" файл и присвоил всем строкам одинаковую высоту. Теперь программа-кандидат должна показать свое умение.
« Последнее редактирование: 26 Март 2021, 22:15 от sokol92 » Записан

Владимир.
eeigor
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 550



« Ответ #4: 26 Март 2021, 22:15 »

@sokol92, так если тема популярная, то как здесь: есть что-нибудь готовое?
Записан

Ubuntu 18.04 LTS • LO 7.1.1.2 Community
eeigor
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 550



« Ответ #5: 26 Март 2021, 22:18 »

Ну, стало быть, тема не пустая, а такую программу иметь в «арсенале средств» будет совсем не лишним…

Приходилось сталкиваться с задачами, когда есть автономная таблица на листе (к примеру, фрагмент расширенного плана закупок подразделения, но с пристёгнутым справа понедельным календарем хода процесса (расходы)… Надо было слева в отведённой ширине отображать длинные наименования договоров («всего и вся»). Строки в таких автономных, умеренных по количеству строк, таблицах приходилось объединять: компактно и красиво.

Никаких фильтров, сводных таблиц… только формулы и макросы. Готовая таблица, как правило, уже не растёт, но данные редактируются.
« Последнее редактирование: 26 Март 2021, 22:36 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.1.1.2 Community
sokol92
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 404


WWW
« Ответ #6: 26 Март 2021, 22:22 »

Поищите "макрос для подбора высоты объединенных ячеек". Я вряд ли что-нибудь подскажу, в Excel мы пользуемся собственным инструментом, который не публиковался.
Записан

Владимир.
economist
Форумчанин
***
Offline Offline

Сообщений: 1 461


« Ответ #7: 27 Март 2021, 10:57 »

С моноширинными шрифтами еще можно поиграть в калькулятор и вычислить макросом высоту ячейки, надобавляв разрывов строк CHR(10) или CHR(13), и даже центрировать значения по опред. правилам. Но такой look не найдет поддержки у офисных. А с обычными офисными шрифтами (Arial/Times/Calibri) - вычислить правильно высоту и сделать красиво - не выйдет.

В тех случая, когда строк много и красота нужна - нужно, имхо, подключать сокращение/обрезку строк, тогда получится намного лучше.

Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
eeigor
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 550



« Ответ #8: 27 Март 2021, 11:41 »

@economist, но ведь ссылка в стартовом сообщении худо-бедно реализует задачу на VBA... Мы ничего не вычисляем сами: вычисляет Calc. У меня было что-то подобное, но не хватает времени всё переписывать, поэтому я смотрю... и обращаюсь за помощью..., чтобы "не изобретать колесо". Готового решения не нашёл.
Задача мне кажется выполнимой, раз работает функция "Optimal height" (аналог VBA Autofit). Шрифт здесь не при чём... хотя в примерах на VBA добавляют что-то extra (автоподстраивают + ещё чуть-чуть)... ну, это достигается опытным путём.

В тех случая, когда строк много и красота нужна - нужно, имхо, подключать сокращение/обрезку строк
Строки сами "обрезаются", если выключен "Wrap text automatically". Но начало строки предваряю фасетным (human readable) кодом - к примеру индексом подразделения - в скобках. Столбец:
(Индекс) Наименование, отображаемое частично, сколько вошло...

На печати красиво, но не полно. Для внутреннего использования пойдёт.

Практикую режим "структуры" (на скриншоте) или объединение ячеек в табличном режиме. Это уже не имеет отношения к Database Ranges. Храним данные как на "бумаге".


* Снимок экрана от 2021-03-26 20-59-00.png (18.9 Кб, 799x208 - просмотрено 8 раз.)
« Последнее редактирование: 27 Март 2021, 12:02 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.1.1.2 Community
eeigor
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 550



« Ответ #9: 27 Март 2021, 12:57 »

Ну, если ничего нет, то попробую сам... но не быстро. Столбцы пока не трогаем.
Однако помощь по-прежнему приветствуется.


* Снимок экрана от 2021-03-27 21-00-54.png (93.41 Кб, 620x549 - просмотрено 6 раз.)
« Последнее редактирование: 27 Март 2021, 21:04 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.1.1.2 Community
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!