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

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

23 Октябрь 2018, 06:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1 2 »   Вниз
  Печать  
Автор Тема: Удаление при печати пустых строк  (Прочитано 1864 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Unycom
Участник
**
Offline Offline

Сообщений: 18


« Стартовое сообщение: 11 Январь 2018, 08:59 »

Всем доброго дня.
Интересует возможность удаления пробелов при выводе на печать.
В ячейке А1 текст, А2-А5 — пустые, А6 — текст. При выводе на печать появляется пробел между А1 и А6, как его удалить?
Пустые ячейки будут разные, в зависимости от расчетов.
Записан
Unycom
Участник
**
Offline Offline

Сообщений: 18


« Ответ #1: 11 Январь 2018, 09:04 »

Типа, если ячейка пустая, то высота равна 0?
Записан
kompilainenn
Мастер
*****
Offline Offline

Сообщений: 2 465



« Ответ #2: 11 Январь 2018, 09:12 »

автофильтр для этой цели нельзя использовать?
Записан

Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут
Unycom
Участник
**
Offline Offline

Сообщений: 18


« Ответ #3: 11 Январь 2018, 09:12 »

автофильтр для этой цели нельзя использовать?
это как?
Записан
kompilainenn
Мастер
*****
Offline Offline

Сообщений: 2 465



« Ответ #4: 11 Январь 2018, 09:34 »

Это выделить диапазон, применить автофильтр, выбрать в фильтре только не пустые значения, нажать ОК и увидеть на экране только эти значения, отправить на печать
Записан

Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут
Unycom
Участник
**
Offline Offline

Сообщений: 18


« Ответ #5: 11 Январь 2018, 09:39 »

Это выделить диапазон, применить автофильтр, выбрать в фильтре только не пустые значения, нажать ОК и увидеть на экране только эти значения, отправить на печать
спасибо, вечером попробую, отпишусь
Записан
Unycom
Участник
**
Offline Offline

Сообщений: 18


« Ответ #6: 11 Январь 2018, 09:51 »

И все таки, есть такая формула, которая задает высоту ячейки, строки? Гулглю и ничего найти не могу.
Записан
mikekaganski
Мастер
*****
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 1 068


« Ответ #7: 11 Январь 2018, 09:55 »

Вероятно, не можете, потому что её нет.

Это возможно сделать с помощью макроса, но не встроенными формулами.

Рекомендация @kompilainenn оптимальна.
Записан

С уважением,
Михаил Каганский
economist
Форумчанин
***
Offline Offline

Сообщений: 927


« Ответ #8: 11 Январь 2018, 11:49 »

В Интернете огромное количество (можно сказать миллионы) примеров макросов для Excel (VBA), и в LibreOffice Calc (свой язык макросов StarBasic) - они тоже почти всегда работают, стоит лишь добавить строку вверху модуля вида Option VBASupport 1.

При этом код на VBA в 4-5 раз компактнее и понятнее. Вот пример и файл-вложение с кнопкой (код смотреть в файле по Alt+F11). Код написан за 3 минуты.

Код:
Option VBASupport 1

Sub HideEmptyRowsOnColumnA
Application.ScreenUpdating=false
For Each r in [A2:A1000] ' до 1000-й строки
If r.value="" Then r.entirerow.hidden=true
Next
Application.ScreenUpdating=true
End Sub

* HideRowsMacro.ods (10.26 Кб - загружено 9 раз.)
« Последнее редактирование: 11 Январь 2018, 11:51 от economist » Записан

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

Сообщений: 18


« Ответ #9: 11 Январь 2018, 12:44 »

В Интернете огромное количество (можно сказать миллионы) примеров макросов для Excel (VBA), и в LibreOffice Calc (свой язык макросов StarBasic) - они тоже почти всегда работают, стоит лишь добавить строку вверху модуля вида Option VBASupport 1.

При этом код на VBA в 4-5 раз компактнее и понятнее. Вот пример и файл-вложение с кнопкой (код смотреть в файле по Alt+F11). Код написан за 3 минуты.

Код:
Option VBASupport 1

Sub HideEmptyRowsOnColumnA
Application.ScreenUpdating=false
For Each r in [A2:A1000] ' до 1000-й строки
If r.value="" Then r.entirerow.hidden=true
Next
Application.ScreenUpdating=true
End Sub

спасибо, пока ничего не понял, вечером буду разбираться, будут вопросы задам Подмигивающий
Записан
Unycom
Участник
**
Offline Offline

Сообщений: 18


« Ответ #10: 11 Январь 2018, 22:22 »

В Интернете огромное количество (можно сказать миллионы) примеров макросов для Excel (VBA), и в LibreOffice Calc (свой язык макросов StarBasic) - они тоже почти всегда работают, стоит лишь добавить строку вверху модуля вида Option VBASupport 1.

При этом код на VBA в 4-5 раз компактнее и понятнее. Вот пример и файл-вложение с кнопкой (код смотреть в файле по Alt+F11). Код написан за 3 минуты.


Sub HideEmptyRowsOnColumnA
Application.ScreenUpdating=false
For Each r in [A2:A1000] ' до 1000-й строки
   If r.value="" Then r.entirerow.hidden=true
Next
Application.ScreenUpdating=true
End Sub
[/code]

Запустил Ваш макрос, выскакивает ошибка:
Ошибка времени выполнения BASIC.
'91'
Переменная типа Object не установлена.
[code]
Option VBASupport 1

Что не так делаю?
Записан
Unycom
Участник
**
Offline Offline

Сообщений: 18


« Ответ #11: 11 Январь 2018, 22:53 »

В Интернете огромное количество (можно сказать миллионы) примеров макросов для Excel (VBA), и в LibreOffice Calc (свой язык макросов StarBasic) - они тоже почти всегда работают, стоит лишь добавить строку вверху модуля вида Option VBASupport 1.

При этом код на VBA в 4-5 раз компактнее и понятнее. Вот пример и файл-вложение с кнопкой (код смотреть в файле по Alt+F11). Код написан за 3 минуты.


Sub HideEmptyRowsOnColumnA
Application.ScreenUpdating=false
For Each r in [A2:A1000] ' до 1000-й строки
   If r.value="" Then r.entirerow.hidden=true
Next
Application.ScreenUpdating=true
End Sub
[/code]

Запустил Ваш макрос, выскакивает ошибка:
Ошибка времени выполнения BASIC.
'91'
Переменная типа Object не установлена.
[code]
Option VBASupport 1

Что не так делаю?

Сори, вроде все работает, спасибо. Продолжаю разбираться.
Записан
Unycom
Участник
**
Offline Offline

Сообщений: 18


« Ответ #12: 13 Январь 2018, 21:03 »

В Интернете огромное количество (можно сказать миллионы) примеров макросов для Excel (VBA), и в LibreOffice Calc (свой язык макросов StarBasic) - они тоже почти всегда работают, стоит лишь добавить строку вверху модуля вида Option VBASupport 1.

При этом код на VBA в 4-5 раз компактнее и понятнее. Вот пример и файл-вложение с кнопкой (код смотреть в файле по Alt+F11). Код написан за 3 минуты.

Код:
Option VBASupport 1

Sub HideEmptyRowsOnColumnA
Application.ScreenUpdating=false
For Each r in [A2:A1000] ' до 1000-й строки
If r.value="" Then r.entirerow.hidden=true
Next
Application.ScreenUpdating=true
End Sub

Еще раз спасибо за макрос.
Сегодня посидел, разобрался. Научился вставлять макрос, запускать. Завел F5 под запуск макроса, F4 под возврат скрытых строк (оптимальная высота строк)
Но теперь столкнулся со следующим.
Такая ячейка =IF(Лист1.G5="-";"";Лист1.A45) скрывается, а
такая =IF(Лист1.G5="-";"";Лист1.C32)&" "&IF(Лист1.G5="-";"";Лист1.I5) и
такая =IF(Лист1.G5="-";"";Лист1.C3)&" "&IF(Лист1.G5="-";"";Лист1.C33)&" "&IF(Лист1.G5="-";"";Лист1.I5)&" "&IF(Лист1.G5="-";"";Лист1.C45)&" "&IF(Лист1.G5="-";"";TEXT(Лист1.J5;"# ##0 [$руб.-419];-# ##0 [$руб.-419]"))
- нет.
Может подскажете что можно сделать?
Записан
Unycom
Участник
**
Offline Offline

Сообщений: 18


« Ответ #13: 13 Январь 2018, 21:05 »

И еще, в теме писал про удаление строк, правильнее - скрытие.
И скрытие должно происходить, когда в ячейках отсутствует текст (при этом вышеуказанные формулы присутствуют)

Нагуглил кучу аналогичных макросов, но все не то. Вышеуказанный мне подходит больше всего.
Помогите его доработать под скрытие не только пустых строк, но и пустых с формулами.
Заранее спасибо.
« Последнее редактирование: 14 Январь 2018, 14:49 от Unycom » Записан
economist
Форумчанин
***
Offline Offline

Сообщений: 927


« Ответ #14: 14 Январь 2018, 20:04 »

Научился вставлять макрос, запускать.
Это (запуск по требованию) - уже делается кнопкой во вложенном в сообщение #8 файле ODS. Согласен, я его, как и любое другое вложение на Форуме - тоже плохо замечаю.

Что касается скрытия строк с формулами, возвращающими пустой текст "" - мой макрос работает в гостях, тут LO 5422, т.к. строка

If r.value="" Then r.entirerow.hidden=true

проверяет как раз значение (value) ячейки - неважно формулой оно возвращено, или же это просто пустая ячейка.

Но формулы из поста #12 крайне неоптимальны, перемудрены. Автору формул стоит функции AND OR NOT и их русских эквивалентов И ИЛИ НЕ, благо в Инете полно инфы - стоит изучить, а формулы в Calc - в один миг становятся "русскими" благодаря людям в т.ч. с нашего Форума, снятием одного флажка.

Плюс русских формул - не в унижении тру-программистов, а в том что написанное в Интернете - никуда не исчезает, и при первом же примитивном поиске "в Гугле" - помощь в подобных вопросах, подсказанная для Excel - станет помощью в OpenOffice|LibreOffice Calc, убойной силой от не "просто конкурента", а от "лучшей программы в мире", изменившей историю (см. Wikipedia). Сделать недостаток - силой, слабость - преимуществом, причем ключевым - это было просто гениально! Так и должно действовать СПО - нагло, хитро, безбоязненно, точечно. Надо отдать должное - впервые это позволил себе именно OpenOffice...

Странный этот эффект - связан с тем что VBA-программистов, возможно, уже миллиард, это единственная технология, которую не отключат злые админы, им это непросто и тупо "сложновато", ввиду собственного flash-скудоумия и "упрятанности" самой технологии. Этот как "право матерится на кухне" ...  - извиняюсь за аналогию. И если этого вы не делали - плохо, вы не использовали прекрасный момент. Почему же?

Да потому что конкуренция, "битва на смерь". Тру-проггеры те самые, которые на С, JAVA итп (список неполон) - очень сильно (бываете-же!) обласканы славой денег - очень ревностно относятся к тому, когда кто-то "юзверь" - взял да и написал программу безо всякого скилла, просто потому что он знает, что нужно получить, а Интернет у него есть. Если вы думаете что такого не бывает - поверьте: именно это до сих пор определяет расстановку сил в IT, даже в крупных компаниях. Но в продвинутом Google - вам дадут денег за любую инициативу, а в отечественной РН - наверняка нет.
« Последнее редактирование: 15 Январь 2018, 09:34 от economist » Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
Страниц: 1 2 »   Вверх
  Печать  
 
Перейти в:  

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