Здравствуйте ! На листе есть колонка, в ячейки которой значения нужно не вводить руками, а выбирать из списка. Можно ли сделать так, что пр выборе любой ячейки в этой колонке вместо нее появлялся ComboBox с заранее поготовленным списком. Пользователь выбирает нужное и в ячейке появляется соотв. текст. При уходе в другую колонку комбобокс попадал, при выборе другой ячейки в этой же колонке комбобокс "переезжал" бы в нее. Как-то так
И еще: а если подобных колонок несколько, обязательно ли для каждой свой комбобокс или можно обойтись одним ?
Спасибо за помощь.
Здравствуйте ! На листе есть колонка, в ячейки которой значения нужно не вводить руками, а выбирать из списка. Можно ли сделать так, что пр выборе любой ячейки в этой колонке вместо нее появлялся ComboBox с заранее поготовленным списком. Пользователь выбирает нужное и в ячейке появляется соотв. текст. При уходе в другую колонку комбобокс попадал, при выборе другой ячейки в этой же колонке комбобокс "переезжал" бы в нее. Как-то так
И еще: а если подобных колонок несколько, обязательно ли для каждой свой комбобокс или можно обойтись одним ?
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Not Intersect(Target, Range("D:D")) Is Nothing Then UserForm1.Show End If
[/vba] а в самой форме [vba]
Код
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 27 Then Unload Me If KeyCode = 13 Then ActiveCell.Value = Me.ComboBox1.Value Unload Me End If End Sub
[/vba]для закрытия окна клавишей Ентер или Еск
SGerman, можно использовать формы [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Not Intersect(Target, Range("D:D")) Is Nothing Then UserForm1.Show End If
[/vba] а в самой форме [vba]
Код
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 27 Then Unload Me If KeyCode = 13 Then ActiveCell.Value = Me.ComboBox1.Value Unload Me End If End Sub
[/vba]для закрытия окна клавишей Ентер или ЕскKamikadze_N
Из Вашего примера я понял, что форма должна появляться рядом я выбранной ячейкой, но она точно не впишется в саму ячейку, т.е. надо в Activate придать ей размеры и позицию на экране кодом ?
Но идея понятна, если не получится "штатными" средствами самого Excel, то попытаюсь сделать что-то подобное
Спасибо
Из Вашего примера я понял, что форма должна появляться рядом я выбранной ячейкой, но она точно не впишется в саму ячейку, т.е. надо в Activate придать ей размеры и позицию на экране кодом ?
Но идея понятна, если не получится "штатными" средствами самого Excel, то попытаюсь сделать что-то подобное
SGerman, Да форма будет появляться по центру экрана, пример выше в ответе. И Использовать в таком случае Проверку данных и список не подходит?
SGerman, Да форма будет появляться по центру экрана, пример выше в ответе. И Использовать в таком случае Проверку данных и список не подходит?Kamikadze_N
То, что нужно, но вот "пипочку" вписать в саму ячейку можно (по правому краю) ?
И, самое главное, я не понял как Вы это сделали. Кода в файле нет, очевидно, что все средствами самого Excel. Но КАК ? Я пробовал "Создать список" и т.д., но это для ячейки или диапазона ячеек, да все вышло совсем не так красиво, как у Вас :)
Спасибо
>Kamikadze_N
То, что нужно, но вот "пипочку" вписать в саму ячейку можно (по правому краю) ?
И, самое главное, я не понял как Вы это сделали. Кода в файле нет, очевидно, что все средствами самого Excel. Но КАК ? Я пробовал "Создать список" и т.д., но это для ячейки или диапазона ячеек, да все вышло совсем не так красиво, как у Вас :)
Спасибо за ссылку и особенно за файл, который я там нашел. Практически это решение моей проблемы. Я искал, конечно, но видимо не то указал в поиске
>RAN
Спасибо за ссылку и особенно за файл, который я там нашел. Практически это решение моей проблемы. Я искал, конечно, но видимо не то указал в поиске SGerman
Мудрость приходит со старостью. Но иногда старость приходит одна :)