Событие BeforeDoubleClick для листа Excel

Программирование на Visual Basic for Applications
Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Событие BeforeDoubleClick для листа Excel

Сообщение Calvin » 23.09.2008 (Вт) 12:27

Здраствуйте, уважаемые.
У меня проблема с листбоксом, который расположено на рабочем листе. Вообщем я создал листбокс и маленькую кнопку на листе. Их видимость проявдяется при двойном клике на листе в колонке 1. Вообщем в файле у меня существует еще один лист с таблицей контрагентов и договоров по ним. При двойном щелчке на ячейке в колонке 1 появляется листбокс, в который заполняется перечень всех контрагентов, а также появляется маленькая кнопка справа (вплотную), которая нужна для того, чтобы в случае когда пользователь не захочет выбирать что-либо из списка, то этот листбокс скрывается вместе с этой кнопкой.
Проблема возникает через раз - при двойном клике...т.е. листбокс как бы блокируется через раз, а кнопка нет. Самое главное, что если я скролом прокручиваю лист (когда листбокс виден), то листбокс раздупляется. Также он раздупляется, когда при видимом листбоксе я включаю а потом выключаю кнопку "режим конструктора". В чем проблема?

Код: Выделить всё
Private Sub CommandButton1_Click()
If ListBox1.Visible = True Then
ListBox1.Visible = False
CommandButton1.Visible = False
ActiveCell.Select
Cancel = True
End
End If
End Sub


Private Sub Listbox1_Click()
ListBox1.Visible = False
CommandButton1.Visible = False
ActiveCell.Value = ListBox1.List(ListBox1.ListIndex)
ActiveCell.Select
End Sub

Private Sub worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error Resume Next
    ListBox1.Clear
            If Target.Column = 1 Then
             i = 0
             For i = 6 To Sheets("договора").Cells(50000, 1).End(xlUp).Row
              ListBox1.AddItem Sheets("договора").Cells(i, 1)
             Next
            End If

        CommandButton1.Visible = True
        CommandButton1.Width = 12.75
        CommandButton1.Top = Target.Top + 1
        CommandButton1.Height = Target.Height
        CommandButton1.Left = Target.Left + Target.Width + 1
   
           If ListBox1.Visible = True Then
           ListBox1.Visible = False
           CommandButton1.Visible = False
           ActiveCell.Select
           Cancel = True
           End
           End If

        ListBox1.Width = ActiveCell.Width
        ListBox1.Top = ActiveCell.Top + 1
        ListBox1.Left = ActiveCell.Left
        ListBox1.Height = 200
        ListBox1.AddItem ""
        ListBox1.Visible = True
        ActiveCell.Select

Cancel = True

End Sub
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 74

    TopList