Ввод дат только текущего года через userform - VBA

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, подскажите, как можно заблокировать или выводить сообщение, если на лист вводят дату не текущего года, то есть можно добавлять даты только с 01.01.2017 по 21.12.2017?

Решение задачи: «Ввод дат только текущего года через userform»

textual
Листинг программы
  1. Private Sub cmbDay_Change()
  2.     Dim i&, s$
  3.     With cmbDay
  4.         s = .Text
  5.         If s <> "" Then
  6.             i = Asc(Right(s, 1))
  7.             If i > 47 And i < 58 Then
  8.                 i = Val(s)
  9.                 If i < 32 Then .Tag = s Else .Text = .Tag
  10.             Else
  11.                 .Text = .Tag
  12.             End If
  13.         End If
  14.     End With
  15. End Sub
  16.  
  17. Private Sub cmdadd_Click()
  18.     Dim i&
  19.     i = Cells(Rows.Count, 1).End(xlUp).Row
  20.     i = i   1
  21.     With DateInput
  22.         Cells(i, 1).Value = CStr(DateSerial(.cmbYear, .cmbMonth.ListIndex   1, .cmbDay))
  23.     End With
  24. End Sub
  25.  
  26. Private Sub cmdcancel_Click()
  27.     Unload Me
  28. End Sub
  29.  
  30. Private Sub UserForm_Initialize()
  31.     Dim i&
  32.     With cmbDay
  33.         For i = 1 To 31
  34.             .AddItem i
  35.         Next i
  36.         .Text = .List(Day(Now) - 1)
  37.     End With
  38.     With cmbMonth
  39.         For i = 1 To 12
  40.             .AddItem Format(DateSerial(0, i, 1), "mmmm")
  41.         Next i
  42.         .Text = .List(Month(Now) - 1)
  43.     End With
  44.     With cmbYear
  45.         .AddItem 2017
  46.         .Text = .List(0)
  47.     End With
  48. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.769 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы