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

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

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

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

Сообщений: 158


« Стартовое сообщение: 19 Январь 2015, 17:27 »

Здравствуйте! Улыбка

С Новым Годом! Улыбка

Скажите, плз, как вставить в ячейку Calc постоянно обновляемую дату изменения (последнего сохранения) данного файла?

Спасибо Улыбка
Записан

Xubuntu 17.04-64, LibreOffice 5.4.0
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


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


WWW
« Ответ #1: 19 Январь 2015, 18:14 »

Может, как-то так?
Код:
Function lastUpdate()
lastUpdate = CDateFromUnoDateTime(ThisComponent.getDocumentProperties().ModificationDate)
End Function
Записан

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

Сообщений: 158


« Ответ #2: 19 Январь 2015, 18:18 »

А проще никак?

Я толком не знаю, куда это вставлять? Макрос типа делать?
Записан

Xubuntu 17.04-64, LibreOffice 5.4.0
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


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


WWW
« Ответ #3: 19 Январь 2015, 18:37 »

Типа он уже сделан. Его - эти три строчки - нужно скопировать в любой модуль в любой библиотеке Standard (или в документе или в МоиМакросы)
1. Жмём Alt+F11 - открывается окно управления макросами (то же самое можно и через меню Сервис-Макросы-Управление макросами-Basic, но слишком много щелкать приходится)
2. Выбираешь Мои макросы-Standard-Module1 и жмешь Правка.
3. Копируешь текст функции из форума в окно редактирования макросов
4. В нужной ячейке листа пишешь формулу
Код:
=LASTUPDATE()

Вроде бы и всё...
Записан

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

Сообщений: 158


« Ответ #4: 19 Январь 2015, 19:42 »

Если вставить эту функцию внутри уже сохранённого файла и его ещё раз сохранить - то работает, если открывать файл со вставленной функцией без предварительного открытия Calc, то вываливается ошибка "Ошибка времени выполнения BASIC. Свойство или метод не найдены: getDocumentProperties.".
Записан

Xubuntu 17.04-64, LibreOffice 5.4.0
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


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


WWW
« Ответ #5: 19 Январь 2015, 19:56 »

В "Мои макросы" записал?
Тогда измени код на
Код:
Function lastUpdate()
lastUpdate = "Нажми Ctrl+Shift+F9"
On Error Resume Next
lastUpdate = CDateFromUnoDateTime(ThisComponent.getDocumentProperties().ModificationDate)
End Function
Эти две дополнительные строчки позволят не видеть ошибку. Но нажимать Ctrl+Shift+F9 придётся.
Записан

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

Сообщений: 158


« Ответ #6: 19 Январь 2015, 20:24 »

А нельзя записать в Макросы LibreOffice, чтобы они вставлялись автоматически во все новые документы такого же типа?
Или это более сложно?
Записан

Xubuntu 17.04-64, LibreOffice 5.4.0
Nick222
Постоялец
***
Offline Offline

Сообщений: 158


« Ответ #7: 19 Январь 2015, 20:28 »

Странно, что такой встроенной функции нет - в Writer она же есть...?
Записан

Xubuntu 17.04-64, LibreOffice 5.4.0
Nick222
Постоялец
***
Offline Offline

Сообщений: 158


« Ответ #8: 19 Январь 2015, 20:29 »

Перенёс в конкретный документ - но теперь при каждом его открытии ЛО требует разрешить макросы... Грустный
Записан

Xubuntu 17.04-64, LibreOffice 5.4.0
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


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


WWW
« Ответ #9: 19 Январь 2015, 20:34 »

Сложно. Но можно. Вот только вопрос - а зачем? В смысле, зачем выводить в ячейке именно дату последнего изменения документа? Можно ведь при открытии документа в определённую ячейку автоматически вписывать текущую дату (тоже макросом). Сохранил документ - будет записана именно эта дата, не сохранил - останется предыдущая... А вообще-то дата последнего изменения видна в Файл-Свойства.

Чтобы офис знал, что макросы именно из этого документа можно использовать безбоязненно, нужно в Сервис - Параметры - LibreOffice - Безопасность нажать кнопку Безопасн.макросов... и во второй вкладке добавить в Расположение доверенных файлов путь к папке, где будут лежать файлы с макросами, которые можно запускать без дополнительных вопросов
Записан

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

Сообщений: 158


« Ответ #10: 19 Январь 2015, 20:37 »

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

Xubuntu 17.04-64, LibreOffice 5.4.0
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


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


WWW
« Ответ #11: 19 Январь 2015, 20:55 »

не залезая в свойства, что, честно говоря, я часто забываю делать в рабочей горячке
Погоди, так это же совсем другое дело! А если заставить офис при открытии любой книги первым делом выбрасывать на экран это окно Свойства? Ну, открыл файл, только нацелился бегом его править, а - тут оп-па! - изменён 19.02.2013...
Если мысль годится, то опять-таки в Мои макросы запиши
Код:
Sub ShowFileProperties
createUnoService("com.sun.star.frame.DispatchHelper").executeDispatch(ThisComponent.CurrentController.Frame, ".uno:SetDocumentProperties", "", 0, array())
End Sub
Потом выбери из меню Сервис-Настройка-События, в выпадающем списке внизу установи LibreOffice, выдели событие Открытие файла, щелкни Макрос и укажи этот самый ShowFileProperties.
Записан

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

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



« Ответ #12: 19 Январь 2015, 21:45 »

Я в таких случаях пользуюсь я.диском или, если знаю, что инта нет, ставлю в ИМЕНИ файла ДАТУ
Записан

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

Сообщений: 158


« Ответ #13: 20 Январь 2015, 09:21 »

Я на другом (чужом) компе разве это будет работать?
Записан

Xubuntu 17.04-64, LibreOffice 5.4.0
Nick222
Постоялец
***
Offline Offline

Сообщений: 158


« Ответ #14: 24 Июль 2017, 16:47 »

Вопрос: если в ячейке Calc есть полный путь к другому LO-файлу - как переделать (первую) функцию, чтобы получать дату изменения того (а не открытого в данный момент) файла ?

Нужно ли тот файл открывать - или можно получить его пользовательские свойства, не открывая его?

Спасибо Улыбка
Записан

Xubuntu 17.04-64, LibreOffice 5.4.0
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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