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

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

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

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

Сообщений: 892


« Ответ #15: 18 Май 2018, 09:21 »

Вот набросал пример и файл-вложение. Используется "гибридный" код SB+VBA.
Нажатие на кнопку прячет пустые столбцы и вертает их обратно.
АвтоФильтр работает именно по той строке, в которой сейчас находится курсор (выделена ячейка). Это может быть где угодно в синей области).
Фильтруются столбцы из зеленой области (задается в коде здесь - [C:F].columns)

Код:
Option VBASupport 1
Option Compatible

Sub Afilter
' циклический автофильтр столбцов по кнопке
filter=ChangeTextButton ' сменим текст фильтра на кнопке
[C:F].columnwidth=10 ' восстановили ширину столбцов

For each st in [C:F].columns ' ограничили область действия фильтра
if filter="все" then st.columnwidth=10
if filter="без пустых" and cells(Activecell.row, st.column).value="" then st.columnwidth=0
next st
End Sub


Function ChangeTextButton as string
' циклическая менялка Текста на кнопке
dim oController, oButtonModel, oButtonControl
oController = ThisComponent.CurrentController
oButtonModel = oController.ActiveSheet.DrawPage.Forms(0).getByName("Кнопка 1")
oButtonControl = oController.getControl(oButtonModel)

if oButtonControl.model.label="все" then
oButtonControl.model.label="без пустых"
elseif oButtonControl.model.label="без пустых" then ' условий можно здесь написать много
oButtonControl.model.label="все"
end if

' oButtonControl.Model.BackgroundColor = RGB(50, 0, 0) ' можно менять цвет кнопки
' подробно про кнопки https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide/Control_Element_Forms

ChangeTextButton=oButtonControl.model.label ' так делается возврат значения функции
End function

* Автофильтр по столбцам (кнопка).ods (17.44 Кб - загружено 0 раз.)
« Последнее редактирование: 18 Май 2018, 13:13 от 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!