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

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

21 Сентябрь 2017, 11:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Сообщений: 6


« Стартовое сообщение: 4 Февраль 2017, 21:06 »

Добрый день!

Прошу помочь с написанием макроса в Libreoffice
"Нажимаем на рисунок >> запускае автофильтр на странице"

В Excel он был

Sub Рисунок2_Щелчок()
ActiveSheet.AutoFilter.ApplyFilter
End Sub

не могу найти варианты
Записан
rami
Гуру
*******
Online Online

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #1: 4 Февраль 2017, 21:16 »

Прошу помочь с написанием макроса в Libreoffice
"Нажимаем на рисунок >> запускает автофильтр на странице"
Курсор должен находиться внутри данных, выполните макрос:
Код:
Sub Main
Dim document As Object, dispatcher As Object
document=ThisComponent.CurrentController.Frame
dispatcher=createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:DataFilterAutoFilter", "", 0, Array())
End Sub
Записан

Vasmart
Новичок
*
Offline Offline

Сообщений: 6


« Ответ #2: 4 Февраль 2017, 21:28 »

Не получается, а вообще как можно автоматически обновлять автофльтр при измненении данных в исходной таблице
Записан
rami
Гуру
*******
Online Online

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #3: 4 Февраль 2017, 21:34 »

Не получается, а вообще как можно автоматически обновлять автофльтр при изменении данных в исходной таблице
Почитайте в Справке что такое Автофильтр, попробуйте поработать с ним вручную, а затем сформулируйте заново ваш вопрос.
Записан

Vasmart
Новичок
*
Offline Offline

Сообщений: 6


« Ответ #4: 4 Февраль 2017, 21:45 »

У меня есть 2 таблицы в разных листах.

В таблицу 1 вводятся данные вручную (опросный лист),
а в таблице 2 на втором листе отображются строки с введенными данными, стоит автофильтр >0,
хочется этот автофильтр обновлять при открытии листа или нажатем, например, кнопки
Записан
Vasmart
Новичок
*
Offline Offline

Сообщений: 6


« Ответ #5: 4 Февраль 2017, 22:02 »

файл

* Express5.ods (97.89 Кб - загружено 6 раз.)
Записан
rami
Гуру
*******
Online Online

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #6: 4 Февраль 2017, 23:21 »

Просто пишите данные в таблицах.

* Express51.ods (93.32 Кб - загружено 3 раз.)
« Последнее редактирование: 4 Февраль 2017, 23:24 от rami » Записан

Vasmart
Новичок
*
Offline Offline

Сообщений: 6


« Ответ #7: 5 Февраль 2017, 08:40 »

Просто пишите данные в таблицах.
Спасибо! Идеальный вариант!

у меня будет 5 таких листов по 5 сериям
т.е. будут листы ИТОГО, ИТОГО1, ИТОГО5  как в макросе это учесть, т.к. расчет прописан только
для листа ИТОГО

Sub Main  Dim oRange, oFilterDesc
Dim oFields(0) As New com.sun.star.sheet.TableFilterField
oRange=ThisComponent.Sheets.getByName("ИТОГО").getCellRangeByName("A7:E208")  'диапазон фильтра
oFilterDesc=oRange.createFilterDescriptor(True)
oFields(0).Field=4
oFields(0).Operator=com.sun.star.sheet.FilterOperator.GREATER
oFields(0).IsNumeric=true
oFields(0).NumericValue=0
oFilterDesc.setFilterFields(oFields())
oFilterDesc.ContainsHeader=False 'без учета заголовка
oRange.filter(oFilterDesc)
End Sub
« Последнее редактирование: 5 Февраль 2017, 08:55 от Vasmart » Записан
rami
Гуру
*******
Online Online

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #8: 5 Февраль 2017, 11:28 »

у меня будет 5 таких листов по 5 сериям
т.е. будут листы ИТОГО, ИТОГО1, ИТОГО5  как в макросе это учесть, т.к. расчет прописан только
для листа ИТОГО
Сделать цикл для каждого листа со своими параметрами фильтрации.
Записан

Vasmart
Новичок
*
Offline Offline

Сообщений: 6


« Ответ #9: 5 Февраль 2017, 12:19 »

у меня будет 5 таких листов по 5 сериям
т.е. будут листы ИТОГО, ИТОГО1, ИТОГО5  как в макросе это учесть, т.к. расчет прописан только
для листа ИТОГО
Сделать цикл для каждого листа со своими параметрами фильтрации.
   Спасибо! Разобрался!
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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