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

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

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

Войти
Новости: Вы можете задать вопрос по LibreOffice или Apache OpenOffice  без регистрации, используя форму
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: « 1 2 3 4 »   Вниз
  Печать  
Автор Тема: Помогите !!! автоматическое добавление даты...  (Прочитано 35461 раз)
0 Пользователей и 1 Гость смотрят эту тему.
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #30: 9 Апрель 2015, 10:35 »

Бр-р-р... Действительно, что-то пошло не так...
Я тут просто глянул по коду чуть вверх - комментарий "в данном случае А1:А101", цикл под этим комментарием G8:G20... Расскажешь про задачу подробнее? А то ведь в самом начале спросил про B3, а делать пытаешься для другого диапазона, путаница выходит.
А по смыслу ошибки что можно сказать? В тот момент когда дело дошло до вызова ChartDataChanged в переменной oEvent уже (или ещё) ничего не было.
Такое могло случиться, если ты попытался скрестить в пределах одного документа оба способа перехвата событий - от листа и от данных...
В общем, лучше всего будет приложить к следующему сообщению образец этого твоего "расчета стоимости оформления" - когда обсуждаем не куски кода, а готовый документ, решение находится быстрее.
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Yelik
Участник
**
Offline Offline

Сообщений: 11


« Ответ #31: 9 Апрель 2015, 10:48 »

Я профан в макросах . Скопировал пример , поменял строки по которым отслеживается изменение на G8:G20 и... ошибка. Файл во вложении.

Записан
rami
Гуру
*******
Offline Offline

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #32: 9 Апрель 2015, 10:54 »

Такое могло случиться, если ты попытался скрестить в пределах одного документа оба способа перехвата событий - от листа и от данных...
Всё может быть Афро, но я сильно сомневаюсь, что такое возможно. У меня и этот макрос и события листа и формулы — всё действует одновременно и без проблем. Не смог воспроизвести ошибку В замешательстве Что я делаю не так Непонимающий
Записан

rami
Гуру
*******
Offline Offline

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #33: 9 Апрель 2015, 11:11 »

Удалите событие листа и выполните макрос addListener — он будет слушать событие и запускать макрос OOO_chartDataChanged(oEvent). А то у вас получается "Коктейль Молотова" Шокирован
Записан

Yelik
Участник
**
Offline Offline

Сообщений: 11


« Ответ #34: 9 Апрель 2015, 11:19 »

Событие удалил. Запускаю макрос addListener и ничего не происходит(ошибки тоже нет). Кстати, просит установить Java(JRE), возможно поэтому ничего и не происходит?
Записан
rami
Гуру
*******
Offline Offline

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #35: 9 Апрель 2015, 11:30 »

Запускаю макрос addListener и ничего не происходит
Происходит, назначается слушатель события. Кстати, выполнять этот макрос нужно всего один раз — он действует до закрытия документа или до удаления слушателя. Обычно запуск слушателя назначается на открытие документа.

Событие — это изменение ячеек G8:G20, которое происходит при пересчёте формул. Чтобы произошёл пересчёт, нужно изменить хотя бы одну ячейку из восьмой строки(параметры рамы)
« Последнее редактирование: 9 Апрель 2015, 11:39 от rami » Записан

Yelik
Участник
**
Offline Offline

Сообщений: 11


« Ответ #36: 9 Апрель 2015, 11:41 »

Вот как виглядит у меня. Gif анимированный.


* макрос.gif (360.75 Кб, 1108x709 - просмотрено 86 раз.)
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #37: 9 Апрель 2015, 12:58 »

Да нет, всё должно работать...
Хотел о другом спросить - а на зачем? Ну, вот вся эта бодяга с установкой времени самого последнего изменения каждого из полей данных?
Как я понимаю, после занесения всех-всех данных этот листок будет распечатан в двух экземплярах и именно дата-время печати должна светится в ячейке B3? Почему в таком случае мы не можем просто написать туда =NOW()?
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Yelik
Участник
**
Offline Offline

Сообщений: 11


« Ответ #38: 9 Апрель 2015, 13:04 »

Да нет, всё должно работать...
Хотел о другом спросить - а на зачем? Ну, вот вся эта бодяга с установкой времени самого последнего изменения каждого из полей данных?
Как я понимаю, после занесения всех-всех данных этот листок будет распечатан в двух экземплярах и именно дата-время печати должна светится в ячейке B3? Почему в таком случае мы не можем просто написать туда =NOW()?
Чтобы при открытии файла не изменялась дата. Какая может быть ещё причина, что у меня не работает addListener?
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #39: 9 Апрель 2015, 13:20 »

Ну, причины могут быть самые разные... Например, уровень безопасности макросов... Хоть какой-то макрос выполняется? Ну, например, при запуске addListener выскакивает сообщение с картинки? Я не стебусь, я на полном серьёзе - я же не знаю пока твой уровень! У нас тут иногда совсем неподготовленные товарищи помощь получают. А то ведь в твоей гифке сам процесс активизации слушателя событий не показан...
А по поводу
Чтобы при открытии файла не изменялась дата.
Давай уточним - какая именно дата должна зафиксироваться в B3? Дата сохранения, дата печати, дата создания?.. В свойствах документа этих дат как миллионеров во Флориде... и ещё добавить можно, в пользовательских свойствах... И выдернуть в нужную ячейку именно её (дату из свойств) - гораздо проще... Опять же, как уберечься от нечаянного изменения даты при повторном открытии файла?


* msgBox AddListener.png (6.15 Кб, 166x97 - просмотрено 10 раз.)
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
rami
Гуру
*******
Offline Offline

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #40: 9 Апрель 2015, 13:38 »

Проблема в том, что в LibreOffice 4.4.2.2 слетает слушатель событий после первого применения, при повторном выполнении макроса addListener он работает как надо. Проверил в Apache OpenOffice 4.1.0 такой проблемы нет.

Yelik в любом случае макросы надо упростить и выбросить из них всё не нужное.

Стоит подумать о предложении JohnSUN

Проверьте мой вариант (если в LibreOffice, то учитывайте проблему). Какие офисы у вас?

Записан

Yelik
Участник
**
Offline Offline

Сообщений: 11


« Ответ #41: 9 Апрель 2015, 15:48 »

Ну, причины могут быть самые разные... Например, уровень безопасности макросов... Хоть какой-то макрос выполняется? Ну, например, при запуске addListener выскакивает сообщение с картинки? Я не стебусь, я на полном серьёзе - я же не знаю пока твой уровень!
Уровень безопасности Средний.
А мой уровень по макросах = 0 Да уж...

Проблема в том, что в LibreOffice 4.4.2.2 слетает слушатель событий после первого применения, при повторном выполнении макроса addListener он работает как надо. Проверил в Apache OpenOffice 4.1.0 такой проблемы нет.

Yelik в любом случае макросы надо упростить и выбросить из них всё не нужное.

Стоит подумать о предложении JohnSUN

Проверьте мой вариант (если в LibreOffice, то учитывайте проблему). Какие офисы у вас?
У меня LibreOffice 4.4.1.2, WinXP Pro SP3. Кстати ваш вариант работает, НО надо выполнить макрос addListener вручную.
Записан
rami
Гуру
*******
Offline Offline

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #42: 9 Апрель 2015, 16:01 »

Уровень безопасности Средний.
А мой уровень по макросах = 0 Да уж...
В данном случае это не важно, проблема в LibreOffice
У меня LibreOffice 4.4.1.2, WinXP Pro SP3. Кстати ваш вариант работает, НО надо выполнить макрос addListener вручную.
Я проверил эта проблема есть начиная с LibreOffice 4.3 и позже. В LibreOffice 4.2.8 и в Apache OpenOffice 4.1.0 слушатели событий не слетают. Так что, надо или перейти на предыдущие версии, или запускать слушателя вручную, или искать другие варианты решения задачи.
Записан

Yelik
Участник
**
Offline Offline

Сообщений: 11


« Ответ #43: 9 Апрель 2015, 16:23 »

Я проверил эта проблема есть начиная с LibreOffice 4.3 и позже. В LibreOffice 4.2.8 и в Apache OpenOffice 4.1.0 слушатели событий не слетают. Так что, надо или перейти на предыдущие версии, или запускать слушателя вручную, или искать другие варианты решения задачи.
А какие ещё могут быть варианты?
Записан
rami
Гуру
*******
Offline Offline

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #44: 9 Апрель 2015, 16:35 »

А какие ещё могут быть варианты?
Присоединяюсь к вопросам JohnSUN:
Давай уточним - какая именно дата должна зафиксироваться в B3? Дата сохранения, дата печати, дата создания?.. В свойствах документа этих дат как миллионеров во Флориде... и ещё добавить можно, в пользовательских свойствах... И выдернуть в нужную ячейку именно её (дату из свойств) - гораздо проще... Опять же, как уберечься от нечаянного изменения даты при повторном открытии файла?
В зависимости от условий задачи решение может быть очень разным.
« Последнее редактирование: 9 Апрель 2015, 16:37 от rami » Записан

Страниц: « 1 2 3 4 »   Вверх
  Печать  
 
Перейти в:  

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