Ранее в публикациях рассказывалось о том, как создается выпадающий список в ячейках для упрощения внесения данных.
Ссылка на описания метода создания связанного выпадающего списка ниже:
Как сделать связанный выпадающий список в «Эксель», зависящий от значения в соседней ячейке.
В данной публикации описана процедура создания выпадающих списков, которые записывают в ячейки по нескольку значений.
Для начала следует создать обыкновенный выпадающий список.
Для этого необходимо:
- Войти во вкладку «Данные»;
- Выбрать опцию «Проверка данных»;
- Выбрать «Список»;
- Указать диапазон, из которого будет выбираться выпадающий список или создать список прямо в появившемся поле через знак «;».
После этой процедуры следует записать макрос в документ.
Для записи макроса следует:
- Открыть вкладку «Разработчик» ( Если вкладка отключена, включите ее в разделе Файл=> Параметры=> Настройка Ленты);
- Во вкладке «Разработчик» выбрать кнопку «Просмотр кода»;
- В открывшееся окно записать макрос;
- Закрыть окно с макросом.
Давайте рассмотрим несколько макросов с выпадающими списками.
Первый макрос со смещением списка в сторону (горизонтально).
Текст макроса:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range(«B2:B10»)) Is Nothing And Target.Cells.Count = 1 Then
Application.EnableEvents = False
If Len(Target.Offset(0, 1)) = 0 Then
Target.Offset(0, 1) = Target
Else
Target.End(xlToRight).Offset(0, 1) = Target
End If
Target.ClearContents
Application.EnableEvents = True
End If
End Sub
Необходимо обратить внимание, что в строке :
If Not Intersect(Target, Range(«B1:B10»)) Is Nothing And Target.Cells.Count = 1 Then
Значения («B1:B10»)— это диапазон в пределах которого будет работать выпадающий список.
Аналогичным образом можно создать выпадающий список со смещением вниз и выпадающий список, записывающий в ячейку несколько значений через знак табуляции или пробел.
Макрос выпадающего списка со смещением вниз:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range(«C2:F2»)) Is Nothing And Target.Cells.Count = 1 Then
Application.EnableEvents = False
If Len(Target.Offset(1, 0)) = 0 Then
Target.Offset(1, 0) = Target
Else
Target.End(xlDown).Offset(1, 0) = Target
End If
Target.ClearContents
Application.EnableEvents = True
End If
End Sub
Макрос выпадающего списка с внесением нескольких значений в одну ячейку:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range(«B2:B5»)) Is Nothing And Target.Cells.Count = 1 Then
Application.EnableEvents = False
newVal = Target
Application.Undo
oldval = Target
If Len(oldval) <> 0 And oldval <> newVal Then
Target = Target & «//» & newVal
Else
Target = newVal
End If
If Len(newVal) = 0 Then Target.ClearContents
Application.EnableEvents = True
End If
End Sub
В строке If Not Intersect(Target, Range(«B2:B5»)) Is Nothing And Target.Cells.Count = 1 Then
указывается диапазон действия макроса.
В строке
Target = Target & «//» & newVal
указывается разделитель «//». Его можно заменить на любой знак препинания, текст или поставить пробел.
Выпадающий список в ячейке листа
Видео
У кого мало времени и нужно быстро ухватить суть — смотрим обучающее видео:
Кому интересны подробности и нюансы всех описанных способов — дальше по тексту.
Способ 1. Примитивный
Один щелчок правой кнопкой мыши по пустой ячейке под столбцом с данными, команда контекстного меню Выбрать из раскрывающегося списка (Choose from drop-down list) или нажать сочетание клавиш ALT+стрелка вниз. Способ не работает, если ячейку и столбец с данными отделяет хотя бы одна пустая строка или вам нужен товар, который еще ни разу не вводился выше:
Способ 2. Стандартный
- Выделите ячейки с данными, которые должны попасть в выпадающий список (например, наименованиями товаров).
- Если у вас Excel 2003 или старше — выберите в меню Вставка — Имя — Присвоить (Insert — Name — Define), если Excel 2007 или новее — откройте вкладку Формулы (Formulas) и воспользуйтесь кнопкой Диспетчер имен (Name Manager), затем Создать. Введите имя (можно любое, но обязательно без пробелов и начать с буквы!) для выделенного диапазона (например Товары). Нажмите ОК.
- Выделите ячейки (можно сразу несколько), в которых хотите получить выпадающий список и выберите в меню (на вкладке) Данные — Проверка (Data — Validation). Из выпадающего списка Тип данных (Allow) выберите вариант Список (List) и введите в строчку Источник (Source) знак равенства и имя диапазона (т.е. =Товары).
Нажмите ОК.
Все! Наслаждайтесь!
Важный нюанс. В качестве источника данных для списка может выступать и динамический именованный диапазон, например прайс-лист. Тогда при дописывании новых товаров к прайсу, они будут автоматически добавляться к выпадающему списку. Еще одним часто используемым трюком для таких списков является создание связанных выпадающих списков (когда содержимое одного списка меняется в зависимости от выбора в другом).
Способ 3. Элемент управления
Этот способ представляет собой вставку на лист нового объекта — элемента управления «поле со списком» с последующей привязкой его к диапазонам на листе. Для этого:
- В Excel 2007/2010 откройте вкладку Разработчик (Developer). В более ранних версиях — панель инструментов Формы (Forms) через меню Вид — Панели инструментов — Формы (View — Toolbars — Forms). Если этой вкладки не видно, то нажмите кнопку Офис — Параметры Excel — флажок Отображать вкладку Разработчик на ленте (Office Button — Excel Options — Show Developer Tab in the Ribbon)
- Найдите значок выпадающего списка среди элементов управления форм (не ActiveX!). Ориентируйтесь по всплывающим подсказкам — Поле со списком:
Щелкните по значку и нарисуйте небольшой горизонтальный прямоугольник — будущий список. - Щелкните по нарисованному списку правой кнопкой мыши и выберите команду Формат объекта (Format control). В появившемся диалоговом окне задайте
- Формировать список по диапазону — выделите ячейки с наименованиями товаров, которые должны попасть в список
- Связь с ячейкой — укажите ячейку куда нужно выводить порядковый номер выбранного пользователем элемента.
- Количество строк списка — сколько строк показывать в выпадающем списке. По умолчанию — 8, но можно больше, чего не позволяет предыдущий способ.
После нажатия на ОК списком можно пользоваться.
Чтобы вместо порядкового номера элемента выводилось его название можно дополнительно использовать функцию ИНДЕКС (INDEX), которая умеет выводить содержимое нужной по счету ячейки из диапазона:
Способ 4. Элемент ActiveX
Этот способ частично напоминает предыдущий. Основное отличие в том, что на лист добавляется не элемент управления, а элемент ActiveX «Поле со списком» из раскрывающегося набора под кнопкой Вставить (Insert) с вкладки Разработчик (Developer):
Механизм добавления тот же — выбираем объект из списка и рисуем его на листе. А вот дальше начинаются серьезные отличия от предыдущего способа.
Во-первых, созданный выпадающий ActiveX список может находится в двух принципиально разных состояниях — режиме отладки, когда можно настраивать его параметры и свойства, двигать его по листу и менять размеры и — режиме ввода, когда единственное, что можно — выбирать из него данные. Переключение между этими режимами происходит с помощью кнопки Режим Конструктора (Design Mode) на вкладке Разработчик (Developer):
Если эта кнопка нажата, то мы можем настраивать параметры выпадающего списка, нажав соседнюю кнопку Свойства (Properties), которая откроет окно со списком всех возможных настроек для выделенного объекта:
Самые нужные и полезные свойства, которые можно и нужно настроить:
- ListFillRange — диапазон ячеек, откуда берутся данные для списка. Выделить мышью диапазон он не даст, надо просто вписать его руками с клавиатуры (например, Лист2!A1:A5)
- LinkedCell — связанная ячейка, куда будет выводиться выбранный из списка элемент
- ListRows — количество отображаемых строк
- Font — шрифт, размер, начертание (курсив, подчеркивание и т.д. кроме цвета)
- ForeColor и BackColor — цвет текста и фона, соответственно
Большим и жирным плюсом этого способа является возможность быстрого перехода к нужному элементу в списке при вводе первых букв с клавиатуры(!), чего нет у всех остальных способов. Приятным моментом, также, является возможность настройки визуального представления (цветов, шрифтов и т.д.)
При использовании этого способа, также возможно указывать в качестве ListFillRange не только одномерные диапазоны. Можно, например задать диапазон из двух столбцов и нескольких строк, указав дополнительно, что выводить нужно два столбца (свойство ColumnCount=2). Тогда можно получить весьма привлекательные результаты, окупающие все потраченные на дополнительные настройки усилия:
Итоговая сравнительная таблица всех способов
Способ 1. Примитивный | Способ 2. Стандартный | Способ 3. Элемент управления | Способ 4. Элемент ActiveX | |
Сложность | низкая | средняя | высокая | высокая |
Возможность настройки шрифта, цвета и т.д. | нет | нет | нет | да |
Количество отображаемых строк | всегда 8 | всегда 8 | любое | любое |
Быстрый поиск элемента по первым буквам | нет | нет | нет | да |
Необходимость использования дополнительной функции ИНДЕКС | нет | нет | да | нет |
Возможность создания связанных выпадающих списков | нет | да | нет | нет |
Ссылки по теме:
- Выпадающий список с данными из другого файла
- Создание зависимых выпадающих списков
- Автоматическое создание выпадающих списков надстройкой PLEX
- Выбор фото из выпадающего списка
- Автоматическое удаление уже использованных элементов из выпадающего списка
- Выпадающий список с автоматическим добавлением новых элементов
Сегодня я покажу, как заполнить однотипные листы, по шаблону Excel на основе списка.
Переименуем в книге первый лист, это у нас будет список, допустим сотрудников.
Второй лист назовём шаблон, в нем будет находиться таблица, которую сотрудники будут заполнять либо вы будите заполнять для данных сотрудников из списка.
Вот такая будет табличка, потом покажу вам одну формулу в ячейке, как имя листа поместить в ячейку.
Вот список из трех сотрудников, три фамилии они у нас уникальные, отличаются друг от друга это важное условие для работы данного способа заполнения.
Сохраним наш документ как книга Excel с поддержкой макросов с расширением так xlsm, на ленте должен находиться в последнем пункте — пункт Разработчик, если его нет, то в файл, параметры нужно будет в настройках ленты добавить этот пункт, отметьте его галочкой.
В пункте Разработчик, выбираем вкладку Вставить, выбираем кнопку, рисуем кнопку, пока не создаем и не присваиваем никакой макрос. По нажатию кнопки будет формироваться набор листов в книге по списку.
Перейдём на вкладке Разработчик в Visual Basic либо нажмем Alt+F11
, для того чтобы открылся редактор макросов.
Нажмем в меню insert
– module, напишем модуль Sub ListTempl()
, объявим переменную tmpName.
Получим данные нашего списка из листа список в переменную tmpName, объявив диапазон А1:А3. Но если нужно будет больше, то будем менять это значение. Пока в примере оставим так.
Напишем цикл for от 1 до 3, по сколько мы знаем конечное количество записей нашего списка и теперь сделаем копию листа шаблон, создадим новый лист копии листа с шаблоном, шаблон и присвоим имя каждому листу, значение то которое у нас находится в списке. Закончим цикл next i
.
Теперь нажмем правой кнопкой на кнопке, назначить макрос, выберем макрос ListTempl
, OK, сохранить.
Нажмем на кнопку, сформировались три листа с название по списку сотрудников, которые были в списке. И можно будет заполнять или печатать.
Sub ListTempl() Dim tmpName tmpName = Sheets("Шаблон").Range("a1:a3") For i = 1 To 3 Sheets("Шаблон").Copy Before:=Sheets(i) Sheets(i).Name = tmpName(i, 1) Next i End Sub
Вот такой простой код позволяет быстро создать и заполнить книгу листами по определенным данным.
Если нажать на кнопку повторно, то Excel выдаст ошибку, что подобные листы уже используется, надо учитывать этот момент, просто удалите дубли, в этом примере я не буду делать повторную проверку или добавление каких-то случайных значений к имени листов.
Давайте добавим теперь в шапку шаблона формулу, которая будет в ячейку присваивать имя листа, сейчас формула находится на листе с названием шаблон.
Эта формула позволяет получить из значение листа имя листа в ячейку, происходит разбор пути файла до листа.
=ПРОПНАЧ(ПСТР(ЯЧЕЙКА("имяфайла";A1);ПОИСК("]";ЯЧЕЙКА("имяфайла";A1))+1;99))
Давайте допишет для примера как это бывает в таблицах, «Список для », а далее будет фамилия поставляться из названия листа.
Нажмем на кнопку, и как видите, сформировались все листы, и в каждом листе, в этой ячейки у нас будет находиться имя сотрудника.
Ну либо того, что у вас будет находилась в списке, при условии, что эти значения уникальны.
Если же всё-таки вам нужно будет сделать два листа для одной уникальной записи, тут могу предложить следующее.
Изменим в коде диапазон на А4
, так как у нас ещё один пункт добавился и в цикле исправим на четыре.
Sub ListTempl() Dim tmpName tmpName = Sheets("Шаблон").Range("a1:a4") For i = 1 To 4 Sheets("Шаблон").Copy Before:=Sheets(i) Sheets(i).Name = tmpName(i, 1) Next i End Sub
Удалим всё снова и нажмем на кнопку. Опять ошибка, как вариант предлагаю добавить пробел в конце названия дублируемого пункта списка.
В итоге у нас получилось два Ивановых, конечно лучше использовать уникальные значения, тогда этот пример будет достаточно хорошо вам подходить.
Смотрите видео: Листы в Excel из списка по шаблону
Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!
На чтение 5 мин Опубликовано 26.01.2021
Листам в книгах Excel можно дать имена, соответствующие содержимому. Из них было бы удобно составить оглавление, но не все знают, как это сделать. Существуют несложные способы сформировать список листов и методы, требующие усилий, например установки сторонних дополнений. С помощью инструментов Excel пользователи также могут подсчитать количество листов в крупной книге. Выясним, как получить оглавление для чтения или перехода к каждому листу, какими формулами для этого нужно воспользоваться.
Содержание
- Список листов с помощью формулы
- Как составить список листов через VBA
- Надстройки для составления списка листов
- Как подсчитать количество листов в книге
Список листов с помощью формулы
Этот способ основан на использовании функции, которую нельзя найти в Менеджере. Она связана с макросами Excel 4.0. Чтобы применить формулу на практике, необходимо пройти дополнительный шаг, редко встречающийся в работе с функциями – зайти в диспетчер имен и добавить туда выражение.
- Переходим на вкладку «Формулы» и кликаем по кнопке «Диспетчер имен». Опция находится в разделе «Определенные имена».
- Нажимаем «Создать» в открывшемся диалоговом окне.
- Записываем новое имя в верхнем поле, выбираем область «Книга» (обычно она установлена по умолчанию) и записываем в графу «Диапазон» эту формулу: =ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1; НАЙТИ(«]»;ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»»)
- После заполнения всех полей жмем «ОК». В книге Excel пока ничего не изменится, но эти шаги помогут в будущем. Окно диспетчера имен можно закрыть.
- Открываем лист, где будет расположен список. Выбираем ячейку и записываем в ней формулу с только что созданным именем: =ИНДЕКС(Список_листов;СТРОКА()). Нажмите Enter, и в ячейке появится название первого листа.
- Необходимо вывести все названия листов в столбец. Для этого зажимаем маркер заполнения, который находится в правом нижнем углу выбранной ячейки, и выделяем нужное количество ячеек. В таблице-примере 4 листа столько и было выделено ячеек.
- Создадим список, из которого можно перейти на каждый лист. Выберите другую пустую ячейку и вставьте эту формулу: =ГИПЕРССЫЛКА(«#»&A1&»!A1″;»»&A1).
Обратите внимание! Ячейка A1 прописывается в формуле, чтобы пользователи могли перейти на конкретную ячейку каждого листа. После нажатия Enter появится кликабельное название листа.
- Полный список с гиперссылками можно создать так же, с помощью маркера заполнения.
- Если название листа изменено, придется перезаполнить списки – для этого нужно просто удалить их, снова вставить те же формулы и выделить ячейки ниже.
Важно! Невозможно сделать ссылку на лист с диаграммой в Excel. На экране появляется сообщение об ошибке, переход не происходит.
Как составить список листов через VBA
Существует другой способ составления списка листов из книги – можно подключить пользовательскую функцию через редактор Visual Basic. Такой метод может показаться сложным, но это не так, если воспользоваться шаблоном для добавления функции в программу.
- Открываем VBA с помощью комбинации клавиш «Alt+F11». Если при нажатии F11 снижается яркость или срабатывает другая функция, установленная на эту кнопку, зажмите клавишу Fn.
- Нажмите «Вставить» (Insert) на верхней панели и выберите в открывшемся меню пункт «Модуль» (Module).
- Вставляем в свободное поле этот текст:
Function SheetList(N As Integer)
SheetList = ActiveWorkbook.Worksheets(N).Name
End Function
- Далее можно закрыть окно Visual Basic, потому что этот инструмент больше не понадобится, а функция уже добавлена в программу.
- Открываем лист для списка и вводим формулу в начальную ячейку. Теперь не нужно длинное выражение, чтобы создать список листов. Новая формула выглядит так: =SheetList(СТРОКА()).
- Нажимаем Enter и получаем название листа в ячейке. Маркером заполнения создаем список.
- Для гиперссылок придется использовать ту же длинную формулу: =ГИПЕРССЫЛКА(«#»&A1&»!A1″;»»&A1).
Надстройки для составления списка листов
Надстройки – это дополнения для Microsoft Excel, которые создаются продвинутыми пользователями. Компания Microsoft рассказывает на официальном сайте о возможности подключить надстройки, но не предлагает скачать дополнения, поэтому обычно их загружают из других источников.
Всегда проверяйте загрузки на вредоносные элементы с помощью антивирусной программы.
Существуют платные и бесплатные надстройки. Сегодня рассмотрим набор дополнений для Excel 2007-2019 под названием «Ёxcel». Разработчик распространяет файл на своем сайте за добровольное пожертвование. Установите надстройку по инструкции – после этого можно приступать к составлению списка.
- Открываем лист, где будет размещен список, и нажимаем левой кнопкой мыши на начальную ячейку будущего перечисления.
- На вкладке надстройки находим кнопку «Листы». Кликаем по ней, чтобы открылось меню, и выбираем пункт «Получить список листов книги». Скриншот создателя надстройки:
- Выбираем, какие листы показать в списке. Для простейшего перечисления названий листов кликаем по пункту «Простой список» и жмем на кнопку с галочкой в левом нижнем углу диалогового окна.
- На экране появится список листов. Если выставить настройки сложнее, то внешний вид списка немного изменится.
Как подсчитать количество листов в книге
Иногда в книгах Excel появляется много листов, например если документ относится к крупному проекту. Выяснить, сколько в файле страниц, можно с помощью функции ЛИСТЫ.
Обратите внимание! Функция работает только в версиях Microsoft Excel от 2013.
- Выбираем пустую ячейку и записываем в ней формулу: =ЛИСТЫ(). Не обязательно заполнять аргумент «Ссылка», если нужно посчитать листы в одной книге.
- Жмем Enter и получаем числовое значение.
Если все листы переименованы, и нужно узнать их номера, воспользуйтесь функцией ЛИСТ. Эта формула также доступна с 2013-й версии. У функции ЛИСТ один аргумент – «Значение». Если аргумент не заполнен, после нажатия клавиши Enter в ячейке появится номер того же листа, где была введена формула. Простое выражение с ЛИСТ выглядит так: =ЛИСТ().
Оцените качество статьи. Нам важно ваше мнение:
Под выпадающим списком понимается содержание в одной ячейке нескольких значений. Когда пользователь щелкает по стрелочке справа, появляется определенный перечень. Можно выбрать конкретное.
Очень удобный инструмент Excel для проверки введенных данных. Повысить комфорт работы с данными позволяют возможности выпадающих списков: подстановка данных, отображение данных другого листа или файла, наличие функции поиска и зависимости.
Создание раскрывающегося списка
Путь: меню «Данные» — инструмент «Проверка данных» — вкладка «Параметры». Тип данных – «Список».
Ввести значения, из которых будет складываться выпадающий список, можно разными способами:
- Вручную через «точку-с-запятой» в поле «Источник».
- Ввести значения заранее. А в качестве источника указать диапазон ячеек со списком.
- Назначить имя для диапазона значений и в поле источник вписать это имя.
Любой из вариантов даст такой результат.
Выпадающий список в Excel с подстановкой данных
Необходимо сделать раскрывающийся список со значениями из динамического диапазона. Если вносятся изменения в имеющийся диапазон (добавляются или удаляются данные), они автоматически отражаются в раскрывающемся списке.
- Выделяем диапазон для выпадающего списка. В главном меню находим инструмент «Форматировать как таблицу».
- Откроются стили. Выбираем любой. Для решения нашей задачи дизайн не имеет значения. Наличие заголовка (шапки) важно. В нашем примере это ячейка А1 со словом «Деревья». То есть нужно выбрать стиль таблицы со строкой заголовка. Получаем следующий вид диапазона:
- Ставим курсор в ячейку, где будет находиться выпадающий список. Открываем параметры инструмента «Проверка данных» (выше описан путь). В поле «Источник» прописываем такую функцию:
Протестируем. Вот наша таблица со списком на одном листе:
Добавим в таблицу новое значение «елка».
Теперь удалим значение «береза».
Осуществить задуманное нам помогла «умная таблица», которая легка «расширяется», меняется.
Теперь сделаем так, чтобы можно было вводить новые значения прямо в ячейку с этим списком. И данные автоматически добавлялись в диапазон.
- Сформируем именованный диапазон. Путь: «Формулы» — «Диспетчер имен» — «Создать». Вводим уникальное название диапазона – ОК.
- Создаем раскрывающийся список в любой ячейке. Как это сделать, уже известно. Источник – имя диапазона: =деревья.
- Снимаем галочки на вкладках «Сообщение для ввода», «Сообщение об ошибке». Если этого не сделать, Excel не позволит нам вводить новые значения.
- Вызываем редактор Visual Basic. Для этого щелкаем правой кнопкой мыши по названию листа и переходим по вкладке «Исходный текст». Либо одновременно нажимаем клавиши Alt + F11. Копируем код (только вставьте свои параметры).
- Сохраняем, установив тип файла «с поддержкой макросов».
- Переходим на лист со списком. Вкладка «Разработчик» — «Код» — «Макросы». Сочетание клавиш для быстрого вызова – Alt + F8. Выбираем нужное имя. Нажимаем «Выполнить».
Private Sub Worksheet_Change(ByVal Target As Range) Dim lReply As Long If Target.Cells.Count > 1 Then Exit Sub If Target.Address = "$C$2" Then If IsEmpty(Target) Then Exit Sub If WorksheetFunction.CountIf(Range("Деревья"), Target) = 0 Then lReply = MsgBox("Добавить введенное имя " & _ Target & " в выпадающий список?", vbYesNo + vbQuestion) If lReply = vbYes Then Range("Деревья").Cells(Range("Деревья").Rows.Count + 1, 1) = Target End If End If End If End Sub
Когда мы введем в пустую ячейку выпадающего списка новое наименование, появится сообщение: «Добавить введенное имя баобаб в выпадающий список?».
Нажмем «Да» и добавиться еще одна строка со значением «баобаб».
Выпадающий список в Excel с данными с другого листа/файла
Когда значения для выпадающего списка расположены на другом листе или в другой книге, стандартный способ не работает. Решить задачу можно с помощью функции ДВССЫЛ: она сформирует правильную ссылку на внешний источник информации.
- Делаем активной ячейку, куда хотим поместить раскрывающийся список.
- Открываем параметры проверки данных. В поле «Источник» вводим формулу: =ДВССЫЛ(“[Список1.xlsx]Лист1!$A$1:$A$9”).
Имя файла, из которого берется информация для списка, заключено в квадратные скобки. Этот файл должен быть открыт. Если книга с нужными значениями находится в другой папке, нужно указывать путь полностью.
Как сделать зависимые выпадающие списки
Возьмем три именованных диапазона:
Это обязательное условие. Выше описано, как сделать обычный список именованным диапазоном (с помощью «Диспетчера имен»). Помним, что имя не может содержать пробелов и знаков препинания.
- Создадим первый выпадающий список, куда войдут названия диапазонов.
- Когда поставили курсор в поле «Источник», переходим на лист и выделяем попеременно нужные ячейки.
- Теперь создадим второй раскрывающийся список. В нем должны отражаться те слова, которые соответствуют выбранному в первом списке названию. Если «Деревья», то «граб», «дуб» и т.д. Вводим в поле «Источник» функцию вида =ДВССЫЛ(E3). E3 – ячейка с именем первого диапазона.
- Создаем стандартный список с помощью инструмента «Проверка данных». Добавляем в исходный код листа готовый макрос. Как это делать, описано выше. С его помощью справа от выпадающего списка будут добавляться выбранные значения.
- Чтобы выбранные значения показывались снизу, вставляем другой код обработчика.
- Чтобы выбираемые значения отображались в одной ячейке, разделенные любым знаком препинания, применим такой модуль.
- На вкладке «Разработчик» находим инструмент «Вставить» – «ActiveX». Здесь нам нужна кнопка «Поле со списком» (ориентируемся на всплывающие подсказки).
- Щелкаем по значку – становится активным «Режим конструктора». Рисуем курсором (он становится «крестиком») небольшой прямоугольник – место будущего списка.
- Жмем «Свойства» – открывается перечень настроек.
- Вписываем диапазон в строку ListFillRange (руками). Ячейку, куда будет выводиться выбранное значение – в строку LinkedCell. Для изменения шрифта и размера – Font.
Выбор нескольких значений из выпадающего списка Excel
Бывает, когда из раскрывающегося списка необходимо выбрать сразу несколько элементов. Рассмотрим пути реализации задачи.
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("Е2:Е9")) Is Nothing And Target.Cells.Count = 1 Then Application.EnableEvents = False If Len(Target.Offset(0, 1)) = 0 Then Target.Offset(0, 1) = Target Else Target.End(xlToRight).Offset(0, 1) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("Н2:К2")) Is Nothing And Target.Cells.Count = 1 Then Application.EnableEvents = False If Len(Target.Offset(1, 0)) = 0 Then Target.Offset(1, 0) = Target Else Target.End(xlDown).Offset(1, 0) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("C2:C5")) Is Nothing And Target.Cells.Count = 1 Then
Application.EnableEvents = False
newVal = Target
Application.Undo
oldval = Target
If Len(oldval) <> 0 And oldval <> newVal Then
Target = Target & "," & newVal
Else
Target = newVal
End If
If Len(newVal) = 0 Then Target.ClearContents
Application.EnableEvents = True
End If
End Sub
Не забываем менять диапазоны на «свои». Списки создаем классическим способом. А всю остальную работу будут делать макросы.
Выпадающий список с поиском
Скачать пример выпадающего списка
При вводе первых букв с клавиатуры высвечиваются подходящие элементы. И это далеко не все приятные моменты данного инструмента. Здесь можно настраивать визуальное представление информации, указывать в качестве источника сразу два столбца.
вывести списком все листы, для удобства работы |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Вывод списка имён (Names) книги Excel на новый лист
Если вы хотите посмотреть, присутствуют ли в книге Excel назначенные имена,
сделать это просто — достаточно вызвать диспетчер имён нажатием комбинации клавиш Ctrl + F3:
В диспетчере имён можно создать новые имена, просмотреть ранее созданные, и, при желании, изменить их.
Одно но: в диспетчере имён отображаются только видимые имена,
а в книге Excel могут присутствовать и скрытые.
Чтобы узнать количество имён в книге, а также посмотреть их значения,
мы воспользуемся макросом:
Sub ПолучениеСпискаИмёнВКниге() Dim n As Name, VisibleNames%, HiddenNames%, WB As Workbook, i As Long Set WB = ActiveWorkbook For Each n In WB.Names VisibleNames = VisibleNames - n.Visible HiddenNames = HiddenNames - Not n.Visible Next n If VisibleNames + HiddenNames = 0 Then MsgBox "Имена в книге отсутствуют (не назначены)", vbInformation Else msg = "Количество имён в книге: " & VisibleNames + HiddenNames & vbNewLine & _ "Из них видимых: " & VisibleNames & ", скрытых: " & HiddenNames & vbNewLine & _ vbNewLine & "Вывести на лист список всех имён?" If MsgBox(msg, vbInformation + vbYesNo, "Имена в открытом файле") = vbYes Then Dim sh As Worksheet: Set sh = Workbooks.Add(xlWBATWorksheet).Worksheets(1) sh.Cells(1, 1).Resize(, 4).Value = _ Array("№", "Имя", "Видимость", "Ссылка (значение)") sh.Cells(1, 1).Resize(, 4).Interior.ColorIndex = 15 For i = 1 To WB.Names.Count Set n = WB.Names(i) sh.Cells(i + 1, 1).Resize(, 4).Value = _ Array(i, n.Name, IIf(n.Visible, "Видимое", "Скрытое"), "'" & n.RefersTo) Next i sh.UsedRange.EntireColumn.AutoFit End If End If End Sub
Для этого в прикреплённом файле нажмём зеленую кнопку,
и увидим вообщение с информацией о количестве имен в книге:
Если в диаоговом окне мы нажмём «Да», то макрос создаст новую книгу, и сформирует в ней таблицу со списком всех имен книги:
Если же вам требуется вывести список видимых имён на лист Excel, то можно воспользоваться макросом из одной строки:
Sub СписокВидимыхИмён() ActiveCell.ListNames End Sub
Того же эффекта можно добиться, нажав кнопку «Все имена» в диалоговом окне, вызываемом из меню Вставка — Имя — Вставить… (в Excel 2003):
- 29066 просмотров
Не получается применить макрос? Не удаётся изменить код под свои нужды?
Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.
Microsoft Excel: выпадающие списки
Смотрите также Next то подправьте эти и вниз до значений на листСписокПри использовании этого способа, диапазона:Важный нюанс. В качестве выбранное значение – исходный код листа lReply = MsgBox(«Добавить
указать диапазон ячеек соответствующий базе данных
Создание дополнительного списка
же книге, можно же свойства, как а затем кликаемПри работе в программеIf poisk Like параметры в макросе
конца — до (это так же» и указываем диапазон также возможно указыватьЭтот способ частично напоминает источника данных для в строку LinkedCell. готовый макрос. Как введенное имя « со списком. с городами. Если на другом листе. и в предыдущий по надписи «Параметры». Microsoft Excel в
«*» & TextBox1.Value на свои. последнего имени. позволит работать со списка в качестве предыдущий. Основное отличие
списка может выступать Для изменения шрифта это делать, описано & _ TargetНазначить имя для диапазона пользователь выберетМы будем использовать именованные раз, выделяем верхниеВ открывшемся окне переходим таблицах с повторяющимися & «*» ThenВсё! Теперь при попытке
Выделяем ячейку D2 и списком на любом3.ListFillRange в том, что и динамический именованный и размера – выше. С его
& » в значений и вPortugal диапазоны и сделаем ячейки, и при в подраздел «Настройка данными, очень удобноListBox1.AddItem sh.Name & ввести новое имяв Excel 2007 и листе). Делается этоЕсли есть желание
не только одномерные на лист добавляется диапазон, например прайс-лист. Font. помощью справа от выпадающий список?», vbYesNo поле источник вписать, то мы должны так, чтобы эти
Создание выпадающего списка с помощью инструментов разработчика
нажатой клавише мышки ленты», и ставим использовать выпадающий список. «!» & poisk.Address в ячейку D2 новее — жмем так: подсказать пользователю о диапазоны. Можно, например не элемент управления, Тогда при дописыванииСкачать пример выпадающего списка выпадающего списка будут + vbQuestion) If
это имя. обратиться к базе связанные выпадающие списки «протаскиваем» вниз. флажок напротив значения С его помощью
ListBox1.List(j, 1) = Excel будет спрашивать на вкладкеТо есть вручную, его действиях, то задать диапазон из а элемент ActiveX новых товаров кПри вводе первых букв добавляться выбранные значения.Private lReply = vbYesЛюбой из вариантов даст с индексом работали во всех
Всё, таблица создана. «Разработчик». Жмем на можно просто выбирать poisk… и при утвердительном
Данные (Data) через переходим во вкладку двух столбцов и
»Поле со списком» прайсу, они будут с клавиатуры высвечиваются Sub Worksheet_Change(ByVal Target Then Range(«Деревья»).Cells(Range(«Деревья»).Rows.Count + такой результат.3
версиях Excel. СледующийМы разобрались, как сделать кнопку «OK». нужные параметры изj = j + 1
ответе пользователя автоматическикнопку
; « нескольких строк, указавиз раскрывающегося набора автоматически добавляться к подходящие элементы. И As Range) On
Связанные списки
1, 1) =, в которой хранятся шаг – создать выпадающий список вПосле этого, на ленте сформированного меню. ДавайтеEnd If добавлять новое имяПроверка данных (Data Validation)(точка с запятой) вводимСообщение для ввода дополнительно, что выводить под кнопкой выпадающему списку. Еще это далеко не Error Resume Next
Target End IfНеобходимо сделать раскрывающийся список названия городов Португалии. именованные диапазоны для Экселе. В программе появляется вкладка с
выясним, как сделатьNext к списку вв Excel 2003 и список в поле
» и заполняем заголовок нужно два столбцаВставить (Insert) одним часто используемым все приятные моменты
If Not Intersect(Target, End If End со значениями из Мы воспользуемся функцией наших списков. На можно создавать, как названием «Разработчик», куда
раскрывающийся список различными
Next столбце А и старше — выбираем « и текст сообщения (свойствос вкладки трюком для таких
данного инструмента. Здесь
Range(«Е2:Е9»)) Is Nothing If End Sub динамического диапазона. ЕслиВПР вкладке простые выпадающие списки, мы и перемещаемся. способами.End Sub в выпадающий список в менюИсточниккоторое будет появляться
ColumnCount
lumpics.ru
Создаем связанные выпадающие списки в Excel – самый простой способ!
Разработчик (Developer) списков является создание можно настраивать визуальное And Target.Cells.Count =Сохраняем, установив тип файла вносятся изменения в(VLOOKUP) для поискаFormulas так и зависимые. Чертим в MicrosoftСкачать последнюю версиюОформляйте коды макросов в ячейку D2.Данные — Проверка (Data», в том порядке при выборе ячейки=2). Тогда можно получить: связанных выпадающих списков
представление информации, указывать 1 Then Application.EnableEvents «с поддержкой макросов». имеющийся диапазон (добавляются значения из ячейки(Формулы) есть команда При этом, можно Excel список, который Excel спецтегами — кнопкаSendex — Validation) в котором мы с выпадающим списком весьма привлекательные результаты,
Механизм добавления тот же (когда содержимое одного в качестве источника = False IfПереходим на лист со или удаляются данные),B1Name Manager использовать различные методы должен стать выпадающимСамым удобным, и одновременно # (поправил за: Всем привет!. хотим его видеть4. окупающие все потраченные — выбираем объект списка меняется в сразу два столбца. Len(Target.Offset(0, 1)) = списком. Вкладка «Разработчик» они автоматически отражаютсяв таблице с(Диспетчер имён). Нажав создания. Выбор зависит меню. Затем, кликаем наиболее функциональным способом Вас). И ПравилаИскал что-то подобное
Далее выбираем из выпадающего (значения введённые слева-направоТак же необязательно на дополнительные настройки из списка и зависимости от выбораУ кого мало времени 0 Then Target.Offset(0, — «Код» - в раскрывающемся списке. названиями стран. После на нее, откроется от конкретного предназначения
на Ленте на создания выпадающего списка, форума почитайте. обсуждавшееся, но не списка будут отображаться в можно создать и усилия: рисуем его на в другом). и нужно быстро 1) = Target «Макросы». Сочетание клавишВыделяем диапазон для выпадающего того как индекс диалоговое окно списка, целей его значок «Вставить», и
является метод, основанныйSLAVICK нашел.Тип данных (Allow) ячейке сверху вниз). сообщение, которое будетСпособ 1.
листе. А вотЭтот способ представляет собой ухватить суть - Else Target.End(xlToRight).Offset(0, 1) для быстрого вызова списка. В главном будет известен, мыName Manager создания, области применения, среди появившихся элементов на построении отдельного
: Попробуйте так:
В чем суть.позициюПри всех своих появляться при попытке
Примитивный дальше начинаются серьезные вставку на лист
смотрим обучающее видео: = Target End – Alt + меню находим инструмент выберем список, который(Диспетчер имён). и т.д. в группе «Элемент списка данных.200?’200px’:»+(this.scrollHeight+5)+’px’);»>Private Sub TextBox1_Change() Допустим есть список:Список (List) плюсах выпадающий список, ввести неправильные данныеСпособ 2. отличия от предыдущего нового объекта -
Кому интересны подробности и If Target.ClearContents Application.EnableEvents F8. Выбираем нужное
«Форматировать как таблицу». станет источником данныхНажмите кнопкуАвтор: Максим Тютюшев ActiveX» выбираем «ПолеПрежде всего, делаем таблицу-заготовку,Dim j Asполотенце зеленоеи вводим в созданный вышеописанным образом,Если Вы неСтандартный способа. элемента управления «поле нюансы всех описанных = True End имя. Нажимаем «Выполнить».Откроются стили. Выбираем любой. для нашего второгоNewПРЕДСТАВЬТЕ СИТУАЦИЮ: со списком». где собираемся использовать Long, i Asполено дубовое строку имеет один, но сделаете пункты 3Способ 3.Во-первых, созданный выпадающий ActiveX со списком» с способов — дальше If End SubКогда мы введем в Для решения нашей выпадающего списка. Для(Создать), чтобы добавитьМы хотим создатьКликаем по месту, где выпадающее меню, а Long, poisk Asтелефон новыйИсточник (Source) очень «жирный» минус: и 4, тоЭлемент управления список может находится последующей привязкой его по тексту.Чтобы выбранные значения показывались пустую ячейку выпадающего задачи дизайн не этого напишем такую новый именованный диапазон. в Excel небольшую
должна быть ячейка
также делаем отдельным
Range, iAdr$, LT%,переполох в душессылку на созданный проверка данных работаетпроверка данныхСпособ 4. в двух принципиально к диапазонам наОдин щелчок правой кнопкой снизу, вставляем другой списка новое наименование, имеет значения. Наличие
формулу: Откроется диалоговое окно табличку, где можно
со списком. Как списком данные, которые sh As WorksheetВ ячейке начинаем на шаге 1 только при непосредственномработать будет, ноЭлемент ActiveX разных состояниях - листе. Для этого:
мыши по пустой код обработчика.Private Sub появится сообщение: «Добавить заголовка (шапки) важно.=CHOOSE(VLOOKUP(B1,Sheet3!$A$3:$B$5,2,FALSE),England,France,Portugal)New Name выбрать страну и видите, форма списка в будущем включим
ListBox1.Clear писать «пол» и
именованный диапазон (
вводе значений с
при активации ячейки
office-guru.ru
Выпадающий список в Excel с помощью инструментов или макросов
Сложность режиме отладки, когдаВ Excel 2007/2010 откройте ячейке под столбцом Worksheet_Change(ByVal Target As введенное имя баобаб В нашем примере
=ВЫБОР(ВПР(B1;Sheet3!$A$3:$B$5;2;ЛОЖЬ);England;France;Portugal)(Создание имени). соответствующий ей город. появилась. в это меню.LT = Len(TextBox1.Value) тут же выпадаетне забудьте перед именем клавиатуры. Если Вы не будет появляться
Создание раскрывающегося списка
низкая можно настраивать его вкладку с данными, команда Range) On Error
в выпадающий список?». это ячейка А1Что же делает этаВ поле
- При этом сЗатем мы перемещаемся в
- Эти данные можноIf LT = список со строками, диапазона поставить знак
- попытаетесь вставить в сообщение пользователю осредняя параметры и свойства,
Разработчик (Developer) контекстного меню
Resume Next If
Выпадающий список в Excel с подстановкой данных
Нажмем «Да» и добавиться со словом «Деревья». формула? Она ищетName помощью выпадающих списков, «Режим конструктора». Жмем размещать как на 0 Then Exit
- в которых содержится равенства! ячейку с его предполагаемых действиях,
- высокая двигать его по. В более раннихВыбрать из раскрывающегося списка Not Intersect(Target, Range(«Н2:К2»)) еще одна строка То есть нужно значение из ячейки(Имя) введите имя необходимо ограничить доступные на кнопку «Свойства этом же листе Sub
- эта комбинация:):проверкой данных а вместо сообщенияВозможность настройки шрифта, цвета листу и менять версиях — панель(Choose from drop-down list)
Is Nothing And со значением «баобаб». выбрать стиль таблицы
B1Country
пользователям варианты стран
элемента управления». документа, так иj = 0
ПОЛотенце зеленоеЧтобы Excel позволил намзначения из буфера об ошибке с и т.д. размеры и - инструментов
- или нажать сочетание Target.Cells.Count = 1Когда значения для выпадающего со строкой заголовка.в списке стран
- для нашего первого и городов, изОткрывается окно свойств элемента на другом, еслиiAdr = Sheets(1).UsedRange.Address
- ПОЛено дубовое в будущем ввести обмена, т.е скопированные вашим текстом будетнет режиме ввода, когдаФормы (Forms)
- клавиш Then Application.EnableEvents = списка расположены на Получаем следующий вид и возвращает соответствующий именованного диапазона, а которых они могут управления. В графе вы не хотите,iAdr = Mid(iAdr,переПОЛох в душе в список и предварительно любым способом, появляться стандартное сообщение.нет единственное, что можночерез менюALT+стрелка вниз False If Len(Target.Offset(1, другом листе или диапазона: индекс, который затем в поле выбирать. В первой «ListFillRange» вручную через чтобы обе таблице InStr(iAdr, «:») +Дописываем дальше, «поле» новые имена, снимем то Вам это5.да — выбирать из
- Вид — Панели инструментов. Способ не работает,
- 0)) = 0 в другой книге,Ставим курсор в ячейку, использует функцияRefers to ячейке мы сделаем двоеточие прописываем диапазон располагались визуально вместе.
1) — остается для галочки на вкладках удастся. Более того,Если список значенийКоличество отображаемых строк
него данные. Переключение — Формы (View если ячейку и
Выпадающий список в Excel с данными с другого листа/файла
Then Target.Offset(1, 0) стандартный способ не где будет находитьсяCHOOSE(Диапазон) выберите тот, выбор страны, а ячеек таблицы, данныеВыделяем данные, которые планируемSet sh = выбора одно ПоленоСообщение для ввода (Input
- вставленное значение из находится на другомвсегда 8
- между этими режимами — Toolbars - столбец с данными
= Target Else работает. Решить задачу выпадающий список. Открываем(ВЫБОР), чтобы выбрать в котором хранится во второй будут которой будут формировать занести в раскрывающийся ActiveSheet дубовое.
Как сделать зависимые выпадающие списки
Message)
буфера УДАЛИТ ПРОВЕРКУ листе, то вышеописаннымлюбое происходит с помощью Forms) отделяет хотя бы Target.End(xlDown).Offset(1, 0) = можно с помощью
- параметры инструмента «Проверка 1-й, 2-й или список стран:
- доступны только принадлежащие пункты выпадающего списка. список. Кликаем правойFor Each poiskПодскажите варианты плз.
- и ДАННЫХ И ВЫПАДАЮЩИЙ образом создать выпадающийБыстрый поиск элемента по кнопки. Если этой вкладки одна пустая строка Target End If функции ДВССЫЛ: она данных» (выше описан 3-й именованный диапазон.=Sheet3!$A$3:$A$5 выбранной стране города.
Выбор нескольких значений из выпадающего списка Excel
Далее, кликаем по ячейке, кнопкой мыши, и In Range(«d1:d100»)СпасибоСообщение об ошибке (Error
- СПИСОК ИЗ ЯЧЕЙКИ, список не получится первым буквамРежим Конструктора (Design Mode) не видно, то или вам нужен Target.ClearContents Application.EnableEvents = сформирует правильную ссылку путь). В полеВот так будет выглядетьНажмите Думаю, это понятно? и в контекстном в контекстном менюOn Error ResumeSLAVICK Alert) в которую вставили (до версии Excelнетна вкладке нажмите кнопку товар, который еще True End If на внешний источник «Источник» прописываем такую
- наш второй раскрывающийсяОКИтак, давайте начнём наш меню последовательно переходим выбираем пункт «Присвоить Next: Без примера -и нажмем предварительно скопированное значение. 2010). Для этогонетРазработчик (Developer)Офис — Параметры Excel ни разу не End Sub информации. функцию: список:, чтобы сохранить и
- простой пример с по пунктам «Объект имя…».If poisk Like только ссылка на
ОК Избежать этого штатными
необходимо будет присвоитьда
:- вводился выше:Чтобы выбираемые значения отображались
Делаем активной ячейку, куда
Протестируем. Вот наша таблица
В результате мы получим
закрыть диалоговое окно.
того, как можно ComboBox» и «Edit».Открывается форма создания имени.
"*" & TextBox1.Value похожую тему. Теперь у нас
средствами Excel нельзя.
имя списку. Это
Необходимость использования дополнительной функции
Если эта кнопка нажата,флажок
Выделите ячейки с данными,
в одной ячейке,
хотим поместить раскрывающийся
со списком на два связанных (илиИмена диапазонам, содержащим города, создать связанный (илиВыпадающий список в Microsoft В поле «Имя»
Выпадающий список с поиском
- & «*» ThenНаверное ближе будет есть выпадающий списокЗадача можно сделать несколькоИНДЕКС
- то мы можемОтображать вкладку Разработчик на которые должны попасть разделенные любым знаком список. одном листе:
- зависимых) выпадающих списка. можно присвоить точно
- зависимый) выпадающий список Excel готов. вписываем любое удобноеListBox1.AddItem sh.Name & Эта тема - в ячейке D2.: сделать в ячейке способами.
нет
настраивать параметры выпадающего ленте (Office Button в выпадающий список препинания, применим такойОткрываем параметры проверки данных.Добавим в таблицу новое Если мы выбираем таким же образом. в Excel? ВЧтобы сделать и другие
exceltable.com
Выпадающий список в ячейке листа
Видео
наименование, по которому «!» & poisk.Address там в примере Причем, если, например,
D2 выпадающий список,Первыйда списка, нажав соседнюю
Способ 1. Примитивный
— Excel Options (например, наименованиями товаров). модуль. В поле «Источник» значение «елка». страну Теперь мы можем создать ячейке ячейки с выпадающим будем узнавать данныйListBox1.List(j, 1) = нужно нажать кнопку вручную дописать новое чтобы пользователь мог: выделите список инет кнопку — Show DeveloperЕсли у вас Excel
Способ 2. Стандартный
- Private Sub Worksheet_Change(ByVal вводим формулу: =ДВССЫЛ(“[Список1.xlsx]Лист1!$A$1:$A$9”).Теперь удалим значение «береза».France
- выпадающие списки вB1 списком, просто становимся список. Но, это poisk найти. имя в столбце выбирать имена из кликните правой кнопкойВозможность создания связанных выпадающихСвойства (Properties) Tab in the 2003 или старше Target As Range)Имя файла, из которогоОсуществить задуманное нам помогла, в связанном списке тех ячейках, гдемы будем выбирать на нижний правый наименование должно начинатьсяj = j + 1Wasilich А, то оно списка (столбец А). мыши, в контекстном
- списков, которая откроет окно Ribbon) — выберите вOn Error Resume берется информация для «умная таблица», которая у нас будут планировали выбирать данные. страну, а в край готовой ячейки, обязательно с буквы.End If: Видно надо, что автоматически появится в Если нужного имени меню выберите «нет со списком всех
Найдите значок выпадающего списка меню Next
списка, заключено в
легка «расширяется», меняется. города только из Выделите ячейку ячейке нажимаем кнопку мыши, Можно также вписатьNext то вроде этого! выпадающем списке в нет в списке,Присвоить имяда возможных настроек для среди элементов управленияВставка — Имя -If Not Intersect(Target, квадратные скобки. ЭтотТеперь сделаем так, чтобы
Способ 3. Элемент управления
Франции.B1B2 и протягиваем вниз. примечание, но этоEnd SubSendex ячейке D2, поскольку
- то пользователь может»нет выделенного объекта: форм (не ActiveX!). Присвоить Range(«C2:C5»)) Is Nothing файл должен быть можно было вводитьИз этой статьи Вы(в ней мы– принадлежащий ейТакже, в программе Excel не обязательно. Жмемздесь будет поиск: имена берутся из ввести новое имяДля Excel версийВыпадающий список вСамые нужные и полезные Ориентируйтесь по всплывающим(Insert — Name - And Target.Cells.Count =
- открыт. Если книга новые значения прямо узнали, как можно будем выбирать страну), город, как на можно создавать связанные на кнопку «OK».
в диапазоне Range(«d1:d100»).SLAVICK динамического диапазона People, прямо в ячейку - ниже 2007 те ячейке позволяет пользователю свойства, которые можно подсказкам - Define), 1 Then
- с нужными значениями в ячейку с сделать простейшие связанные откройте вкладку примере:
- выпадающие списки. ЭтоПереходим во вкладку «Данные»Лучше указывать не, спасибо! Второй вариант который автоматически отслеживает
- D2 — оно же действия выглядят выбирать для ввода и нужно настроить:Поле со спискомесли Excel 2007Application.EnableEvents = False находится в другой
этим списком. И выпадающие списки вData
Для начала нужно создать такие списки, когда программы Microsoft Excel. весь столбец а — очень похоже изменения в столбце автоматически добавится к так: только заданные значения.
Способ 4. Элемент ActiveX
ListFillRange: или новее -newVal = Target папке, нужно указывать данные автоматически добавлялись Microsoft Excel. Вы(Данные), нажмите базу данных. На при выборе одного Выделяем область таблицы, диапазон(можно с запасом), на то что
А. столбцу А иВторой Это особенно удобно- диапазон ячеек,Щелкните по значку откройте вкладкуApplication.Undo
путь полностью. в диапазон. можете взять этотData Validation втором листе я значения из списка, где собираемся применять иначе будет тормозить. нужно, который сЩелкаем правой кнопкой мыши начнет отображаться в: воспользуйтесь при работе с откуда берутся данные и нарисуйте небольшойФормулы (Formulas)oldval = TargetВозьмем три именованных диапазона:Сформируем именованный диапазон. Путь: простой пример и(Проверка данных), а
занес список стран, в другой графе выпадающий список. ЖмемWasilich кнопкой «Найти» по ярлычку нашего выпадающем списке вДиспетчером имён файлами структурированными как для списка. Выделить
горизонтальный прямоугольник -и воспользуйтесь кнопкойIf Len(oldval) <>
- Это обязательное условие. Выше «Формулы» — «Диспетчер использовать его для затем в выпадающем которые хочу дать предлагается выбрать соответствующие на кнопку «Проверка:Только он ищет
- листа и выбираем будущем. Вот так(Excel версий выше база данных, когда мышью диапазон он
- будущий список.Диспетчер имен (Name Manager) 0 And oldval
- описано, как сделать имен» — «Создать». решения реальных задач. меню выберите пользователям на выбор
- ему параметры. Например, данных», расположенную наSendex совпадения по всемИсходный текст (View Source)
примерно: 2003 — вкладка ввод несоответствующего значения не даст, надоЩелкните по нарисованному списку, затем <> newVal Then обычный список именованным Вводим уникальное названиеУрок подготовлен для ВасData Validation в первом раскрывающемся при выборе в
Ленте., я так понял, листам, а в. Откроется модуль листаСначала создадим именованный диапазон, « в поле может просто вписать его правой кнопкой мышиСоздатьTarget = Target диапазоном (с помощью диапазона – ОК. командой сайта office-guru.ru(Проверка данных). списке, а в списке продуктов картофеля,Открывается окно проверки вводимых
Итоговая сравнительная таблица всех способов
у Вас WinRAR-a моем случае нужно | в редакторе Visual указывающий на заполненные | Формулы привести к нежелаемым | руками с клавиатуры и выберите команду | |
. Введите имя (можно | & «,» & | «Диспетчера имен»). Помним, | Создаем раскрывающийся список в | |
Источник: http://www.excel-user.com/2011/02/cascading-validation-lists.htmlОткроется диалоговое окно | соседнем столбце указал | предлагается выбрать как | значений. Во вкладке | |
нет? Или не | искать по определенному | Basic, куда надо | ||
именами ячейки в» — группа « | результатам. | (например, Лист2!A1:A5) | Формат объекта (Format control) | |
любое, но обязательно newVal | что имя не | любой ячейке. Как | Перевел: Антон Андронов | |
Data Validation числовой индекс, который | меры измерения килограммы | «Параметры» в поле | подходит? Считаю, отзываться |
planetaexcel.ru
Создание выпадающего списка в ячейке
столбцу. скопировать такой код: столбце А -Определённые именаИтак, для созданияLinkedCell. В появившемся диалоговом без пробелов иElse может содержать пробелов это сделать, ужеАвтор: Антон Андронов
(Проверка вводимых значений). соответствует одному из
и граммы, а «Тип данных» выбираем надо бы вПодскажите пож, какPrivate Sub Worksheet_Change(ByVal сколько бы имен»), который в любой выпадающего списка необходимо:- связанная ячейка, окне задайте начать с буквы!)Target = newVal и знаков препинания. известно. Источник –Под выпадающим списком понимаетсяМы хотим дать пользователю списков городов. Списки при выборе масла параметр «Список». В любом случае. именно указать конкретный
Target As Range) в списке не версии Excel вызывается1.
куда будет выводитьсяФормировать список по диапазону для выделенного диапазонаEnd IfСоздадим первый выпадающий список, имя диапазона: =деревья. содержание в одной
на выбор список городов располагаются правее растительного – литры поле «Источник» ставимНа случай отсутствия диапазон? Dim lReply As находилось. Для этого: сочетанием клавиш
Создать список значений, выбранный из списка- выделите ячейки
(напримерIf Len(newVal) = куда войдут названияСнимаем галочки на вкладках ячейке нескольких значений. вариантов, поэтому в
в столбцах и миллилитры. знак равно, и архиватора, сократил размерПонимаю, что нужно Long If Target.Cells.Countв Excel 2007 иCtrl+F3 которые будут предоставляться элемент с наименованиями товаров,Товары 0 Then Target.ClearContents
диапазонов. «Сообщение для ввода», Когда пользователь щелкает полеDПрежде всего, подготовим таблицу, сразу без пробелов примера. заменить For Each > 1 Then новее — жмем. на выбор пользователюListRows которые должны попасть). НажмитеApplication.EnableEvents = TrueКогда поставили курсор в «Сообщение об ошибке».
по стрелочке справа,Allow, где будут располагаться
пишем имя списка,Sendex sh In ActiveWorkbook.Sheets Exit Sub If на вкладкеКакой бы способ (в нашем примере- количество отображаемых в списокОКEnd If поле «Источник», переходим Если этого не появляется определенный перечень.
(Тип данных) выберитеF выпадающие списки, и которое присвоили ему: на столбец, но Target.Address = «$D$2″Формулы (Formulas) Вы не выбрали это диапазон строкСвязь с ячейкой
.End Sub на лист и сделать, Excel не Можно выбрать конкретное.
Listи
отдельно сделаем списки выше. Жмем наWasilic все криво выходит. Then If IsEmpty(Target)кнопку в итоге ВыM1:M3Font- укажите ячейкуВыделите ячейки (можно сразуНе забываем менять диапазоны
выделяем попеременно нужные позволит нам вводитьОчень удобный инструмент Excel(Список). Это активируетH с наименованием продуктов кнопку «OK»., у меня наЗаранее спасибо! Then Exit SubДиспетчер имен (Name Manager) должны будете ввести), далее выбрать ячейку
- шрифт, размер, куда нужно выводить несколько), в которых на «свои». Списки ячейки. новые значения. для проверки введенных поле. Так, например, рядом и мер измерения.Выпадающий список готов. Теперь, Ваш первый файл200?’200px’:»+(this.scrollHeight+5)+’px’);»>Private Sub TextBox1_Change() If WorksheetFunction.CountIf(Range(«People»), Target)и затем имя (я назвал в которой будет начертание (курсив, подчеркивание порядковый номер выбранного хотите получить выпадающий создаем классическим способом.Теперь создадим второй раскрывающийсяВызываем редактор Visual Basic. данных. Повысить комфортSource
excelworld.ru
Выпадающий список с добавлением новых элементов
сПрисваиваем каждому из списков при нажатии на антивирь ругнулся, поэтомуDim j As = 0 ThenСоздать (New) диапазон со списком выпадающий список (в и т.д. кроме пользователем элемента. список и выберите А всю остальную список. В нем Для этого щелкаем работы с данными(Источник), где необходимоFrance
Шаг 1. Создаем именованный диапазон
именованный диапазон, как кнопку у каждой после того что Long, i As lReply = MsgBox(«Добавитьв Excel 2003 идемlist
- нашем примере это цвета)Количество строк списка в меню (на работу будут делать должны отражаться те правой кнопкой мыши позволяют возможности выпадающих
- указать имя диапазонастоит индекс это мы уже ячейки указанного диапазона уже
Long, poisk As введенное имя « в меню) и адрес самого ячейкаForeColor
- сколько строк
вкладке) макросы.
слова, которые соответствуют
по названию листа списков: подстановка данных, со странами. Введите2 делали ранее с будет появляться списокSLAVICK
Шаг 2. Создаем выпадающий список в ячейке
Range, iAdr$, LT%,
- & _ TargetВставка — Имя - диапазона (в нашемК1и показывать в выпадающем
- Данные — Проверка (DataНа вкладке «Разработчик» находим выбранному в первом и переходим по отображение данных другого в этом поле
, который соответствует списку обычными выпадающими списками. параметров, среди которыхпредложил, не стал sh As Worksheet & » в Присвоить (Insert - примере это), потом зайти воBackColor списке. По умолчанию — Validation) инструмент «Вставить» – списке названию. Если вкладке «Исходный текст».
листа или файла, «=Country» и жмите городовВ первой ячейке создаём можно выбрать любой больше пробовать.ListBox1.Clear выпадающий список?», vbYesNo Name — Define)’2′!$A$1:$A$3 вкладку «- цвет текста — 8, но. Из выпадающего списка «ActiveX». Здесь нам «Деревья», то «граб», Либо одновременно нажимаем наличие функции поискаОК2 список точно таким для добавления вСейчас посмотрел, этоLT = Len(TextBox1.Value) + vbQuestion) IfЗатем вводим имя диапазона)
Шаг 3. Добавляем простой макрос
Данные и фона, соответственно можно больше, чегоТип данных (Allow) нужна кнопка «Поле «дуб» и т.д. клавиши Alt + и зависимости.
. Теперь нам нужно. Позже Вы увидите, же образом, как ячейку. максимально упрощенный вариант,If LT = lReply = vbYes (допустим6.», группа «Большим и жирным плюсом не позволяет предыдущийвыберите вариант со списком» (ориентируемся Вводим в поле F11. Копируем кодПуть: меню «Данные» - сделать второй раскрывающийся как этот индекс делали это ранее,Второй способ предполагает создание тоже возьму на 0 Then Exit
Then Range(«People»).Cells(Range(«People»).Rows.Count +PeopleТеперь в ячейкеРабота с данными этого способа является способ.Список (List) на всплывающие подсказки). «Источник» функцию вида (только вставьте свои
инструмент «Проверка данных» список, чтобы пользователи будет использован. через проверку данных.
выпадающего списка с заметку. В любом Sub 1, 1) =) и в строку с выпадающим списком», кнопка «
planetaexcel.ru
Выпадающее меню со списком, содержащим вводимые буквы. (Макросы/Sub)
возможность быстрого переходаПосле нажатия на
и введите вЩелкаем по значку – =ДВССЫЛ(E3). E3 –
параметры).Private Sub Worksheet_Change(ByVal — вкладка «Параметры».
могли выбрать город.
Если Вы работаете в
Во второй ячейке тоже
помощью инструментов разработчика,
случае — большоеj = 0 Target End IfСсылка (Reference) укажите в полеПроверка данных
к нужному элементу
ОК
строчку
становится активным «Режим ячейка с именем Target As Range) Тип данных –
Мы поместим этот
Excel 2010, то
запускаем окно проверки а именно с спасибо за отклик!iAdr = Sheets(1).UsedRange.Address
End If Endвводим следующую формулу: «Источник» имя диапазона» в списке при
списком можно пользоваться.Источник (Source) конструктора». Рисуем курсором
первого диапазона. Dim lReply As «Список». раскрывающийся список в можете создать лист-источник данных, но в использованием ActiveX. По И сорри, что
iAdr = Mid(iAdr, If End Sub=СМЕЩ(Лист1!$A$1;0;0;СЧЁТЗ(Лист1!$A$1:$A$24);1)7.Для Excel версий вводе первых букв
Чтобы вместо порядкового номеразнак равенства и (он становится «крестиком»)
Бывает, когда из раскрывающегося Long If Target.Cells.CountВвести значения, из которых ячейку в отдельной рабочей
графе «Источник» вводим
умолчанию, функции инструментов
не вовремя. InStr(iAdr, ":") +Если Ваш выпадающий списокв английской версии ExcelГотово!
ниже 2007 те
с клавиатуры(!), чего
элемента выводилось его имя диапазона (т.е. небольшой прямоугольник –
списка необходимо выбрать
> 1 Then
будет складываться выпадающийB2 книге. Если же
функцию «=ДВССЫЛ» и разработчика отсутствуют, поэтому
SLAVICK 1)
находится не в это будет:
Для полноты картины же действия выглядят нет у всех
название можно дополнительно=Товары
место будущего списка. сразу несколько элементов.
Exit Sub If
список, можно разными
. А теперь внимание
у Вас версия
адрес первой ячейки.
нам, прежде всего,, спасибо за обаFor Each sh ячейке D2 или=OFFSET(Лист1!$A$1,0,0,COUNTA(Лист1!$A$1:$A$24),1)
добавлю, что список так:
остальных способов. Приятным
использовать функцию).Жмем «Свойства» – открывается Рассмотрим пути реализации Target.Address = "$C$2"
способами:
– фокус! Нам
Excel 2003 года, Например, =ДВССЫЛ($B3). нужно будет их
варианта! И отдельное
In ActiveWorkbook.Sheets
Вы назвали диапазонЭта формула ссылается на значений можно ввести
2. моментом, также, является
ИНДЕКС (INDEX)Нажмите
перечень настроек. задачи.
Then If IsEmpty(Target)Вручную через «точку-с-запятой» в нужно проверить содержимое
и Вы планируетеКак видим, список создан.
включить. Для этого, огромное спасибо за
For Each poisk
с именами не
все заполненные ячейки
и непосредственно в
Выбираем « возможность настройки визуального
, которая умеет выводитьОКВписываем диапазон в строкуСоздаем стандартный список с
Then Exit Sub поле «Источник». ячейки с названием использовать именованный диапазон,Теперь, чтобы и нижние переходим во вкладку доработку, все работает In sh.UsedRangePeople
в столбце А, проверку данных, неТип данных
представления (цветов, шрифтов содержимое нужной по. ListFillRange (руками). Ячейку, помощью инструмента «Проверка If WorksheetFunction.CountIf(Range(«Деревья»), Target)Ввести значения заранее. А страны (ячейка B1), то значения должны ячейки приобрели те «Файл» программы Excel,
как надо!On Error Resume, а как-то еще, начиная с А1 прибегая к вынесению» -« и т.д.) счету ячейки из
Все! Наслаждайтесь! куда будет выводиться данных». Добавляем в = 0 Then в качестве источника чтобы получить индекс
excelworld.ru
находиться в той
#Руководства
- 14 апр 2022
-
0
Упрощаем заполнение таблицы повторяющимися данными.
Иллюстрация: Meery Mary для Skillbox Media
Рассказывает просто о сложных вещах из мира бизнеса и управления. До редактуры — пять лет в банке и три — в оценке имущества. Разбирается в Excel, финансах и корпоративной жизни.
Выпадающий список в Excel позволяет выбирать значение ячейки таблицы из перечня, подготовленного заранее.
Опция пригодится, когда нужно много раз вводить повторяющиеся параметры. Например, фамилии сотрудников в графике рабочих смен или наименования товаров в прайсе. Во-первых, с выпадающими списками не придётся вводить одни и те же данные несколько раз. Во-вторых, уменьшится вероятность опечаток.
Разберёмся на примере с каталогом авто, как сделать выпадающие списки. У нас есть перечень автомобилей. Нужно заполнить столбцы с их характеристиками: тип коробки передач, тип привода и положение руля. Значения будут повторяться, поэтому выпадающие списки ускорят заполнение таблицы. Можно заполнить её полностью в два шага: сначала создаём значения выпадающего списка, потом выбираем нужные.
Скриншот: Skillbox Media
Создаём новый лист — для удобства можно назвать его «Данные для выпадающего списка». На нём вбиваем значения, которые будем использовать в выпадающих списках. В нашем случае будет три столбца — «Коробка передач», «Привод» и «Руль» — и значения под ними.
Скриншот: Skillbox Media
Возвращаемся на лист с основной таблицей. Выделяем пустые ячейки первого столбца, где нужно применить выпадающий список, — в нашем случае ячейки столбца с видом коробки передач.
Скриншот: Skillbox Media
Переходим на вкладку «Данные» и кликаем по кнопке «Проверка данных».
Скриншот: Skillbox Media
Открывается окно «Проверка данных». На вкладке «Параметры» в поле «Разрешить» выбираем пункт «Список».
Скриншот: Skillbox Media
Ставим курсор в поле «Источник» и, не закрывая это окно, переходим на второй лист с данными для выпадающего списка.
Скриншот: Skillbox Media
На листе с данными для списка выделяем столбец с нужными параметрами. В нашем случае значения столбца «Коробка передач» — автомат, механика, вариатор.
Скриншот: Skillbox Media
Выделенный диапазон появится в поле «Источник» в открытом окне «Проверка данных». Сохраняем изменения — нажимаем на кнопку «ОК». Всплывающий список готов, осталось заполнить таблицу.
Скриншот: Skillbox Media
Когда сохраните выпадающий список, Excel перенесёт вас на первый лист с характеристиками авто. Справа от первой ячейки столбца с коробками передач появилась стрелочка. Если кликнуть по ней, появится список со значениями.
Скриншот: Skillbox Media
Кликаем на каждую ячейку столбца, справа от неё появляется стрелочка — выбираем нужное значение. Так проходим до конца таблицы.
Скриншот: Skillbox Media
По такому же принципу создаём выпадающие списки для оставшихся двух столбцов. Выделяем столбец, в котором нужно применить выпадающий список, и выбираем для него соответствующий диапазон значений. Для столбца «Привод» — диапазон значений «передний», «задний» и «4WD», для столбца «Руль» — диапазон значений «правый» и «левый».
Так получаем выпадающие списки для всех незаполненных ячеек. Не пишем параметры вручную, а выбираем их парой кликов мышкой.
Скриншот: Skillbox Media
Если в эту таблицу добавить больше строк (автомобилей), не обязательно создавать новые выпадающие списки для них. Можно протянуть вниз значения уже созданных:
- Очистим значения последней заполненной строки таблицы. Это нужно, чтобы протянулись пустые ячейки с выпадающими списками, а не уже выбранные значения.
- Выделим одновременно три столбца и в правом нижнем углу крайнего столбца найдём значок плюса.
- Захватим его и растянем вниз на все автомобили, добавленные в таблицу.
Скриншот: Skillbox Media
Готово — теперь в новых строках таблицы тоже можно выбирать значения из выпадающего списка.
Интересные методы, которые пригодятся менеджерам
- «Рыбьи кости» Исикавы для поиска настоящих причин проблем в бизнесе
- PEST-анализ для предсказания будущего компании
- Матрица БКГ: определяем, в какой проект стоит инвестировать, а в какой — нет
- SWOT-анализ: ищем возможности для развития и предстоящие проблемы
- «Съешь лягушку»: метод для управления временем
Научитесь: Excel + Google Таблицы с нуля до PRO
Узнать больше