У меня проблема с листбоксом, который расположено на рабочем листе. Вообщем я создал листбокс и маленькую кнопку на листе. Их видимость проявдяется при двойном клике на листе в колонке 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