Страницы: 1
RSS
Определить формат ячеек для даты, Автоматическое дописание окончания даты на конкретный месяц
 
Вопрос следующий, при вводе в ячейку А10 и ей подобные, можно ли так сделать, чтобы вводить под месяцем только число, а остальное дописывалось само.
К примеру ввел 19 и по формату ячеек (ДД) видно только число, а месяц 01.2018 в фоне дописывается сам, только для конкретных ячеек и для других месяцев аналогично.

В формате ячеек не уж то нельзя обратить ввод числа только для нужного месяца? Или как то сослаться на нужный месяц ...?
Изменено: TiduSan - 19.01.2018 17:13:33
 
Номер месяца можно определить например из шапки таким образом ...
Формат ячейки я поставил ММММ
Изменено: TiduSan - 19.01.2018 16:40:13
 
TiduSan, вы где потом дальше эти числа используете? и чем мешает месяц январь в каждом?
По вопросам из тем форума, личку не читаю.
 
Цитата
TiduSan написал:
Или как то сослаться на нужный месяц ...
Да легко. Пишете макрос, который за вас будет разъяснять Excel, что 01 в той ячейке, это первое января, а 01 в этой ячейке - первое декабря. И всех делов на рыбью ногу.
 
Можно макросом. В модуль листа. И Диспетчер Имен посмотрите
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("DAYS")) Is Nothing And Target.Count = 1 Then
    On Error Resume Next
    For I = 1 To Range("DAYS").Areas.Count
        If Not Intersect(Target, Range("DAYS").Areas(I)) Is Nothing Then
            iMonth = I
            Select Case I
                Case 1, 3, 5, 7, 8, 10, 12
                    eDay = 31
                Case 4, 6, 9, 11
                    eDay = 30
                Case 2
                    eDay = 28   'для високосного года исправить на 29
            End Select
            Exit For
        End If
    Next
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    If Target >= 1 And Target <= eDay Then
        Target = DateSerial(2018, iMonth, Target)
        Target.NumberFormat = "dd; @"
    Else
        MsgBox "Неверная дата!", vbCritical + vbOKOnly, "Ошибка"
        Target = Empty
        GoTo ExitSub
    End If
End If
ExitSub:
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Изменено: Sanja - 19.01.2018 20:43:11
Согласие есть продукт при полном непротивлении сторон.
Страницы: 1
Читают тему (гостей: 1)
Наверх