Список форумов Форум Libreoffice

Форум Libreoffice

Добро пожаловать на Форум Libreoffice!
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

English French German Italian Portuguese Russian Spanish
Простановка текущей даты

 
Начать новую тему   Ответить на тему    Список форумов Форум Libreoffice -> Calc
Предыдущая тема :: Следующая тема  
Автор Сообщение
Дмитрий



Репутация: 0    

Зарегистрирован: 17.02.2013
Сообщения: 2

СообщениеДобавлено: Вс Фев 17, 2013 7:59 pm    Заголовок сообщения: Простановка текущей даты Ответить с цитатой

Подскажите как сделать так, что бы при открытии документа в ячейке автоматически проставлялась текущая дата.

Последний раз редактировалось: Дмитрий (Вт Фев 19, 2013 4:44 pm), всего редактировалось 3 раз(а)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
hasim



Репутация: 0    

Зарегистрирован: 28.05.2012
Сообщения: 32

СообщениеДобавлено: Вт Фев 19, 2013 10:34 am    Заголовок сообщения: Ответить с цитатой

Как-то так.



Последний раз редактировалось: hasim (Вт Фев 19, 2013 11:49 am), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
RFJ



Репутация: +1    

Зарегистрирован: 02.08.2011
Сообщения: 59

СообщениеДобавлено: Вт Фев 19, 2013 10:59 am    Заголовок сообщения: Ответить с цитатой

А если использовать "пользовательский формат", то можно сделать итак в LibreOffice 4.0.

Вернуться к началу
Посмотреть профиль Отправить личное сообщение
hasim



Репутация: 0    

Зарегистрирован: 28.05.2012
Сообщения: 32

СообщениеДобавлено: Вт Фев 19, 2013 12:05 pm    Заголовок сообщения: Ответить с цитатой

RFJ писал(а):
А если использовать "пользовательский формат", то можно сделать итак в LibreOffice 4.0.


Ну, с пользовательским форматом можно даже так ( NOW() вместо TODAY() ):

Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Дмитрий



Репутация: 0    

Зарегистрирован: 17.02.2013
Сообщения: 2

СообщениеДобавлено: Вт Фев 19, 2013 4:17 pm    Заголовок сообщения: Ответить с цитатой

Понятно, спасибо.
А как сделать так что бы номер документа тоже автоматически изменялся. Т.е. например, при сохранении файла перед закрытием ячейка имела значение 1, а в момент следующего открытия файла изменилась бы на 2, и так при каждом открытии файла.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
hasim



Репутация: 0    

Зарегистрирован: 28.05.2012
Сообщения: 32

СообщениеДобавлено: Вт Фев 19, 2013 5:53 pm    Заголовок сообщения: Ответить с цитатой

Это просто делается макросом, который вешается на событие "Открытие файла" (Сервис-Настройка-События-Макрос).
Макрос такой:
Код:
Sub Plus
  Dim oDoc As Object, oSheet As Object, oCell As Object, nn As Integer

  oDoc=ThisComponent

  oSheet=oDoc.Sheets.getByName("Лист1")

  oCell=oSheet.getCellByposition(1,1)   ' для ячейки B2

  n = oCell.getValue()

   n = n + 1

  oCell.setValue(n)

End Sub
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
mathnew



Репутация: 0    

Зарегистрирован: 20.08.2011
Сообщения: 24

СообщениеДобавлено: Вт Фев 19, 2013 6:06 pm    Заголовок сообщения: Ответить с цитатой

Вы, ребята, с ответом на первый вопрос в виде функции TODAY() слегка погорячились.
А если придется работать в ночную смену, то в полночь дата в ячейке поменяется сама по себе (при первом же автоматическом пересчете функций на листе).
Так что, и в первом случае надо бы тоже макросом, аналогичным тому, который был для второго вопроса про увеличение на 1.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
hasim



Репутация: 0    

Зарегистрирован: 28.05.2012
Сообщения: 32

СообщениеДобавлено: Вт Фев 19, 2013 6:26 pm    Заголовок сообщения: Ответить с цитатой

mathnew убедил.
Уберем функцию TODAY() и добавим в макрос пару строк для записи даты.
Код:
Sub Plus
  Dim oDoc As Object, oSheet As Object, oCell As Object, oCell1 As Object, nn As Integer

  oDoc=ThisComponent

  oSheet=oDoc.Sheets.getByName("Лист1")

  oCell=oSheet.getCellByposition(1,1)

  n = oCell.getValue()

   n = n + 1

  oCell.setValue(n)
 
 
  oCell1=oSheet.getCellByposition(3,1)
 
  oCell1.setValue(Date)

End Sub


и не забудем для ячейки с датой установить нужный формат!!!

Вернуться к началу
Посмотреть профиль Отправить личное сообщение
RFJ



Репутация: +1    

Зарегистрирован: 02.08.2011
Сообщения: 59

СообщениеДобавлено: Вт Фев 19, 2013 7:16 pm    Заголовок сообщения: Ответить с цитатой

Тут есть еще одна проблема.
Если файл открыть и затем закрыть без сохранения, то ни новый номер запуска, ни новая дата не сохранятся.
То есть, вроде бы файл и не открывали.

Так что, если нужно фиксировать каждое открытие, независимо от того, сохраняется потом файл или нет, то в макрос нужно еще вписать и принудительное сохранение файла, чтобы внесенные при открытии данные автоматически сохранились.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
hasim



Репутация: 0    

Зарегистрирован: 28.05.2012
Сообщения: 32

СообщениеДобавлено: Вт Фев 19, 2013 7:32 pm    Заголовок сообщения: Ответить с цитатой

RFJ писал(а):
Тут есть еще одна проблема.
Если файл открыть и затем закрыть без сохранения, то ни новый номер запуска, ни новая дата не сохранятся.
То есть, вроде бы файл и не открывали.

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


Чем дальше в лес - тем толще партизаны.

Добавим еще одну строчку для принудительного сохранения документа.

Код:
Sub Plus
  Dim oDoc As Object, oSheet As Object, oCell As Object, oCell1 As Object, nn As Integer

  oDoc=ThisComponent

  oSheet=oDoc.Sheets.getByName("Лист1")

  oCell=oSheet.getCellByposition(1,1)

  n = oCell.getValue()

   n = n + 1

  oCell.setValue(n)
 
 
  oCell1=oSheet.getCellByposition(3,1)
 
  oCell1.setValue(Date)

  oDoc.store   ' сразу же сохраняем документ после записи новых данных

End Sub
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Форум Libreoffice -> Calc Часовой пояс: GMT
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Вы можете бесплатно создать форум на MyBB2.ru, RSS