Данные -> проверка -> список. Как сделать поиск в спис

Программирование на Visual Basic for Applications
Kolan
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 06.09.2007 (Чт) 11:31

Данные -> проверка -> список. Как сделать поиск в спис

Сообщение Kolan » 06.09.2007 (Чт) 11:35

Здравствуйте, если воспользоваться пунктом меню:
Данные -> проверка -> список

то для ячеек можно задать выпадающий список из которого удобно выбирать значения.
Но в этом списке не работает поиск(те если у меня список 1 2 3 4 и я нажму 3, то ничего не произойдет, а хотелось бы перейти к строке 3).

Вопрос: Как добавить такой поиск? Или как по другому получить сабж(например создавать ComboBox'ы).

?

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 06.09.2007 (Чт) 12:06

Ты о чем???? 0_o
label:
cli
jmp label

Kolan
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 06.09.2007 (Чт) 11:31

Сообщение Kolan » 06.09.2007 (Чт) 12:18

Ты о чем???? 0_o


Добавляю проверку данных для ячеек. Примерно так:
Код: Выделить всё
With Selection.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlSrcRange, Formula1:=ValueString
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = False
            .ShowError = True
           
        End With


Для каждой ячейки из Selection появляется возможность выбирать значения из выпадающего списка.

Но в этом списке нет поиска.

То есть что я хочу:
Допустим список:
12
23
34
45
56
66
77

Я могу выбрать мышкой любой элемент. А если наберу на клавиатуре "3", например, то попаду на строку 34. То есть поиск как бы.

В ComboBox такое работает, если задать ListFillRange например... Но как замутить сабж с комбобоксами незнаю и близко, так как в VB знаком полохо...

Kolan
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 06.09.2007 (Чт) 11:31

Сообщение Kolan » 06.09.2007 (Чт) 13:04

Начальству оказалось достаточно этого:
Код: Выделить всё
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If (Target.Count = 1) And (Target.Column = 1) Then
    ComboBox1.Visible = True
    ComboBox1.Top = Target.Top
    ComboBox1.Left = Target.Left
    ComboBox1.Width = Target.Width
    ComboBox1.Height = Target.Height
    ComboBox1.LinkedCell = Target.Address
    ComboBox1.ListFillRange = "Ëèñò2!A1:A4"
  Else
    ComboBox1.Visible = False
  End If
End Sub

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 06.09.2007 (Чт) 14:41

Это повидимому VBA. Переношу.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в VBA

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

Сейчас этот форум просматривают: Yandex-бот и гости: 19

    TopList