Вопрос "Выбрать из списка"...
Если нажать правой кнопкой мыши на ячейку, то можно выбрать меню "Выбрать из списка"... Как это меню запустить из VBA?
Я пробовал записать такой макрос, но, к сожалению, ничего у меня не вышло. Пока покопаю свойства Excel'я, но. боюсь, что тут нужно применение API
Я пробовал записать такой макрос, но, к сожалению, ничего у меня не вышло. Пока покопаю свойства Excel'я, но. боюсь, что тут нужно применение API
Есть что-то наподобие выбрать из списка, это проверка, но в ней много ненужного. Например, она не сортирует полученный список; нельзя добавить список с другого листа; не исключает пустые строки; не определяет одинаковые значения...
Есть что-то наподобие выбрать из списка, это проверка, но в ней много ненужного. Например, она не сортирует полученный список; нельзя добавить список с другого листа; не исключает пустые строки; не определяет одинаковые значения...
ShortcutMenus(xlWorksheetCell).MenuItems.Add _
Caption:="ПоМоемуВелению", OnAction:="МойМакрос"
После щелка правой на любой яч. появится контекстное меню с новой строкой - "ПоМоемуВелению", если пожелаем можем запустить
"МойМакрос"
Успехов dedtolya
Есть что-то наподобие выбрать из списка, это проверка, но в ней много ненужного. Например, она не сортирует полученный список; нельзя добавить список с другого листа; не исключает пустые строки; не определяет одинаковые значения...
Но, безусловно, это можно записать макрос, повторяющий действия по созданию списка в ячейке, и разобраться как это запрограммировать в VBA.
ShortcutMenus(xlWorksheetCell).MenuItems.Add _
Caption:="ПоМоемуВелению", OnAction:="МойМакрос"
После щелка правой на любой яч. появится контекстное меню с новой строкой - "ПоМоемуВелению", если пожелаем можем запустить
"МойМакрос"
Успехов dedtolya
А если не нажимать правую кнопку мыши, а просто наводить на ячейку. Как сделать, чтобы появлялся список?
А если не нажимать правую кнопку мыши, а просто наводить на ячейку. Как сделать, чтобы появлялся список?
Yfcrkjmrj я знаю, такой возможности в Excel'е нет, в VBA, наверное, тоже.
Если не секрет, то зачем это нужно? для красоты?
Yfcrkjmrj я знаю, такой возможности в Excel'е нет, в VBA, наверное, тоже.
Если не секрет, то зачем это нужно? для красоты?
Давайте сначала определимся, что ж нам хочется, а уж потом сделаем это так как умеем.
Давайте сначала определимся, что ж нам хочется, а уж потом сделаем это так как умеем.
Итак, я делаю базу данных для своей фирмы по недвижимости. Так как особых знаний в программировании нет, решил взяться Excel, он вроде самый доступный.
Допустим есть диапазон A2:a65536 и нужно, чтобы в этом диапазоне была возможность быстрого выбора названия улицы. Может у Вас есть какие-то другие предложения по реализации данной функции. У меня есть только одна мысль, это выбор из списка, но как его автоматизировать я не знаю. Конечно можно нажимать правую кнопку мыши для выбора, но хотелось бы, чтобы при наведении на ячейку, выскакивал список улиц или др.значений.
Итак, я делаю базу данных для своей фирмы по недвижимости. Так как особых знаний в программировании нет, решил взяться Excel, он вроде самый доступный.
Допустим есть диапазон A2:a65536 и нужно, чтобы в этом диапазоне была возможность быстрого выбора названия улицы. Может у Вас есть какие-то другие предложения по реализации данной функции. У меня есть только одна мысль, это выбор из списка, но как его автоматизировать я не знаю. Конечно можно нажимать правую кнопку мыши для выбора, но хотелось бы, чтобы при наведении на ячейку, выскакивал список улиц или др.значений.
Из упорядоченого списка выделяыет (позиционирует)
выбраный в диалоговом окне элемент.
Создадим форму с раскрывающимся списком и кнопкой
Коды для формы:
Private Sub ComboBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim текст As String
Dim c As Range, rng As Range
текст = ComboBox1.Text
If текст = "" Then
Exit Sub
End If
With Sheets("Улицы")
Set rng = .Range("A1:A" & .Range("A1").End(xlDown).Row)
End With
Set c = rng.Find(What:=текст, LookIn:=xlValues, LookAt:=xlWhole, _
SearchDirection:=xlPrevious)
If Not c Is Nothing Then
ComboBox1.ListIndex = c.Row - 2
End If
End Sub
Private Sub CommandButton1_Click()
Sheets("Улицы").Cells(ComboBox1.ListIndex + 2, "A").Select
ActiveWindow.ScrollRow = ComboBox1.ListIndex + 2
ActiveWindow.ScrollColumn = 1
UserForm2.Hide
Unload Me
End Sub
Private Sub UserForm_Initialize()
Dim LstRng As Range
With Sheets("Улицы")
Set LstRng = .Range("A2:A" & _
.Range("A1").End(xlDown).Row)
End With
ComboBox1.List() = LstRng.Value
End Sub
Запускать диалог(форму)
Sub Form_Show()
UserForm1.Show
End Sub
Как работает.
Отсортированный список улиц в столбце "А"(лист "улицы")
В яч [а1] имя поля
Запускаем Form_Show.
Появится форма.
Набираем первые буквы улицы и если "подсказка" то, что надо жмем кнопку.
Можно просто поискать нужную улицу в раскр. списке
Вот и все.
Успехов dedtolya