Создание выпадающих списков в Excel
http://www.excelworld.ru/publ/hacks/dropdown_list/validation_list/64-1-0-34
Программное обеспечение
Есть в Excel подстановка? Можно сделать в ячейке Excel выбор значений из раскрывающегося списка, как в Access? Как?
Выделите ячейки с данными, которые должны попасть в выпадающий список (например, наименованиями товаров) .
Если у вас Excel 2003 или старше - выберите в меню Вставка - Имя - Присвоить (Insert - Name - Define), если Excel 2007 или новее - откройте вкладку Формулы (Formulas) и воспользуйтесь кнопкой Диспетчер имен (Name Manager), затем Создать. Введите имя (можно любое, но обязательно без пробелов и начать с буквы! ) для выделенного диапазона (например Товары) . Нажмите ОК.
Выделите ячейки (можно сразу несколько) , в которых хотите получить выпадающий список и выберите в меню (на вкладке) Данные - Проверка (Data - Validation). Из выпадающего списка Тип данных (Allow) выберите вариант Список (List) и введите в строчку Источник (Source) знак равенства и имя диапазона (т. е. =Товары) .
Выпадающий список с добавлением новых элементов
Шаг 1. Создаем именованный диапазон
Сначала создадим именованный диапазон, указывающий на заполненные именами ячейки в столбце А - сколько бы имен в списке не находилось. Для этого:
в Excel 2007 и новее - жмем на вкладке Формулы (Formulas) кнопку Диспетчер имен (Name Manager) и затем Создать (New)
в Excel 2003 идем в меню Вставка - Имя - Присвоить (Insert - Name - Define)
Затем вводим имя диапазона (допустим People) и в строку Ссылка (Reference) вводим следующую формулу:
=СМЕЩ (Лист1!$A$1;0;0;СЧЁТЗ (Лист1!$A$1:$A$24);1)
в английской версии Excel это будет:
=OFFSET(Лист1!$A$1,0,0,COUNTA(Лист1!$A$1:$A$24),1)
Эта формула ссылается на все заполненные ячейки в столбце А, начиная с А1 и вниз до конца - до последнего имени.
Шаг 2. Создаем выпадающий список в ячейке
Выделяем ячейку D2 и
в Excel 2007 и новее - жмем на вкладке Данные (Data) кнопку Проверка данных (Data Validation)
в Excel 2003 и старше - выбираем в меню Данные - Проверка (Data - Validation).
Далее выбираем из выпадающего списка Тип данных (Allow) позицию Список (List) и вводим в строку Источник (Source) ссылку на созданный на шаге 1 именованный диапазон (не забудьте перед именем диапазона поставить знак равенства!) :
Чтобы Excel позволил нам в будущем ввести в список и новые имена, снимем галочки на вкладках Сообщение для ввода (Input Message) и Сообщение об ошибке (Error Alert) и нажмем ОК. Теперь у нас есть выпадающий список в ячейке D2. Причем, если, например, вручную дописать новое имя в столбце А, то оно автоматически появится в выпадающем списке в ячейке D2, поскольку имена берутся из динамического диапазона People, который автоматически отслеживает изменения в столбце А.
Шаг 3. Добавляем простой макрос
Щелкаем правой кнопкой мыши по ярлычку нашего листа и выбираем Исходный текст (View Source). Откроется модуль листа в редакторе Visual Basic, куда надо скопировать такой код:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lReply As Long
If Target.Cells.Count > 1 Then Exit Sub
If Target.Address = "$D$2" Then
If IsEmpty(Target) Then Exit Sub
If WorksheetFunction.CountIf(Range("People"), Target) = 0 Then
lReply = MsgBox("Добавить введенное имя " & _
Target & " в выпадающий список? ", vbYesNo + vbQuestion)
If lReply = vbYes Then
Range("People").Cells(Range("People").Rows.Count + 1, 1) = Target
End If
End If
End If
End Sub
Если Ваш выпадающий список находится не в ячейке D2 или Вы назвали диапазон с именами не People, а как-то еще, то подправьте эти параметры в макросе на свои.
Если у вас Excel 2003 или старше - выберите в меню Вставка - Имя - Присвоить (Insert - Name - Define), если Excel 2007 или новее - откройте вкладку Формулы (Formulas) и воспользуйтесь кнопкой Диспетчер имен (Name Manager), затем Создать. Введите имя (можно любое, но обязательно без пробелов и начать с буквы! ) для выделенного диапазона (например Товары) . Нажмите ОК.
Выделите ячейки (можно сразу несколько) , в которых хотите получить выпадающий список и выберите в меню (на вкладке) Данные - Проверка (Data - Validation). Из выпадающего списка Тип данных (Allow) выберите вариант Список (List) и введите в строчку Источник (Source) знак равенства и имя диапазона (т. е. =Товары) .
Выпадающий список с добавлением новых элементов
Шаг 1. Создаем именованный диапазон
Сначала создадим именованный диапазон, указывающий на заполненные именами ячейки в столбце А - сколько бы имен в списке не находилось. Для этого:
в Excel 2007 и новее - жмем на вкладке Формулы (Formulas) кнопку Диспетчер имен (Name Manager) и затем Создать (New)
в Excel 2003 идем в меню Вставка - Имя - Присвоить (Insert - Name - Define)
Затем вводим имя диапазона (допустим People) и в строку Ссылка (Reference) вводим следующую формулу:
=СМЕЩ (Лист1!$A$1;0;0;СЧЁТЗ (Лист1!$A$1:$A$24);1)
в английской версии Excel это будет:
=OFFSET(Лист1!$A$1,0,0,COUNTA(Лист1!$A$1:$A$24),1)
Эта формула ссылается на все заполненные ячейки в столбце А, начиная с А1 и вниз до конца - до последнего имени.
Шаг 2. Создаем выпадающий список в ячейке
Выделяем ячейку D2 и
в Excel 2007 и новее - жмем на вкладке Данные (Data) кнопку Проверка данных (Data Validation)
в Excel 2003 и старше - выбираем в меню Данные - Проверка (Data - Validation).
Далее выбираем из выпадающего списка Тип данных (Allow) позицию Список (List) и вводим в строку Источник (Source) ссылку на созданный на шаге 1 именованный диапазон (не забудьте перед именем диапазона поставить знак равенства!) :
Чтобы Excel позволил нам в будущем ввести в список и новые имена, снимем галочки на вкладках Сообщение для ввода (Input Message) и Сообщение об ошибке (Error Alert) и нажмем ОК. Теперь у нас есть выпадающий список в ячейке D2. Причем, если, например, вручную дописать новое имя в столбце А, то оно автоматически появится в выпадающем списке в ячейке D2, поскольку имена берутся из динамического диапазона People, который автоматически отслеживает изменения в столбце А.
Шаг 3. Добавляем простой макрос
Щелкаем правой кнопкой мыши по ярлычку нашего листа и выбираем Исходный текст (View Source). Откроется модуль листа в редакторе Visual Basic, куда надо скопировать такой код:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lReply As Long
If Target.Cells.Count > 1 Then Exit Sub
If Target.Address = "$D$2" Then
If IsEmpty(Target) Then Exit Sub
If WorksheetFunction.CountIf(Range("People"), Target) = 0 Then
lReply = MsgBox("Добавить введенное имя " & _
Target & " в выпадающий список? ", vbYesNo + vbQuestion)
If lReply = vbYes Then
Range("People").Cells(Range("People").Rows.Count + 1, 1) = Target
End If
End If
End If
End Sub
Если Ваш выпадающий список находится не в ячейке D2 или Вы назвали диапазон с именами не People, а как-то еще, то подправьте эти параметры в макросе на свои.
Про VBA слышал?
Владимир Soldatko
Код какой-то писать надо? Куда, какой?
Женя Бушуев
Не нужно никакого кода. Пользуйтесь проверкой данных: [ссылка заблокирована по решению администрации проекта]
вот видеоинструкция про выпадающие списки в экселе: youtu.be/pzwUjnaTTnA
Есть несколько вариантов списков:
обычный через проверку данных - http://ruexcel.ru/spisok/
зависимый список конфигурируемый в зависимости от значения другой ячейки -
http://ruexcel.ru/zavisimost/
обычный через проверку данных - http://ruexcel.ru/spisok/
зависимый список конфигурируемый в зависимости от значения другой ячейки -
http://ruexcel.ru/zavisimost/
Похожие вопросы
- Знатоки Excel подскажите как сделать привязку ячеек
- Как сделать подстановку счётчика из другой таблицы в зависимости от выбранного города в форме в Access 2013?
- Про Excel. Как сделать мигающую ячейку?
- как сделать базу данных Excel/access по локальной сети с возможностью его дублирования каждый месяц ( новый отчет ) ?
- в Excel посчитать суммы каждых двух ячеек
- Как в ячейку Excel вставить большой текст и что бы он не выходил за рамки язейки??
- Как вставить звуковой файл в ячейку Excel? Надо срочно, нет времени искать в справках. Спасибо.
- Как это число 42301810056445422578 записать в ячейку EXCEL, чтобы оно осталось в таком же виде? . .
- Как в Excel задать формулу чтоб просумм. ячейки при двух условиях
- Как в Excel определённое слово сделать ПРОПИСНЫМИ буквами?