подключить ActiveX, например Календарь

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Аватара пользователя
Aent
Сообщения: 1108
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

15 июл 2008, 17:48

Gerek,
перенесите код и форму из надстройки в рабочую книгу ...
и будет вам счастье ;)
Андрей Энтелис,
aentelis.livejournal.com
Аватара пользователя
VictorM
Сообщения: 787
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

15 июл 2008, 18:08

чтобы он выпадал в любой ячейке определенного столбца без использования надстроек?
вся прелесть этого календаря в том, что это не надстройка, а обыкновенная UserForm. И, соответственно, отпадают вопросы с подключением и т.д.
А вот "выпадал в любой ячейке определенного столбца" - уточните. При наступлении какого события это "выпадание" должно произойти.
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
Gerek
Сообщения: 20
Зарегистрирован: 02 июл 2008, 11:30

15 июл 2008, 18:15

VictorM писал(а):вся прелесть этого календаря в том, что это не надстройка, а обыкновенная UserForm. И, соответственно, отпадают вопросы с подключением и т.д.
А вот "выпадал в любой ячейке определенного столбца" - уточните. При наступлении какого события это "выпадание" должно произойти.

Хотелось бы, чтобы календарь появлялся при нажатии на ячейку в одном из столбцов.
Аватара пользователя
VictorM
Сообщения: 787
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

15 июл 2008, 20:51

Хотелось бы, чтобы календарь появлялся при нажатии на ячейку в одном из столбцов.
определимся:
1. При активации ячейки в столбце (определенном) появляется календарь.
2. После выбора значения в календаре, это значение попадает в активную ячейку.
так?
Посмотрите вложение. Основа - немного переделанный по себя календарь Avsha. Активируете яч. в столбце D, щелчком по дате на календаре выбираете нужное Вам значение, оно попадает в активную ячейку. Вообщем - разберетесь.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
Gerek
Сообщения: 20
Зарегистрирован: 02 июл 2008, 11:30

16 июл 2008, 10:39

VictorM писал(а):определимся:
1. При активации ячейки в столбце (определенном) появляется календарь.
2. После выбора значения в календаре, это значение попадает в активную ячейку.
так?
Посмотрите вложение. Основа - немного переделанный по себя календарь Avsha. Активируете яч. в столбце D, щелчком по дате на календаре выбираете нужное Вам значение, оно попадает в активную ячейку. Вообщем - разберетесь.

VictorM еще раз огромное Вам спасибо! Подскажите, пожалуйста, возможно ли перенастроить этот замечательный календари так, чтобы он появлялся не просто при выборе ячейки, а при двойном щелчке на ней.
Аватара пользователя
VictorM
Сообщения: 787
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

16 июл 2008, 11:11

чтобы он появлялся не просто при выборе ячейки, а при двойном щелчке на ней.
да, можно. Замените код

Код: Выделить всё

Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [D :D ]) Is Nothing Then Календарь.Show
End Sub
на

Код: Выделить всё

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, [D :D ]) Is Nothing Then Календарь.Show
End Sub
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
Gerek
Сообщения: 20
Зарегистрирован: 02 июл 2008, 11:30

16 июл 2008, 11:20

Еще раз спасибо!
Avsha
Сообщения: 664
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

16 июл 2008, 12:45

чтобы после двойного щелчка курсор не заходил в ячейку, можете использовать
Cancel = True

Код: Выделить всё

 
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

...
 
Cancel = True
End Sub
Аватара пользователя
VictorM
Сообщения: 787
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

16 июл 2008, 12:51

Avsha, честно, не понял то, что Вы предложили.
Попробовал добавить Вашу строку - ничего не изменилось.
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
Avsha
Сообщения: 664
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

16 июл 2008, 21:11

двойной щелчок по ячейке - это равносильно нажатию F2 - ячейка берется на редактирование - курсор готов ввести данные в ячейке.

если поставите Cancel = True - ячейка не возьмется на редактирование.

а вот что написано в справке...
Cancel Optional. False when the event occurs. If the event procedure sets this argument to True, the default double-click action isn't performed when the procedure is finished
Ответить