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

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

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

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1 2 »   Вниз
  Печать  
Автор Тема: Не работает пересчет формул  (Прочитано 10359 раз)
0 Пользователей и 1 Гость смотрят эту тему.
sofi
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Ижевск
Сообщений: 63

Глядя на мир, нельзя не удивляться!


« Стартовое сообщение: 21 Июль 2014, 05:10 »

Всем привет!
Интересный случай в нашей деревне!
Расширенный Фильтр выдергивает данные из одного листа и вставляет результат на другом.
Затем, формулы вида:
=COUNTIF(A1:A10;"нет")
считают статистику по данным фильтра.
 
Так вот, формулы не обрабатывают результаты фильтра при их изменении!
Все остальное, на том же листе, пересчитывается и чудно работает!
Хоть не вставляй формулы макросом, после фильтра либо все макросом считать!
Люди добрые, что за теоритическая засада?

P.S.
Если из формулы "руками" убираешь "=", а затем вновь вставляешь,
формула выдает правильный результат.
Записан

Правильно поставленный вопрос, на 50% предполагает правильный ответ!
А, если автоматизировать бардак, то получится автоматизированный бардак!
Yakov
Администратор
**
Offline Offline

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


WWW
« Ответ #1: 21 Июль 2014, 06:27 »

Хоть не вставляй формулы макросом,
Может быть проблема в том, что формулы вставляются как текст?
Приведите пример вашего кода.
Записан

sofi
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Ижевск
Сообщений: 63

Глядя на мир, нельзя не удивляться!


« Ответ #2: 21 Июль 2014, 07:03 »

Если бы вставлялось, как текст, тогда бы вообще не работало!
А тут не работает при изменении выгружаемых из фильтра данных.
Т.е. выгрузили данные, ввели формулу, все посчиталось.
Изменили параметры фильтра, выгрузили данные, формула не пересчиталась.

Привожу код:

  'включаем фильтр
   oSheet = ThisComponent.getSheets().getByIndex(1)
   oFiltDesc = oSheet.createFilterDescriptor(True) 'определяем переменную CopyOutputData 
   oCritRange = oSheet.getCellRangeByName("B1:P2") 'определяем диапазон критериев фильтрации
   oDataRange = oSheet.getCellRangeByName(rng.Address) 'определяем диапазон базы для фильтрации
   oFiltDesc = oCritRange.createFilterDescriptorByObject(oDataRange)
   
   oFiltDesc.CopyOutputData = True 'разрешаем копировать на лист3
   Dim x As New com.sun.star.table.CellAddress
   x.Sheet = 2 'лист 3
   x.Column = 0 'столбец 1
   x.Row = 14 'строка 15
   oFiltDesc.OutputPosition = x 'определяем адрес куда копировать отфильтрованные данные
   oDataRange.filter(oFiltDesc) 'записываем данные на лист3
Записан

Правильно поставленный вопрос, на 50% предполагает правильный ответ!
А, если автоматизировать бардак, то получится автоматизированный бардак!
rami
Гуру
*******
Offline Offline

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #3: 21 Июль 2014, 08:10 »

Интересный случай в нашей деревне!
Чудна погода в вашей деревне : густой туман скрадывает очертания домов и деревьев.
У меня всё работает и фильтр и формула.
Хоть не вставляй формулы макросом, после фильтра либо все макросом считать!
А вот тут я бы попросил подробности.
Записан

sofi
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Ижевск
Сообщений: 63

Глядя на мир, нельзя не удивляться!


« Ответ #4: 21 Июль 2014, 09:04 »

Цитата:
А вот тут я бы попросил подробности.
Я хочу сказать, что если формулу вставлять на лист программно,
т.е. после выгрузки результатов фильтрации, то все работает!

Не работает, если формула "забита" в ячейку листа "руками".
Иначе говоря, перезаписывать макросом формулу в ячейку, после
каждого применения фильтра.
« Последнее редактирование: 21 Июль 2014, 09:08 от sofi » Записан

Правильно поставленный вопрос, на 50% предполагает правильный ответ!
А, если автоматизировать бардак, то получится автоматизированный бардак!
rami
Гуру
*******
Offline Offline

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #5: 21 Июль 2014, 09:41 »

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

sofi
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Ижевск
Сообщений: 63

Глядя на мир, нельзя не удивляться!


« Ответ #6: 21 Июль 2014, 10:27 »

"Обижаешь начальник!"  Улыбка
Calculate я первым делом проверил! Галка есть.
А в макросах он вообще, нигде не применяется.
Вы не обратили внимание, ранее я писал:

Цитата:
Так вот, формулы не обрабатывают результаты фильтра при их изменении! 
Все остальное, на том же листе, пересчитывается и чудно работает!

Так, что беда какая-то! Шокирован
Записан

Правильно поставленный вопрос, на 50% предполагает правильный ответ!
А, если автоматизировать бардак, то получится автоматизированный бардак!
rami
Гуру
*******
Offline Offline

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #7: 21 Июль 2014, 10:56 »

Что я делаю не так? Фильтр и формулу скопировал у вас, только диапазоны поменял.

* Расширенный фильтр и формула.avi (543.28 Кб - загружено 24 раз.)
Записан

Hasim
Форумчанин
***
Offline Offline

Сообщений: 754


Woe from wit


« Ответ #8: 21 Июль 2014, 13:14 »

А сам проблемный файл выложить не судьба?
Записан
sofi
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Ижевск
Сообщений: 63

Глядя на мир, нельзя не удивляться!


« Ответ #9: 21 Июль 2014, 13:54 »

Цитата:
Фильтр и формулу скопировал у вас, только диапазоны поменял
К сожалению, Ваш файл я открыть не могу.

Цитата:
проблемный файл выложить
Попробую
Записан

Правильно поставленный вопрос, на 50% предполагает правильный ответ!
А, если автоматизировать бардак, то получится автоматизированный бардак!
rami
Гуру
*******
Offline Offline

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #10: 21 Июль 2014, 14:01 »

К сожалению, Ваш файл я открыть не могу.
Медиапроигрыватель VLC открывает. А в каком формате вы смотрите видеофайлы?
Записан

sofi
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Ижевск
Сообщений: 63

Глядя на мир, нельзя не удивляться!


« Ответ #11: 21 Июль 2014, 14:23 »

У меня штатный WindowsMedia.

Уважаемые господа, не бейте ногами по лицу, но
я сделал маленький примерчик для форума и все работает!

Это какая-то мистика! Но ведь чудес не бывает! Шокирован

* Без имени 2.ods (14.18 Кб - загружено 35 раз.)
Записан

Правильно поставленный вопрос, на 50% предполагает правильный ответ!
А, если автоматизировать бардак, то получится автоматизированный бардак!
Hasim
Форумчанин
***
Offline Offline

Сообщений: 754


Woe from wit


« Ответ #12: 21 Июль 2014, 14:37 »

теперь можно попробовать сделать большой пример для себя (с самого начала).
Записан
sofi
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Ижевск
Сообщений: 63

Глядя на мир, нельзя не удивляться!


« Ответ #13: 21 Июль 2014, 15:39 »

Попробовал, все очень печально!
Дал команду фильтру выгружать данные на другой лист и
все работает!
Выходит у меня "вылетил" первоначальный лист!
Прошел код F8, ошибок не нашел.
Видно, как фильтр вставляет данные на лист, а формула это не видит!
Теперь все переделывать, тоска!!!! Плачущий
 
Записан

Правильно поставленный вопрос, на 50% предполагает правильный ответ!
А, если автоматизировать бардак, то получится автоматизированный бардак!
Hasim
Форумчанин
***
Offline Offline

Сообщений: 754


Woe from wit


« Ответ #14: 21 Июль 2014, 17:37 »

Может, это поможет Пересчет (F9) пользовательской функции (типа Volatile)
Записан
Страниц: 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!