Страницы: 1
RSS
Указывать дату, в зависимости от времени печати документа
 
Здравствуйте, подскажите, как сделать, чтобы дата прописывалась, в зависимости от времени печати? Например я печатаю документ 23.02.2020  в  23:00, то дата (=сегодня()) будет 23.02.2020, а мне нужно, чтобы дата была 24.02.2020. Но если я печатаю документ 24.02.2020 в 00:00, то дата должна оставаться 24.02.2020.
То есть мне нужно чтобы в зависимости от времени распечатывания документа (с 20:00 - до 00:00) указывалась дата (=сегодня()+1), а если печать документа (с 0:00 до 08:00) указывалась дата (=сегодня()).  То есть в любом случае мне нужно получить 24.02.2020.
Изменено: глория - 25.02.2020 08:11:32
 
И опять пропущено главное. Только Вы знаете где эта дата. А в целом- макрос в несколько строк.
По вопросам из тем форума, личку не читаю.
 
Здесь макрос и не нужен (раз используется =сегодня()+1).
 
Цитата
Alec Perle написал:
Здесь макрос и не нужен
все зависит от того нужно  ли это видеть на экране тоже или только на печати.
По вопросам из тем форума, личку не читаю.
 
Цитата
глория написал:
как сделать, чтобы дата прописывалась, в зависимости от времени печати?
Здравствуйте!
Как-то так:
Код
Sub Дата()
    Dim dДата As Date
    If Time > #8:00:00 PM# And Time < #11:59:59 PM# Then
       dДата = Format(Now + 1, "DD.MM.YYYY")
    Else
       dДата = Format(Now, "DD.MM.YYYY")
    End If
    MsgBox dДата, vbInformation
End Sub
 
А нельзя просто прописать формулу типа "ЕСЛИ текущее время от 20-00 до 23-59, то Сегодня()+1, в противном случае Сегодня()" в любую ячейку, чтобы не заморачиваться с макросами. Не могу сама такую прописать, не хватает знаний. Сама смогла придумать только две кнопки на листе: "текущая (сегодня()" и "след. дата (сегодня()+1", которые при нажатии заполняют мне одну и ту же ячейку. Но это не удобно, хотелось бы автоматизировать. Загрузить книгу не могу, большой размер. Адрес ячейки : Лист1 В5
Изменено: глория - 25.02.2020 10:12:47
 
Цитата
глория написал:
А нельзя просто прописать формулу типа "ЕСЛИ текущее время от 20-00 до 23-59, то Сегодня()+1
Можно
Код
=ЕСЛИ(ЧАС(ТДАТА())>20;ТДАТА()+1;ТДАТА())

формат ячейки сделайте "Дата"
 
Спасибо ОГРОМНОЕ! Вы мне очень помогли!
 
Тогда без условий:
Код
=ТДАТА()+ВРЕМЯ(4;0;0)

 
Alec Perle, тоже работает, спасибо!
 
Здравствуйте, в прошлый раз я не все условия учла и абра кадабра получилась 8-0 :

Нужно заполнить ячейку С7 (лист1) датой по условиям, при массовой печати с автозаполнением (листа1) из таблицы (лист2) Книга2.xlsm (36.89 КБ)      :
1) ЕСЛИ (ЧАС(ТДАТА()) >20  и  (лист2) f2-f28 > 20:00, то СЕГОДНЯ()
2) ЕСЛИ (ЧАС(ТДАТА()) >0    и  (лист2) f2-f28 > 20:00, то СЕГОДНЯ()-1
3) ЕСЛИ (ЧАС(ТДАТА()) >0    и  (лист2) f2-f28 > = 00:00, то СЕГОДНЯ()
4) ЕСЛИ (ЧАС(ТДАТА()) >20  и  (лист2) f2-f28 > = 00:00, то СЕГОДНЯ()+1

Возможно это все уместить в одной формуле, для одной ячейки?
Например рабочая смена с 20:00 27.02.20 до 08:00 28.02.20.

По таблице лист2:
1 маршрут Фомин должен начать грузиться в 22:00 27.02.20
Если документы на него распечатать вечером 27.02.20, то должна указываться дата 27.02.20 (сегодня())
А если печать ночью, после 0:00, то тоже должна быть дата 27.02.20, но это уже будет (сегодня()-1)

2 маршрут Безъязыков должен начать грузиться в 03:00 28.02.20
Если печатать его вечером 27.02.20, то должна быть дата 28.02.20 (сегодня()+1)
А если печатать ночью, после 0:00, то тоже должна быть дата 28.02.20, но это уже будет (сегодня())
И все это в одной ячейке листа1 С7

Так как печать массовая, то все даты должны подбираться автоматически.
Изменено: глория - 27.02.2020 21:32:33
 
Если я правильно понял...
Код
=ЕСЛИ(И((Лист2!F2-Лист2!F28)>ВРЕМЗНАЧ("20:00");ЧАС(ТДАТА())<=20);СЕГОДНЯ()-1;ЕСЛИ(И((Лист2!F2-Лист2!F28)<=ВРЕМЗНАЧ("20:00");ЧАС(ТДАТА())>20);СЕГОДНЯ()+1;СЕГОДНЯ()))
 
Не работает, при печати любого времени дает одну и ту же дату  :( , а точнее сегодня()-1
Изменено: глория - 27.02.2020 21:32:52
 
глория, если никто формулу не предложит (не представляю, как формула будет определять, какой маршрут и водитель в данный момент выводятся в документе на печать) вставьте в пример макрос, на который ссылается Ваша кнопка Печать АКПР...
Он в Вашей книге по пути: 'C:\Users\User\Downloads\собираю на работу ТЕМПЕРАТУРНИКИ\САМЫЕ НОВЫЕ\Температурники ночные.xlsm'!Опросник
Я думаю, дату в ячейку С7 необходимо формировать вместе с формированием документа на печать, а не в виде статичной формулы в ячейке.
 
Код
=СЕГОДНЯ()+ОКРУГЛ((ЧАС(ТДАТА())-ЧАС(F2))/24;0)
Формулу можно вставить в ячейку L2 и растянуть вниз
 
Не поняла, в таблицу добавить столбец с этой формулой? А из него уже заполнять С7 на 1 листе? Или как? И почему L2?

Цитата
aequit написал: вставьте в пример макрос, на который ссылается Ваша кнопка Печать АКПР...
Скинуть полный документ не могу, много весит, а в этом много формул не хватает. Макрос на кнопку печать:
Скрытый текст
В настоящей книге ячейка J2 (лист1)   перелистывает номера маршрутов (лист2 столбец1), а из сторок заполняются данные на листе1 и выводится на печать. Не представляю как тут можно еще и выбор даты сделать на С7.
Книга с заполнением 1 листа (через ВПР)   Книга2.xlsm (37 КБ)  
Изменено: глория - 28.02.2020 13:09:05
 
Цитата
глория написал:
Скинуть полный документ не могу, много весит, а в этом много формул не хватает.
Скиньте первый лист с формулами, можно удалить остальные листы. Лист2 с исходными данными в примере уже есть, он не нужен. Заархивируйте, если много весит или в облако положите и сюда ссылку.
 
Проблема в том, что форма на листе1 - картинка в настоящей книге, и именно она много весит. Но как выглядит форма вы видели. Я удаляю картинки, останутся только заполненные ячейки. И ячейка с датой теперь В5.   12.xlsm (33.04 КБ)  
Изменено: глория - 28.02.2020 13:39:46
 
L7 был как пример дополнительного столбца на листе Лист2, чтобы растянуть и увидеть, как в зависимости от времени меняется и дата.
Во вновь выложенном файле у Вас в ячейку Лист1!E8 подтянуто время погрузки, поэтому в формулу можно подставить эту ячейку, т.е. в ячейку Лист1!C7
Код
=СЕГОДНЯ()+ОКРУГЛ((ЧАС(ТДАТА())-ЧАС(E8))/24;0)
PS. Пока писал, Вы выложили новый файл, но суть та же - в ячейку Лист1!B5
Код
=СЕГОДНЯ()+ОКРУГЛ((ЧАС(ТДАТА())-ЧАС(B6))/24;0)
Изменено: Alec Perle - 28.02.2020 13:40:01
 
Я поняла, как это сделать!!!!! Помогите с помощью регулярки сделать столбец, который будет вытаскивать из столбца F дату.
Цитата
Alec Perle написал:
Во вновь выложенном файле у Вас в ячейку Лист1!E8 подтянуто время погрузки, поэтому в формулу можно подставить эту ячейку, т.е. в ячейку Лист1!C7Код ? 1=СЕГОДНЯ()+ОКРУГЛ((ЧАС(ТДАТА())-ЧАС(E8))/24;0)
Вы ГЕНИЙ ! Работает !!! Ура-ура! А еще мне тут в голову мысль пришла, что дату можно было регуляркой выдергивать из столбца F на листе2, как на данный момент выдергивается время погрузки в ячейку G  :D  Но не факт, что график отгрузки всегда будет приходить в таком виде, бывает и без даты...
Всем огромное спасибо! Завтра на работе протестирую
 
Цитата
глория написал:
А еще мне тут в голову мысль пришла, что дату можно было регуляркой выдергивать из столбца F на листе2, как на данный момент выдергивается время погрузки в ячейку G
Можно и без регулярки: поместите в ячейку В5
Код
=ВПР(J2;Таблица1;6;0)
 
Цитата
aequit написал:
Можно и без регулярки: поместите в ячейку В5 Код ? 1=ВПР(J2;Таблица1;6;0)
Да, но в 6 столбце есть еще и время, а оно мне в В5 не нужно
 
Вы меня сейчас убьете, но у меня новая проблема :cry: с датой.

Предположим рабочая смена 28.02.2020  20:00 - 29.02.2020  08:00

И не зависимо от того какого числа грузятся маршруты  и во сколько я их распечатаю (ночью или вечером)  в ячейке G54 (лист1)  должна быть дата начала рабочей смены (в данном случае 28.02.20).  12.xlsm (36.12 КБ)  
Изменено: глория - 28.02.2020 14:37:43
 
Цитата
глория написал:
Да, но в 6 столбце есть еще и время, а оно мне в В5 не нужно
А Вы попробовали? В Вашем последнем файле отработал правильно - потому что в данной ячейке установлен формат "Дата".
 
Цитата
aequit написал:
А Вы попробовали? В Вашем последнем файле отработал правильно - потому что в данной ячейке установлен формат "Дата".
Получается, что и время можно так же?
Нет, время пишется с датой
Изменено: глория - 28.02.2020 14:48:44
 
Цитата
глория написал:
Получается, что и время можно так же?
В этой же ячейке, с той же формулой, делаете формат (в разделе "все форматы") ч:мм
 
Вы меня сейчас убьете, но у меня новая проблема с датой.

Предположим рабочая смена 28.02.2020  20:00 - 29.02.2020  08:00

И не зависимо от того какого числа грузятся маршруты  и во сколько я их распечатаю (ночью или вечером)  в ячейке G54 (лист1)  должна быть дата начала рабочей смены (в данном случае 28.02.20).  12.xlsm (36.12 КБ)  
 
Все, уже не надо! Решила сама. =ТДАТА()-ВРЕМЯ(8;0;0)
 
Off
Цитата

глория написал:
Все, уже не надо
Убивать?..
 
:) И убивать тоже. Вы просто все супер УМЫ !!! Что бы я без вас делала. Спасибо за участие! Книга полностью готова к работе
Страницы: 1
Наверх