<
  • Главная
Статьи

Випадає календар для excel

Ось так, буде виглядати випадає календар для Excel, якщо дочитати до кінця. Ось так, буде виглядати випадає календар для Excel, якщо дочитати до кінця

Для тих, у кого немає часу читати чи ні бажання розбиратися, готовий Excel файл з Лист1, на якому, в будь-якому осередку, при подвійному натисканні на ліву кнопку миші, з'являється Календар.

Для тих, хто бажає зробити все сам, наступне оповідання.

Створимо Модуль і оголосимо змінні (хто не знає - звертаємося до Введенню. ) Public Str As Long Public Stlb As Long Створимо Модуль і оголосимо змінні (хто не знає - звертаємося до   Введенню

Створимо Форму і назвемо її Form_SelectDate.

Форма складається: - 42 Написів Label - 1-го Поля TextBox - 1-го Поля ComboBox - і 1-го лічильника SpinButton * в усі 42 Написи пишемо дві події, згідно з ім'ям, а називаємо ми їх: Cell_1_1, Cell_1_2 .. Cell_2_1, Cell_2_2 .... Cell_6_7. Форма складається: - 42 Написів Label - 1-го Поля TextBox - 1-го Поля ComboBox - і 1-го лічильника SpinButton * в усі 42 Написи пишемо дві події, згідно з ім'ям, а називаємо ми їх: Cell_1_1, Cell_1_2 Private Sub Cell_1_1_Click () Set_Дата 1, 1 End Sub і Private Sub Cell_1_1_DblClick (ByVal Cancel As MSForms.ReturnBoolean) 'Команда - закінчити вибір дати і закрити форму Set_Дата 1, 1 TB = CStr (DateValue (dt_1)) Unload Me End Sub т . Е. * Поле ComboBox назвемо ComboBox_Month і розмістимо наступний код: Private Sub ComboBox_Month_Change () 'Команда - встановити дату, обрану в календарі (зміна місяць) MyYear = Year (dt_1) MyMonth = CInt (ComboBox_Month.ListIndex + 1) MyDay = Day (dt_1) MyCountDay = Day (DateSerial (MyYear, MyMonth + 1, 1) - 1) If MyDay> MyCountDay Then MyDay = MyCountDay dt_1 = DateSerial (MyYear, MyMonth, MyDay) 'Установка TextBox_Year TextBox_Year.Value = Format (dt_1, "yyyy") 'Установка ComboBox_Month і календаря Set_M? nth (dt_1) End Sub і * SpinButton назвемо SpinButton_Year і розмістимо наступний код: Private Sub SpinButton_Year_SpinDown ()' Команда - встановити дату, обрану в календарі (зміна року -1) MyYear = Year (dt_1) - 1 MyMonth = Month (dt_1) MyDay = Day (dt_1) MyCountDay = Day (DateSerial (MyYear, MyMonth + 1, 1) - 1) If MyDay> MyCountDay Then MyDay = MyCountDay dt_1 = DateSerial (MyYear, MyMonth, MyDay) 'Установка TextBox_Year TextBox_Year.Value = Format (dt_1, "yyyy")' Установка ComboBox_Month і календаря Set_M? Nth (dt_1) End Sub Private Sub SpinButton_Year_SpinUp () 'Команда - встановити дату, обрану в календарі (зміна року +1) MyYear = Year (dt_1) + 1 MyMonth = Month (dt_1) MyDay = Day (dt_1) MyCountDay = Day (DateSerial (MyYear, MyMonth + 1 , 1) - 1) If MyDay> MyCountDay Then MyDay = MyCountDay dt_1 = DateSerial (MyYear, MyMonth, MyDay) 'Установка TextBox_Year TextBox_Year.Value = Format (dt_1, "yyyy")' Установка ComboBox_Month і календаря Set_M? nth (dt_1) End Sub тобто * В Формі UserForm: Private Sub UserForm_Initialize () dt_1 = Now 'Заповнення списку ComboBox_Month ComboBox_Month.AddItem "Январь" ComboBox_Month.AddItem "Февраль" ComboBox_Month.AddItem "Март" ComboBox_Month.AddItem "Апрель" ComboBox_Month.AddItem "Май" ComboBox_Month.AddItem "червень" ComboBox_Month.AddItem "Липень" ComboBox_Month.AddItem "Август" ComboBox_Month.AddItem "вересень" ComboBox_Month.AddItem "Жовтень" ComboBox_Month.AddItem «листопад» ComboBox_Month.AddItem "грудень" 'Установка TextBox_Year TextBox_Year.Value = Format (dt_1, "yyyy") 'Установка ComboBox_Month і календаря Set_M? nth (dt_1) End Sub Private Sub UserForm_QueryClose (Cancel As Integer, CloseMode As Integer) If dt_1 0 And TB 0 Then Cells (Str, Stlb) .Value = TB Else Cells (Str , Stlb) .Value = "" End If Cells (Str, Stlb) .Activate End Sub тобто * Залишилося розмістити в (General) наступний код: Private Sub Set_Month (MyDate As Date) 'Установка ComboBox_Month і календаря MyYear = Year (MyDate) MyMonth = Month (MyDate) MyDay = Day (MyDate) ComboBox_Month.ListIndex = MyMonth - 1 MyWeekDay = Weekday (DateSerial (MyYear, MyMonth, 1), vbMonday) MyCountDay = Day (DateSerial (MyYear, MyMonth + 1, 1) - 1) l_start = 2 - MyWeekDay For i = 1 To 6 For j = 1 To 7 If l_start> = 1 And l_start ось і все, хто дочитав молодець .... PS Якщо використовувати прикладений файл Календар , То для новостворених Листів, пропишіть подія, наприклад: Private Sub Worksheet_BeforeDoubleClick (ByVal Target As Range, Cancel As Boolean) Str = ActiveCell.Row Stlb = ActiveCell.Column Form_SelectDate.Show vbModeless Cells (1,1) .Activate End Sub

Value = Format (dt_1, "yyyy") 'Установка ComboBox_Month і календаря Set_M?
Value = Format (dt_1, "yyyy")' Установка ComboBox_Month і календаря Set_M?
Value = Format (dt_1, "yyyy")' Установка ComboBox_Month і календаря Set_M?
Value = Format (dt_1, "yyyy") 'Установка ComboBox_Month і календаря Set_M?


Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью