Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 158

Раздел: Basic
/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!

Подскажите пожалуйста.
У меня код, который вводит данные или удаляет на выбранную дату, находится в кнопке Cmd_Select
Как после выполнение команды закончить выбор даты и закрыть форму календаря,

Private Sub Cmd_Select_Click()
'Команда - закончить выбор даты и закрыть форму
SelectedDate = CStr(DateValue(dt_1))
Unload Me
End Sub

выполнить код по отношению к той кнопки, которой был открыт календарь? В данном примере кнопки CommandButton6_

Private Sub CommandButton6_Click()
Get_Date (Now) 'Открыть календарь
End Sub

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

Приложение:
  1.  
  2. Excel 2007


Примечание #1 (6 сентября 2009, 12:11):
Код который необходимо вставить

If CDate(TextBox_Year) <> CDate(Sheets("Отчет").Range("R1")) Then
MsgBox " Год ввода данных выбран не верно.", vbInformation, "Запрет ввода"
Exit Sub
End If

Dim i As Integer

For i = 1 To 1000
If Sheets("Отчет").Cells(i, 1).Value = CStr(DateValue(dt_1)) Then 'Поиск даты

'Удаление данных на выбранную дату, если ТextBox1 пустой

If UserForm1.TextBox1.Text = "" Then
Sheets("Отчет").Cells(i, 2).Value = ""
Sheets("Отчет").Cells(i, 3).Value = ""
Sheets("Отчет").Cells(i, 4).Value = ""
Sheets("Отчет").Cells(i, 5).Value = ""
Sheets("Отчет").Cells(i, 6).Value = ""
Sheets("Отчет").Cells(i, 7).Value = ""
Sheets("Отчет").Cells(i, 8).Value = ""
Sheets("Отчет").Cells(i, 9).Value = ""


Sheets("Отчет").Cells(i, 21).Value = Sheets("Отчет").Cells(i - 1, 21).Value ' Значения беруться из строки выше
Sheets("Отчет").Cells(i, 22).Value = Sheets("Отчет").Cells(i - 1, 22).Value ' Значения беруться из строки выше
Else

'Ввод данных на выбранную дату.

If chb_Time.Value = True Then Sheets("Отчет").Cells(i, 2).Value = Label_Hour.Caption + ":" + Label_Minute 'Ввод времени если chb_Time обозначен галочкой
If chb_Time.Value = False Then Sheets("Отчет").Cells(i, 2).Value = "" 'Удаление времени если chb_Time не обозначен галочкой
Sheets("Отчет").Cells(i, 3).Value = UserForm1.TextBox1.Text + Sheets("Отчет").Cells(i, 3).Value
Sheets("Отчет").Cells(i, 4).Value = UserForm1.TextBox2.Text + Sheets("Отчет").Cells(i, 4).Value
Sheets("Отчет").Cells(i, 5).Value = UserForm1.TextBox3.Text + Sheets("Отчет").Cells(i, 5).Value
Sheets("Отчет").Cells(i, 6).Value = UserForm1.TextBox5.Text + Sheets("Отчет").Cells(i, 6).Value
Sheets("Отчет").Cells(i, 7).Value = UserForm1.TextBox6.Text + Sheets("Отчет").Cells(i, 7).Value
Sheets("Отчет").Cells(i, 8).Value = UserForm1.TextBox7.Text + Sheets("Отчет").Cells(i, 8).Value
Sheets("Отчет").Cells(i, 9).Value = UserForm1.TextBox8.Text + Sheets("Отчет").Cells(i, 9).Value

Sheets("Отчет").Cells(i, 21).Value = Range("F10").Value
Sheets("Отчет").Cells(i, 22).Value = Range("G10").Value
End If
End If
Next

resseg Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: resseg (статус: Посетитель)
Вопрос отправлен: 6 сентября 2009, 11:54
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 35; последнее сообщение — 7 сентября 2009, 20:52; участников в обсуждении: 2.

Страницы: [« Предыдущая] [1] [2]

Егор

Егор (статус: 10-ый класс), 6 сентября 2009, 18:53 [#21]:

В общих словах опишите, что же будут делать те четыре кнопки - может, есть альтернатива, как это сделать.

Или вы лучше сразу напишете в общих словах, что должен код делать? А то, может, есть другие варианты, как это всё сделать?
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
resseg

resseg (статус: Посетитель), 6 сентября 2009, 18:59 [#22]:

В общих словах вставляются и удаляются числовые данные на выбранную дату. В некоторых кодах будут условия. Один код будет открывать лист и диапазон на выбранный месяц. Если нужна точность то она пока такова, полный код пока один, который я предоставил.
resseg

resseg (статус: Посетитель), 6 сентября 2009, 19:05 [#23]:

Я уже согласен на специфичный код для кнопки, если все так проблематично.
Егор

Егор (статус: 10-ый класс), 6 сентября 2009, 19:18 [#24]:

да нет, не проблематично нисколько
просто непонятно, что же сделать надо
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
resseg

resseg (статус: Посетитель), 6 сентября 2009, 19:28 [#25]:

Как я понимаю с точки зрения не профессионала, при создание проекта где присутствует календарь, должны выполняться любые коды где необходимо работа с датой, одним календарем. А если создавать дополнительные кнопки в календаре, или дополнительные календари то это уже перебор. Не судите строго, это лично мое суждение.
resseg

resseg (статус: Посетитель), 6 сентября 2009, 20:02 [#26]:

Дополнение

Может как то упаковать код в кнопке открытия календаря. А при открытии календаря происходит взаимодействие с кнопкой ОК и после клика по кнопке ОК происходит распаковка и срабатывание кода.
Если необходимо создавать дополнительно коды для каждой кнопке, тогда лучше создать четыре невидимой кнопки ОК с кодами. И при открытие календаря делать нужную кнопку видимой и выполнять действие. Я об этом думал, но посчитал что это не то, думал что есть варианты более эффективные, потому что календарь это уже готовый код.
Егор

Егор (статус: 10-ый класс), 6 сентября 2009, 20:52 [#27]:

Не, упаковка/распаковка - это не то. Это не в нашем случае.
А у вас точно нет "Microsoft Date and Time Picker Control", "Microsoft Month View" или "Элемент управления Календарь" при снятой галочке "selected items only"?
Если нет, то придётся использовать тот код, что есть. Никуда не деться. :)
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
resseg

resseg (статус: Посетитель), 6 сентября 2009, 20:59 [#28]:

Да нету конечно, у меня Office 2007 для дома и учебы, а там нет этого.
resseg

resseg (статус: Посетитель), 6 сентября 2009, 21:05 [#29]:

А специфичный код, что тоже не подходит?

Егор если в календаре что то надо переделывать или добавлять, тогда лучше создать четыре не видимые кнопки ОК.
Егор

Егор (статус: 10-ый класс), 6 сентября 2009, 21:43 [#30]:

Подходит, подходит...
Просто лишний он, когда готовые компоненты есть.
Ну ладно, будем работать с тем, что есть.

но уже не сегодня :)
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
resseg

resseg (статус: Посетитель), 6 сентября 2009, 21:51 [#31]:

Буду ждать сообщения.
До свидания.
Егор

Егор (статус: 10-ый класс), 7 сентября 2009, 17:44 [#32]:

Знаете, вы, наверное, правы - проще всего создать четыре невидимые кнопки "ОК", а перед показом окна делать видимой одну из них, нужную в данный момент.
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
resseg

resseg (статус: Посетитель), 7 сентября 2009, 20:38 [#33]:

Понятно. Балы надо ставить?
Егор

Егор (статус: 10-ый класс), 7 сентября 2009, 20:47 [#34]:

за что? :)
ответа-то как такового я же не дал.
:)
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
resseg

resseg (статус: Посетитель), 7 сентября 2009, 20:52 [#35]:

Ну тады лады. Будут вопросы, обращусь.

Страницы: [« Предыдущая] [1] [2]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 25 апреля 2026, 20:59
Выполнено за 0.03 сек.