Страницы: 1
RSS
Отображение даты при введении числа, При вводе в ячейку цифры получить дату, где введенная цифра это день (месяц и год текущие)
 
Необходимо при введении в ячейку числа в итоге получить в этой ячейке дату, где введенное число это день месяца, а месяц и год текущие.
Тоесть я ввожу 23 а получаю 23.01.19
 
А если 28 февраля ввести 31, что должно получиться?
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
нет ничего проще
Bema  в предложенном варианте получится 31 (в феврале) сейчас-то январь, сейчас получится 31.01.2019
Изменено: Ігор Гончаренко - 14.01.2019 20:01:09
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Спасибо.Но как мне сделать аналогично в своем файле
 
нет никаких ограничений - делайте любым удобным для Вас способом
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Как выставить такое условие на конкретные ячейки
сли просто поставить на ячейку формат даты, то при введении числа, например 23 дает результат 23.01.1900
 
Yustasssss, а если ввести 14/1/19 или 23/1/19?
Изменено: Bema - 14.01.2019 21:41:10
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Так суть же в том чтобы вводя 23 получать 23.01.19   а не вводить полностью 23.01.19
 
откройте файл высланный мною раньше. пишите 23
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Yustasssss написал:
при введении числа, например 23 дает результат 23.01.1900
Проверил: результат 23.01.2019
 
Цитата
Ігор Гончаренко написал: откройте файл высланный мною раньше
В Вашем да.  В моем нет. Как мне сделать так как у Вас?  Никаких формул , форматов, макросов у Вас не вижу.
 
Правый клик по ярлычку листа - Исходный текст: попадёте в модуль листа, а там и макрос увидите )
 
Подскажите, может можно такое условие применить не к целому листу а только к конкретным ячейкам?
(Сделал так как Вы написали,потом скопировал этот макрос на другой лист, все работает но во всех ячейках)
 
Можно. Надеюсь, Игорь не обидится, что я влез в его код ))
Код
Private Sub Worksheet_Change(ByVal target As Range)
  If target.Count > 1 Then Exit Sub
  If Not Intersect(target, Range("B2:B10")) Is Nothing Then
    If IsNumeric(target) And target > 0 And target <= DateSerial(Year(Now), Month(Now) + 1, 0) Then
      Application.EnableEvents = False
        target = DateSerial(Year(Now), Month(Now), target)
      Application.EnableEvents = True
    End If
  End If
End Sub
 
Цитата
Юрий М написал:
Range("B2:B10")
так работает. СПС
а пробую еще добавить ячейки  Range("B2:B10;E4:E10") так  не работает
И если повторно в ячейку вводить то дает уже не 23.01.19 а 23.01.1900
Изменено: Yustasssss - 15.01.2019 00:48:42
 
и по классике:
Алекс - Юстасу: следующий раз будете оформлять вопрос - прикладывайте к нему файл-пример, согласно правил
(никогда еще Штирлиц не был так близок к провалу из-за отсутствия гребаного файла-примера)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Yustasssss написал:
Range("B2:B10;E4:E10") так  не работает
А так будет работать: Range("B2:B10, E4:E10")
===
И обратите внимание на #16: показывайте небольшой файл-пример.
 
Всем спасибо за помощь в решении вопроса!
Раз уж все так сложно (по крайней мере для меня) давайте доведем решение до идеала.
Необходимо:
1) при введении числа в ячейки А2:А10 и  H2:H10 в итоге получить в этих ячейках дату, где введенное число это день месяца, а месяц и год текущие.
Вводим 23 а получаем 23.01.19
2) при повторном введении числа в ячейки А2:А10 и  H2:H10 тоже должен соблюдаться пункт 1)
3)должна быть возможность применения предложенного алгоритма решения на любом листе и алгоритм (в случае его применения на новом листе) должен влиять только на ячейки А2:А10 и  H2:H10
 
Цитата
Yustasssss написал:
давайте доведем решение до идеала
Доводите: используйте теперь событие Workbook_SheetChange в модуле книги - будет срабатывать на любом листе.
 
Как сделать, чтобы при повторном введкнии данных правило действовало?
Сейчас получается при первом введении , например, 23 дает результат 23.01.2019 а если в эту ячейку еще раз ввести ,например 25, то уже выдает 25.01.1900
Страницы: 1
Наверх