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

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

17 Февраль 2020, 07:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Сообщений: 8


« Стартовое сообщение: 11 Февраль 2020, 22:46 »

Уважаемые форумчане.
Подскажите есть такая возможность. Пример.
Есть 4 ячейки. В 1 из них список выбора Отправил, Переслал, Закрыл. И есть 3 столбца которые называются Дата Отправки, Дата Пересылки, Дата завершения.
Допустим в ячейке 1 я выбрал "Отправил" необходимо что в столбце "Дата отправки" проставлялась сегодняшняя дата, и она оставалась навсегда, то есть не менялась, если я открою к примеру через неделю.
Не знаю, поймете или нет, чего я хочу. Просто немогу сюда загрузить файл, так как пишу с работы. Нельзя отправлять файлы.
Может есть такая формула.
Подскажите пож. очень облегчит работу.
« Последнее редактирование: 12 Февраль 2020, 02:37 от bormant » Записан
Bigor
Опытный пользователь
***
Offline Offline

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


« Ответ #1: 12 Февраль 2020, 10:02 »

Добрый день

Хотелку вашу можно только макросом сделать.
Записан
Wiagra999
Участник
**
Offline Offline

Сообщений: 8


« Ответ #2: 12 Февраль 2020, 22:32 »

Добрый день

Хотелку вашу можно только макросом сделать.
Вы не подскажите макрос?
Записан
Rafik
Форумчанин
***
Offline Offline

Сообщений: 104


« Ответ #3: 13 Февраль 2020, 07:15 »

приблизительно как-то так
Код:
Sub Izmeneno(oEvent)
' привязать этот макрос к событию листа "Содержимое изменено"
' Если в первой колонке выбран "Отправил", то во вторую запишет текущую дату
'---- Координаты диапазона, после изменения которого вызвана. Индекс Первой колонки не интересует, поэтому не смотрим её
' Последняя колонка диапазона. Если вызван из ячейки, то Start=End
nCol = oEvent.RangeAddress.EndColumn
nRow = oEvent.RangeAddress.StartRow
nRow_end = oEvent.RangeAddress.EndRow
' Текущий лист
oSheet = ThisComponent.Sheets(oEvent.RangeAddress.Sheet)
' Если хвост диапазона в первой колонке и одна ячейка
If (nCol=0) And (nRow = nRow_end) Then
                ' новое значение  "Отправил"?
                If (oEvent.string = "Отправил") Then
' заполняем ячейку второй колонки
oSheet.getCellByPosition(1,nRow).Value = Now
End If
End If
End Sub
« Последнее редактирование: 13 Февраль 2020, 07:19 от Rafik » Записан
Wiagra999
Участник
**
Offline Offline

Сообщений: 8


« Ответ #4: 15 Февраль 2020, 18:51 »

приблизительно как-то так
Да макрос работает, но если у меня не ячейка А1 и B2.
К примеру у меня значение отправил в Е1 и F1
Как изменить?
Записан
Wiagra999
Участник
**
Offline Offline

Сообщений: 8


« Ответ #5: 15 Февраль 2020, 19:05 »

Вот так вообще не работает. Не силён я в макросах(( Видимо не судьба облегчить.
Код:
Sub Izmeneno(oEvent)
' привязать этот макрос к событию листа "Содержимое изменено"
' Если в первой колонке выбран "Отправил", то во вторую запишет текущую дату
'---- Координаты диапазона, после изменения которого вызвана. Индекс Первой колонки не интересует, поэтому не смотрим её
' Последняя колонка диапазона. Если вызван из ячейки, то Start=End
nCol = oEvent.RangeAddress.EndColumn
nRow = oEvent.RangeAddress.StartRow
nRow_end = oEvent.RangeAddress.EndRow
' Текущий лист
oSheet = ThisComponent.Sheets(oEvent.RangeAddress.Sheet)
' Если хвост диапазона в первой колонке и одна ячейка
If (nCol=0) And (nRow = nRow_end) Then
                ' новое значение  "Отправил"?
                If (oEvent.string = "Отправил") Then
' заполняем ячейку второй колонки
oSheet.getCellByPosition(2,nRow).Value = Now
If (nCol=0) And (nRow = nRow_end) Then
                ' новое значение  "Переслал"?
                If (oEvent.string = "Переслал") Then
' заполняем ячейку второй колонки
oSheet.getCellByPosition(3,nRow).Value = Now
If (nCol=0) And (nRow = nRow_end) Then
                ' новое значение  "Переслал"?
                If (oEvent.string = "Закрыл") Then
' заполняем ячейку второй колонки
oSheet.getCellByPosition(4,nRow).Value = Now

   
End If
End If
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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