Страницы: 1
RSS
Выпадающий календарь для ввода дат - нужна помощь...
 
Помогите исправить ошибку...  
Мне нужно чтобы форма открывалась при кликании конкретно одной ячейки, а она открывается при кликании по любому месту на странице...  
 
Да, еще лист у меня защищен с разрешенными диапазонами:1)Выделение заблокированных ячеек, 2)выделение не заблокированных ячеек, 3)изменение объектов, 4)изменение сценариев  
 
Форма:  
Private Sub Calendar1_Click()  
With Application  
.DisplayAlerts = False 'ñèñòåìíûå ïðåäóïðåæäåíèÿ  
End With  
On Error Resume Next  
    ActiveCell = Calendar1.Value  
    ActiveCell.NumberFormat = "dd/mmmm/yyyy"  
    UserForm1.Hide  
End Sub  
     
Private Sub UserForm_Activate()  
    Me.Calendar1.Value = Date  
End Sub  
 
--------  
На Листе:  
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)  
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("B3"), Target) Is Nothing Then  
        UserForm1.Show  
    End If  
End Sub  
 
----  
Модуль:  
Sub ShowCalendar()  
With Application  
.DisplayAlerts = False 'ñèñòåìíûå ïðåäóïðåæäåíèÿ  
End With  
On Error Resume Next  
    UserForm1.Show  
End Sub
 
{quote}{login=ilham}{date=05.07.2011 06:50}{thema=Выпадающий календарь для ввода дат - нужна помощь...}{post}Мне нужно чтобы форма открывалась при кликании конкретно одной ячейки{/post}{/quote}  
Чисто конкретно при "кликании" по ячейке B3 :-)  
В модуле листа следует сделать так:  
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)  
If Not Intersect(Target, Range("B3")) Is Nothing Then  
UserForm1.Show  
Cancel = True  
End If  
end sub
 
честно говоря я тут поковырялся и у меня заработало после того как я убрал на листе  
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)  
UserForm1.Show  
End Sub
 
{quote}{login=ilham}{date=05.07.2011 07:56}{thema=}{post}честно говоря я тут поковырялся и у меня заработало после того как я убрал на листе  
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)  
UserForm1.Show  
End Sub{/post}{/quote}  
Если Вы действительно эти строки убрали, то форма вообще не должна появляться.
 
Форма благополучно вызываться из исправленной процедуры Worksheet_SelectionChange.
 
вызываться = вызывается
 
И правда :-) Я даблклик увидел, а ниже и не глянул: нет пустой строки между ними :-))
Страницы: 1
Наверх