Добрый день, подскажите пожалуйста как сделать так чтобы в любой из ячеек зеленой области таблицы можно было как выбрать наименование из выпадающего списка, так и написать что-то своё. В текущей версии таблицы при попытке ввода текста выдаёт ошибку.
Добрый день, подскажите пожалуйста как сделать так чтобы в любой из ячеек зеленой области таблицы можно было как выбрать наименование из выпадающего списка, так и написать что-то своё. В текущей версии таблицы при попытке ввода текста выдаёт ошибку.Rikh
Выделите ячейки, Данные - Проверка данных - на вопрос ответьте "да" - вылезет окошко проверки - перейдите на вкладку "Сообщение об ошибке", снимите галку "Выводить сообщение об ошибке" Или в окошке "Вид" поставьте "Предупреждение" или "Сообщение"
Выделите ячейки, Данные - Проверка данных - на вопрос ответьте "да" - вылезет окошко проверки - перейдите на вкладку "Сообщение об ошибке", снимите галку "Выводить сообщение об ошибке" Или в окошке "Вид" поставьте "Предупреждение" или "Сообщение"_Boroda_
вариант с UDF c автонаполнением списка в диспетчере имен именованная формула список
Код
=DropDownList(Sheet1!$B$42)
в проверке данных Источник
Код
=Список
, будет ругаться на ошибку, жмем ок Сообщение об ошибке можно не отключать [vba]
Код
Function DropDownList(r As Range) As Range
Dim r0 As Range, r1 As Range Static b As Boolean
If b Then: b = False: Exit Function
Application.Volatile False Set r0 = Application.Caller If IsEmpty(r(2)) Then Set r1 = r Else Set r1 = r.Parent.Range(r, r.End(xlDown)) End If Set DropDownList = r1 If r1.Find(r0, , xlValues, xlWhole) Is Nothing And Not IsEmpty(r0) Then If MsgBox("Введеное начение не надено." & vbCr & _ "Добавить его в cписок?", vbQuestion Or vbYesNo) = vbYes Then r1.Offset(r1.Rows.Count)(1, 1) = r0 Else b = True: Exit Function End If End If End Function
[/vba]
вариант с UDF c автонаполнением списка в диспетчере имен именованная формула список
Код
=DropDownList(Sheet1!$B$42)
в проверке данных Источник
Код
=Список
, будет ругаться на ошибку, жмем ок Сообщение об ошибке можно не отключать [vba]
Код
Function DropDownList(r As Range) As Range
Dim r0 As Range, r1 As Range Static b As Boolean
If b Then: b = False: Exit Function
Application.Volatile False Set r0 = Application.Caller If IsEmpty(r(2)) Then Set r1 = r Else Set r1 = r.Parent.Range(r, r.End(xlDown)) End If Set DropDownList = r1 If r1.Find(r0, , xlValues, xlWhole) Is Nothing And Not IsEmpty(r0) Then If MsgBox("Введеное начение не надено." & vbCr & _ "Добавить его в cписок?", vbQuestion Or vbYesNo) = vbYes Then r1.Offset(r1.Rows.Count)(1, 1) = r0 Else b = True: Exit Function End If End If End Function
krosav4ig, спасибо за код! Хочу добавить переход на лист со списком, чтобы после автоматического добавления недостающей позиции пользователь сразу видел, что нужно заполнить дополнительные колонки вручную.
Пробовал с полным именем листа, тоже не переходит. С VBA пытаюсь разбираться, пока только на уровне чужой код посмотреть. Если получится помочь, буду признателен.
krosav4ig, спасибо за код! Хочу добавить переход на лист со списком, чтобы после автоматического добавления недостающей позиции пользователь сразу видел, что нужно заполнить дополнительные колонки вручную.
Пробовал с полным именем листа, тоже не переходит. С VBA пытаюсь разбираться, пока только на уровне чужой код посмотреть. Если получится помочь, буду признателен.wepp