Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2011, 07:13   #1
civic
 
Регистрация: 18.04.2011
Сообщений: 8
По умолчанию Вызвать форму даты кликом по другой ячейке

Помогите, пожалуйста, тут немного.
Кликая по одной ячейке удается вызвать окно, что и где нужно изменить, что бы работало?

Текст для ячейки C4

Модуль 1

Private Sub Calendar1_Click()
ActiveCell = Calendar1.Value

End Sub

Private Sub UserForm_Activate1()
Calendar1.Value = Date
End Sub

Модуль 2

Sub ShowCalendar()
UserForm1.Show
End Sub

Текст в исходном коде листа

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Application.Intersect(Range("C4"), Target) Is Nothing Then
UserForm1.Show
End If
End Sub

Результат : В C4 клик= окно с выбором даты

А чтобы еще при этом же кликая на E4 отображалось такое же окно , как сделать?
Вложения
Тип файла: rar Desktop.rar (347 байт, 12 просмотров)

Последний раз редактировалось civic; 05.05.2011 в 07:18.
civic вне форума Ответить с цитированием
Старый 05.05.2011, 08:20   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Range("C4, E4"), Target) Is Nothing Then
        UserForm1.Show
    End If
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 05.05.2011, 08:39   #3
civic
 
Регистрация: 18.04.2011
Сообщений: 8
По умолчанию

EducatedFool! Благодарен!
civic вне форума Ответить с цитированием
Старый 05.05.2011, 09:14   #4
civic
 
Регистрация: 18.04.2011
Сообщений: 8
По умолчанию

а таймер для задания времени в эксель в VBA-проект как добавить через Toolbox, т.е. как он может называться?
civic вне форума Ответить с цитированием
Старый 05.05.2011, 09:52   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

таймер никак не добавить - его надо реализовывать программно
(компонент таймер есть в VB - в VBA его, увы, нет)
EducatedFool вне форума Ответить с цитированием
Старый 05.05.2011, 10:45   #6
civic
 
Регистрация: 18.04.2011
Сообщений: 8
По умолчанию

понятно, спасибо.
вот еще такой вопрос
есть одна надстройка в эксель - Historian client. Она и эксель понимает некоторую функцию, которая записывается как
wwQuery("название сервера", "SET QUOTED_IDENTIFIER OFF SELECT * FROM OPENQUERY(INSQL, " + """" + "SELECT " + "[" + Worksheets("Лист3").Cells(5, 4) + "]" + " FROM WideHistory WHERE wwRetrievalMode = 'delta' AND wwVersion = 'Latest' AND DateTime >= '20110503 13:45:29.000' AND DateTime <= '20110403 13:50:29.000' "")")

возможно я и не по адресу, но как ее нужно изменить, чтобы при вызове
Worksheets("название листа").Cells(9, 6) = wwQuery("название сервера", "SET QUOTED_IDENTIFIER OFF SELECT * FROM OPENQUERY(INSQL, " + """" + "SELECT " + "[" + Worksheets("Лист3").Cells(5, 4) + "]" + " FROM WideHistory WHERE wwRetrievalMode = 'delta' AND wwVersion = 'Latest' AND DateTime >= '20110503 13:45:29.000' AND DateTime <= '20110403 13:50:29.000' "")")

рядом с возвращенным значением выделенного выражения были дата и время его из бд.

То есть среди "SELECT " + "[" + Worksheets("Лист3").Cells(5, 4) + "]" куда и как нужно вставить DateTime так, чтобы сначала отбражалось значение а потом дата?

Последний раз редактировалось civic; 05.05.2011 в 10:48.
civic вне форума Ответить с цитированием
Старый 05.05.2011, 10:58   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Я думаю, тут нужно код wwQuery() смотреть - есть ли такая возможность. Или написать функцию wwQueryDateTime().
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 05.05.2011, 11:08   #8
civic
 
Регистрация: 18.04.2011
Сообщений: 8
По умолчанию

к сожалению лист с кодом wwquery в VBA запаролен...
civic вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как из одного Unit вызвать форму другого Unit'a? alexusankov Общие вопросы Delphi 4 10.01.2011 10:54
Вызвать форму DimOn4Ik Общие вопросы Delphi 3 27.03.2010 15:13
Автоматизация заполнения даты и зависимость ячейки времени к ячейке даты. Каравай Microsoft Office Excel 14 11.03.2010 18:11
Как вызвать одну форму из другой? JamS007 Общие вопросы C/C++ 10 21.11.2008 19:33