Новости:

Новая редакция правил форума: 2.4. Если вопрос или ответ содержится во вложенном файле, все-равно кратко описывайте в сообщении вопрос или суть решения. Это необходимо, чтобы тему можно было найти через поиск.

Главное меню

Выпадающий календарь как изменить условия

Автор Uralmaster, 06.02.2011, 07:14

« назад - далее »

Uralmaster

Есть очень хороший выпадающий календарь - хотелось бы его изменить:
Календарь вводит дату и время в одну ячейку а хотелось чтоб вводил дату в одну ячейку а время во 2 ячейку справа - как в примере (прилагаю файл)
Например Дата в G:11 Время H:11 - Дата в G:12 Время H:12 и тд

При этом Календарь нужно привязать к вводу только в диапазон G10:G500 ( если вдруг пользователь выбрал другой диапазон - выскакивает табличка "Выберите колонку Дата")

И еще если возможно
Как сделать ввод времени в форме календаря в виде выпадающего списка (поля и кнопки установки времени не нужны) – для времени остается одно поле с выпадающим списком
А выпадающий список - с листа «Время» в приложенном файле.

Заранее благодарен

Uralmaster

Реализовал задачу
Файл во вложении

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

Как исправить ?

GWolf

#2
Цитата: Uralmaster от 08.02.2011, 03:17
Реализовал задачу
Файл во вложении

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

Как исправить ?

В модуле листа "Лист1"

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Target.Cells.Count > 1 Then Exit Sub
   If Not Application.Intersect(Range("G8:G801"), Target) Is Nothing Then
       UserForm_Time.Show
   End If
   If Target.Cells.Count > 1 Then Exit Sub
   If Not Application.Intersect(Range("F8:F801"), Target) Is Nothing Then
       Form_SelectDate.Show
   End If
End Sub

замените на этот код:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

   If Target.Cells.Count > 1 Then Exit Sub
   
   If Not Application.Intersect(Range("G8:G801"), Target) Is Nothing Then
       UserForm_Time.Show
   End If

   If Target.Cells.Count > 1 Then Exit Sub

   If Not Application.Intersect(Range("F8:F801"), Target) Is Nothing Then

       Form_SelectDate.TextBox_Дата.Value = Format(Date, "dd.mm.yy")

     Form_SelectDate.Show
   End If
End Sub
Путей к вершине - множество. Этот один из многих!