Макрос excel выпадающий список в одной строке

Ранее в публикациях рассказывалось о том, как создается выпадающий список в ячейках для упрощения внесения данных.
Ссылка на описания метода создания связанного выпадающего списка ниже:

Как сделать связанный выпадающий список в «Эксель», зависящий от значения в соседней ячейке.

В данной публикации описана процедура создания выпадающих списков, которые записывают в ячейки по нескольку значений.

Для начала следует создать обыкновенный выпадающий список.

Для этого необходимо:

  • Войти во вкладку «Данные»;
  • Выбрать опцию «Проверка данных»;
  • Выбрать «Список»;
  • Указать диапазон, из которого будет выбираться выпадающий список или создать список прямо в появившемся поле через знак «;».

После этой процедуры следует записать макрос в документ.

Для записи макроса следует:

  • Открыть вкладку «Разработчик» ( Если вкладка отключена, включите ее в разделе Файл=> Параметры=> Настройка Ленты);

Разработчик

  • Во вкладке «Разработчик» выбрать кнопку «Просмотр кода»;
  • В открывшееся окно записать макрос;

Макрос

  • Закрыть окно с макросом.

Давайте рассмотрим несколько макросов с выпадающими списками.

Первый макрос со смещением списка в сторону (горизонтально).

Горизонтальный список
Текст макроса:
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
указывается разделитель «//». Его можно заменить на любой знак препинания, текст или поставить пробел.

Выпадающий список с мультивыбором

Классический выпадающий список на листе Excel — отличная штука, но позволяет выбрать только один вариант из представленного набора. Иногда именно это и нужно, но бывают ситуации, когда пользователь должен иметь возможность выбрать несколько элементов из списка.

Давайте рассмотрим несколько типовых вариантов реализации такого списка с мультивыбором.

Вариант 1. Горизонтальный

Пользователь выбирает из выпадающего списка элементы один за другим, и они появляются справа от изменяемой ячейки, автоматически составляясь в список по горизонтали:

dropdown-multi-select1.gif

Выпадающие списки в ячейках С2:С5 в данном примере создаются стандартным образом, т.е.

  1. выделить ячейки С2:С5
  2. на вкладке или в меню Данные (Data) выбрать команду Проверка данных (Data Validation)
  3. в открывшемся окне выбрать вариант Список (List) и указать в качестве диапазона Источник (Source) ячейки с исходными данными для списка A1:A8

Затем в модуль листа нужно добавить макрос, который и будет делать всю основную работу, т.е. добавлять выбранные значения справа от зеленых ячеек. Для этого щелкните правой кнопкой мыши по ярлычку листа с выпадающими списками и выберите команду Исходный текст (Source code). В открывшееся окно редактора Visual Basic нужно вставить следующий код:

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
        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

При необходимости, замените во второй строке этого кода чувствительный диапазон выпадающих списков С2:С5 на свой.

Вариант 2. Вертикальный

То же самое, что и в предыдущем варианте, но новые выбранные значения добавляются не справа, а снизу:

dropdown-multi-select2.gif

Делается совершенно аналогично, но немного меняется код макроса обработчика:

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

Опять же, при необходимости, замените во второй строке этого кода чувствительный диапазон выпадающих списков С2:F2 на свой.

Вариант 3. С накоплением в той же ячейке

В этом варианте накопление происходит в той же ячейке, где расположен выпадающий список. Выбранные элементы разделяются любым заданным символом (например, запятой):

dropdown-multi-select3.gif

Выпадающие списки в зеленых ячейках создаются совершенно стандартно, как и в предыдущих способах. Всю работу делает, опять же, макрос в модуле листа:

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

При желании, можно заменить символ-разделитель (запятую) в 9-й строке кода на свой (например, пробел или точку с запятой).

Ссылки по теме

  • Как создать простой выпадающий список в ячейке листа Excel
  • Выпадающий список с наполнением
  • Выпадающий список с добавлением недостающих вариантов
  • Что такое макросы, как их использовать, куда вставлять код макросов на Visual Basic

Под выпадающим списком понимается содержание в одной ячейке нескольких значений. Когда пользователь щелкает по стрелочке справа, появляется определенный перечень. Можно выбрать конкретное.

Очень удобный инструмент Excel для проверки введенных данных. Повысить комфорт работы с данными позволяют возможности выпадающих списков: подстановка данных, отображение данных другого листа или файла, наличие функции поиска и зависимости.

Создание раскрывающегося списка

Путь: меню «Данные» — инструмент «Проверка данных» — вкладка «Параметры». Тип данных – «Список».

Создание выпадающего списка.

Ввести значения, из которых будет складываться выпадающий список, можно разными способами:

  1. Вручную через «точку-с-запятой» в поле «Источник».
  2. Ввод значений.

  3. Ввести значения заранее. А в качестве источника указать диапазон ячеек со списком.
  4. Проверка вводимых значений.

  5. Назначить имя для диапазона значений и в поле источник вписать это имя.

Имя диапазона.
Раскрывающийся список.

Любой из вариантов даст такой результат.



Выпадающий список в Excel с подстановкой данных

Необходимо сделать раскрывающийся список со значениями из динамического диапазона. Если вносятся изменения в имеющийся диапазон (добавляются или удаляются данные), они автоматически отражаются в раскрывающемся списке.

  1. Выделяем диапазон для выпадающего списка. В главном меню находим инструмент «Форматировать как таблицу».
  2. Форматировать как таблицу.

  3. Откроются стили. Выбираем любой. Для решения нашей задачи дизайн не имеет значения. Наличие заголовка (шапки) важно. В нашем примере это ячейка А1 со словом «Деревья». То есть нужно выбрать стиль таблицы со строкой заголовка. Получаем следующий вид диапазона:
  4. Выпадающий список.

  5. Ставим курсор в ячейку, где будет находиться выпадающий список. Открываем параметры инструмента «Проверка данных» (выше описан путь). В поле «Источник» прописываем такую функцию:

Ввод значения в источник.

Протестируем. Вот наша таблица со списком на одном листе:

Список и таблица.

Добавим в таблицу новое значение «елка».

Добавлено значение елка.

Теперь удалим значение «береза».

Удалено значение береза.

Осуществить задуманное нам помогла «умная таблица», которая легка «расширяется», меняется.

Теперь сделаем так, чтобы можно было вводить новые значения прямо в ячейку с этим списком. И данные автоматически добавлялись в диапазон.

Ввод данных из списка.

  1. Сформируем именованный диапазон. Путь: «Формулы» — «Диспетчер имен» — «Создать». Вводим уникальное название диапазона – ОК.
  2. Создание имени.

  3. Создаем раскрывающийся список в любой ячейке. Как это сделать, уже известно. Источник – имя диапазона: =деревья.
  4. Снимаем галочки на вкладках «Сообщение для ввода», «Сообщение об ошибке». Если этого не сделать, Excel не позволит нам вводить новые значения.
  5. Сообщение об ошибке.

  6. Вызываем редактор Visual Basic. Для этого щелкаем правой кнопкой мыши по названию листа и переходим по вкладке «Исходный текст». Либо одновременно нажимаем клавиши Alt + F11. Копируем код (только вставьте свои параметры).
  7. 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
     
  8. Сохраняем, установив тип файла «с поддержкой макросов».
  9. Сообщение об ошибке.

  10. Переходим на лист со списком. Вкладка «Разработчик» — «Код» — «Макросы». Сочетание клавиш для быстрого вызова – Alt + F8. Выбираем нужное имя. Нажимаем «Выполнить».

Макрос.

Когда мы введем в пустую ячейку выпадающего списка новое наименование, появится сообщение: «Добавить введенное имя баобаб в выпадающий список?».

Нажмем «Да» и добавиться еще одна строка со значением «баобаб».

Выпадающий список в Excel с данными с другого листа/файла

Когда значения для выпадающего списка расположены на другом листе или в другой книге, стандартный способ не работает. Решить задачу можно с помощью функции ДВССЫЛ: она сформирует правильную ссылку на внешний источник информации.

  1. Делаем активной ячейку, куда хотим поместить раскрывающийся список.
  2. Открываем параметры проверки данных. В поле «Источник» вводим формулу: =ДВССЫЛ(“[Список1.xlsx]Лист1!$A$1:$A$9”).

Имя файла, из которого берется информация для списка, заключено в квадратные скобки. Этот файл должен быть открыт. Если книга с нужными значениями находится в другой папке, нужно указывать путь полностью.

Как сделать зависимые выпадающие списки

Возьмем три именованных диапазона:

Три именованных диапазона.

Это обязательное условие. Выше описано, как сделать обычный список именованным диапазоном (с помощью «Диспетчера имен»). Помним, что имя не может содержать пробелов и знаков препинания.

  1. Создадим первый выпадающий список, куда войдут названия диапазонов.
  2. Список диапазонов.

  3. Когда поставили курсор в поле «Источник», переходим на лист и выделяем попеременно нужные ячейки.
  4. Таблица со списком.

  5. Теперь создадим второй раскрывающийся список. В нем должны отражаться те слова, которые соответствуют выбранному в первом списке названию. Если «Деревья», то «граб», «дуб» и т.д. Вводим в поле «Источник» функцию вида =ДВССЫЛ(E3). E3 – ячейка с именем первого диапазона.
  6. Второй раскрывающийся список.

    Выбор нескольких значений из выпадающего списка Excel

    Бывает, когда из раскрывающегося списка необходимо выбрать сразу несколько элементов. Рассмотрим пути реализации задачи.

    1. Создаем стандартный список с помощью инструмента «Проверка данных». Добавляем в исходный код листа готовый макрос. Как это делать, описано выше. С его помощью справа от выпадающего списка будут добавляться выбранные значения.
    2. 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
       
    3. Чтобы выбранные значения показывались снизу, вставляем другой код обработчика.
    4. 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
       
    5. Чтобы выбираемые значения отображались в одной ячейке, разделенные любым знаком препинания, применим такой модуль.

    6. 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

    Не забываем менять диапазоны на «свои». Списки создаем классическим способом. А всю остальную работу будут делать макросы.

    Выпадающий список с поиском

    1. На вкладке «Разработчик» находим инструмент «Вставить» – «ActiveX». Здесь нам нужна кнопка «Поле со списком» (ориентируемся на всплывающие подсказки).
    2. Вставить ActiveX.

    3. Щелкаем по значку – становится активным «Режим конструктора». Рисуем курсором (он становится «крестиком») небольшой прямоугольник – место будущего списка.
    4. Элемент ActiveX.

    5. Жмем «Свойства» – открывается перечень настроек.
    6. Свойства ActiveX.

    7. Вписываем диапазон в строку ListFillRange (руками). Ячейку, куда будет выводиться выбранное значение – в строку LinkedCell. Для изменения шрифта и размера – Font.

    Скачать пример выпадающего списка

    При вводе первых букв с клавиатуры высвечиваются подходящие элементы. И это далеко не все приятные моменты данного инструмента. Здесь можно настраивать визуальное представление информации, указывать в качестве источника сразу два столбца.

Microsoft Excel: выпадающие списки

Выпадающий список в Microsoft Excel

​Смотрите также​ Next​ то подправьте эти​ и вниз до​ значений на лист​Список​При использовании этого способа,​ диапазона:​Важный нюанс. В качестве​ выбранное значение –​ исходный код листа​ lReply = MsgBox(«Добавить​

​ указать диапазон ячеек​ соответствующий базе данных​

Создание дополнительного списка

​ же книге, можно​ же свойства, как​ а затем кликаем​При работе в программе​If poisk Like​ параметры в макросе​

​ конца — до​ (это так же​» и указываем диапазон​ также возможно указывать​Этот способ частично напоминает​ источника данных для​ в строку LinkedCell.​ готовый макрос. Как​ введенное имя «​ со списком.​ с городами. Если​ на другом листе.​ и в предыдущий​ по надписи «Параметры».​ Microsoft Excel в​

tablitsa-zagotovka-i-spisok-v-microsoft-excel

​ «*» & TextBox1.Value​ на свои.​ последнего имени.​ позволит работать со​ списка​ в качестве​ предыдущий. Основное отличие​

Присвоение имени в Microsoft Excel

​ списка может выступать​ Для изменения шрифта​ это делать, описано​ & _ Target​Назначить имя для диапазона​ пользователь выберет​Мы будем использовать именованные​ раз, выделяем верхние​В открывшемся окне переходим​ таблицах с повторяющимися​ & «*» Then​Всё! Теперь при попытке​

Создание имени в Microsoft Excel

​Выделяем ячейку D2 и​ списком на любом​3.​ListFillRange​ в том, что​ и динамический именованный​ и размера –​ выше. С его​

Проверка данных в Microsoft Excel

​ & » в​ значений и в​Portugal​ диапазоны и сделаем​ ячейки, и при​ в подраздел «Настройка​ данными, очень удобно​ListBox1.AddItem sh.Name &​ ввести новое имя​в Excel 2007 и​ листе). Делается это​Если есть желание​

Параметры вводимых значений в Microsoft Excel

​не только одномерные​ на лист добавляется​ диапазон, например прайс-лист.​ Font.​ помощью справа от​ выпадающий список?», vbYesNo​ поле источник вписать​, то мы должны​ так, чтобы эти​

Выпадающий список в программе Microsoft Excel

Создание выпадающего списка с помощью инструментов разработчика

​ нажатой клавише мышки​ ленты», и ставим​ использовать выпадающий список.​ «!» & poisk.Address​ в ячейку D2​ новее — жмем​ так:​ подсказать пользователю о​ диапазоны. Можно, например​ не элемент управления,​ Тогда при дописывании​Скачать пример выпадающего списка​ выпадающего списка будут​ + vbQuestion) If​

Переход в параметры Microsoft Excel

​ это имя.​ обратиться к базе​ связанные выпадающие списки​ «протаскиваем» вниз.​ флажок напротив значения​ С его помощью​

Включение режима разработчика в Microsoft Excel

​ListBox1.List(j, 1) =​ Excel будет спрашивать​ на вкладке​То есть вручную,​ его действиях, то​ задать диапазон из​ а элемент ActiveX​ новых товаров к​При вводе первых букв​ добавляться выбранные значения.Private​ lReply = vbYes​Любой из вариантов даст​ с индексом​ работали во всех​

Выбор поля со списком в Microsoft Excel

​Всё, таблица создана.​ «Разработчик». Жмем на​ можно просто выбирать​ poisk​… и при утвердительном​

Форма списка в Microsoft Excel

​Данные (Data)​ через​ переходим во вкладку​ двух столбцов и​

Переход в свойства элемента управления в Microsoft Excel

​»Поле со списком»​ прайсу, они будут​ с клавиатуры высвечиваются​ Sub Worksheet_Change(ByVal Target​ Then Range(«Деревья»).Cells(Range(«Деревья»).Rows.Count +​ такой результат.​3​

Свойства элемента управления в Microsoft Excel

​ версиях Excel. Следующий​Мы разобрались, как сделать​ кнопку «OK».​ нужные параметры из​j = j + 1​

Редактирование в Microsoft Excel

​ ответе пользователя автоматически​кнопку​

Выпадающий список в приложении Microsoft Excel

​;​ «​ нескольких строк, указав​из раскрывающегося набора​ автоматически добавляться к​ подходящие элементы. И​ As Range) On​

Протягивание выпадающего списка в Microsoft Excel

Связанные списки

​ 1, 1) =​​, в которой хранятся​ шаг – создать​ выпадающий список в​После этого, на ленте​ сформированного меню. Давайте​End If​ добавлять новое имя​Проверка данных (Data Validation)​(точка с запятой) вводим​Сообщение для ввода​ дополнительно, что выводить​ под кнопкой​ выпадающему списку. Еще​ это далеко не​ Error Resume Next​

​ Target End If​Необходимо сделать раскрывающийся список​ названия городов Португалии.​ именованные диапазоны для​ Экселе. В программе​ появляется вкладка с​

Таблицы в Microsoft Excel

​ выясним, как сделать​Next​ к списку в​в Excel 2003 и​ список в поле​

Присваивание имени в Microsoft Excel

​» и заполняем заголовок​ нужно два столбца​Вставить (Insert)​ одним часто используемым​ все приятные моменты​

Ввод данных в Microsoft Excel

​ If Not Intersect(Target,​ End If End​ со значениями из​ Мы воспользуемся функцией​ наших списков. На​ можно создавать, как​ названием «Разработчик», куда​

Ввод данных для второй ячейки в Microsoft Excel

​ раскрывающийся список различными​

Список создан в Microsoft Excel

​Next​ столбце А и​ старше — выбираем​ «​ и текст сообщения​ (свойство​с вкладки​ трюком для таких​

Таблица создана в Microsoft Excel

​ данного инструмента. Здесь​

​ 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)​​ в котором мы​ с выпадающим списком​ весьма привлекательные результаты,​

Связанный выпадающий список в Excel

​Механизм добавления тот же​ (когда содержимое одного​ в качестве источника​ = False If​Переходим на лист со​ или удаляются данные),​B1​Name Manager​ использовать различные методы​ должен стать выпадающим​Самым удобным, и одновременно​ # (поправил за​: Всем привет!​.​​ хотим его видеть​​4.​​ окупающие все потраченные​​ — выбираем объект​​ списка меняется в​​ сразу два столбца.​ Len(Target.Offset(0, 1)) =​​ списком. Вкладка «Разработчик»​​ они автоматически отражаются​​в таблице с​​(Диспетчер имён). Нажав​ создания. Выбор зависит​​ меню. Затем, кликаем​​ наиболее функциональным способом​ Вас). И Правила​Искал что-то подобное​

Связанный выпадающий список в Excel

​Далее выбираем из выпадающего​ (значения введённые слева-направо​Так же необязательно​ на дополнительные настройки​ из списка и​ зависимости от выбора​У кого мало времени​ 0 Then Target.Offset(0,​ — «Код» -​ в раскрывающемся списке.​ названиями стран. После​ на нее, откроется​ от конкретного предназначения​

​ на Ленте на​ создания выпадающего списка,​ форума почитайте.​ обсуждавшееся, но не​ списка​ будут отображаться в​ можно создать и​ усилия:​ рисуем его на​ в другом).​​ и нужно быстро​​ 1) = Target​​ «Макросы». Сочетание клавиш​​Выделяем диапазон для выпадающего​ того как индекс​ диалоговое окно​​ списка, целей его​​ значок «Вставить», и​

Связанный выпадающий список в Excel

​ является метод, основанный​​SLAVICK​​ нашел.​Тип данных (Allow)​ ячейке сверху вниз).​​ сообщение, которое будет​​Способ 1.​

Связанный выпадающий список в Excel

​ листе. А вот​​Этот способ представляет собой​​ ухватить суть -​​ Else Target.End(xlToRight).Offset(0, 1)​​ для быстрого вызова​ списка. В главном​ будет известен, мы​​Name Manager​​ создания, области применения,​ среди появившихся элементов​ на построении отдельного​

​: Попробуйте так:​

​В чем суть.​​позицию​​При всех своих​ появляться при попытке​

Связанный выпадающий список в Excel

​Примитивный​ дальше начинаются серьезные​ вставку на лист​

​ смотрим обучающее видео:​ = Target End​ – Alt +​ меню находим инструмент​ выберем список, который​​(Диспетчер имён).​​ и т.д.​ в группе «Элемент​ списка данных.​​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Private Sub TextBox1_Change()​​ Допустим есть список:​​Список (List)​​ плюсах выпадающий список,​ ввести неправильные данные​Способ 2.​​ отличия от предыдущего​​ нового объекта -​

Связанный выпадающий список в Excel

​Кому интересны подробности и​​ If Target.ClearContents Application.EnableEvents​​ F8. Выбираем нужное​

Связанный выпадающий список в Excel

​ «Форматировать как таблицу».​ станет источником данных​Нажмите кнопку​Автор: Максим Тютюшев​​ 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.​ в двух принципиально​ к диапазонам на​​Один щелчок правой кнопкой​​ снизу, вставляем другой​ списка новое наименование,​ имеет значения. Наличие​

​ формулу:​ Откроется диалоговое окно​ табличку, где можно​

Связанный выпадающий список в Excel

​ со списком. Как​ списком данные, которые​ sh As Worksheet​В ячейке начинаем​ на шаге 1​​ только при непосредственном​​работать будет, но​Элемент ActiveX​ разных состояниях -​ листе. Для этого:​

Связанный выпадающий список в Excel

​ мыши по пустой​ код обработчика.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​Что же делает эта​В поле​

  1. ​ При этом с​Затем мы перемещаемся в​Ввод значений.
  2. ​ Эти данные можно​If LT =​ список со строками,​ диапазона поставить знак​Проверка вводимых значений.
  3. ​ попытаетесь вставить в​ сообщение пользователю о​средняя​ параметры и свойства,​

Имя диапазона. Раскрывающийся список.

​Разработчик (Developer)​ контекстного меню​

​ Resume Next If​

Выпадающий список в Excel с подстановкой данных

​Нажмем «Да» и добавиться​ со словом «Деревья».​ формула? Она ищет​Name​ помощью выпадающих списков,​ «Режим конструктора». Жмем​ размещать как на​ 0 Then Exit​

  1. ​ в которых содержится​ равенства!​ ячейку с​ его предполагаемых действиях,​Форматировать как таблицу.
  2. ​высокая​ двигать его по​. В более ранних​Выбрать из раскрывающегося списка​ Not Intersect(Target, Range(«Н2:К2»))​ еще одна строка​ То есть нужно​ значение из ячейки​(Имя) введите имя​ необходимо ограничить доступные​ на кнопку «Свойства​ этом же листе​ Sub​Выпадающий список.
  3. ​ эта комбинация:​):​проверкой данных​ а вместо сообщения​Возможность настройки шрифта, цвета​ листу и менять​ версиях — панель​(Choose from drop-down list)​

Ввод значения в источник.

​ Is Nothing And​ со значением «баобаб».​ выбрать стиль таблицы​

Список и таблица.

​B1​Country​

Добавлено значение елка.

​ пользователям варианты стран​

Удалено значение береза.

​ элемента управления».​ документа, так и​j = 0​

​ПОЛотенце зеленое​Чтобы Excel позволил нам​значения из буфера​ об ошибке с​ и т.д.​ размеры и -​ инструментов​

Ввод данных из списка.

  1. ​или нажать сочетание​ Target.Cells.Count = 1​Когда значения для выпадающего​ со строкой заголовка.​в списке стран​Создание имени.
  2. ​для нашего первого​ и городов, из​Открывается окно свойств элемента​ на другом, если​iAdr = Sheets(1).UsedRange.Address​
  3. ​ПОЛено дубовое​ в будущем ввести​ обмена, т.е скопированные​ вашим текстом будет​нет​ режиме ввода, когда​Формы (Forms)​Сообщение об ошибке.
  4. ​ клавиш​ Then Application.EnableEvents =​ списка расположены на​ Получаем следующий вид​ и возвращает соответствующий​ именованного диапазона, а​ которых они могут​ управления. В графе​ вы не хотите,​iAdr = Mid(iAdr,​переПОЛох в душе​ в список и​ предварительно любым способом,​ появляться стандартное сообщение.​нет​ единственное, что можно​через меню​ALT+стрелка вниз​ False If Len(Target.Offset(1,​ другом листе или​ диапазона:​ индекс, который затем​ в поле​ выбирать. В первой​ «ListFillRange» вручную через​ чтобы обе таблице​ InStr(iAdr, «:») +​Дописываем дальше, «поле»​ новые имена, снимем​ то Вам это​5.​да​ — выбирать из​
  5. ​Вид — Панели инструментов​. Способ не работает,​Сообщение об ошибке.
  6. ​ 0)) = 0​ в другой книге,​Ставим курсор в ячейку,​ использует функция​Refers to​ ячейке мы сделаем​ двоеточие прописываем диапазон​ располагались визуально вместе.​

Макрос.

​ 1)​ — остается для​ галочки на вкладках​ удастся. Более того,​Если список значений​Количество отображаемых строк​

​ него данные. Переключение​ — Формы (View​ если ячейку и​

Выпадающий список в Excel с данными с другого листа/файла

​ Then Target.Offset(1, 0)​ стандартный способ не​ где будет находиться​CHOOSE​(Диапазон) выберите тот,​ выбор страны, а​ ячеек таблицы, данные​Выделяем данные, которые планируем​Set sh =​ выбора одно Полено​Сообщение для ввода (Input​

  1. ​ вставленное значение из​ находится на другом​всегда 8​
  2. ​ между этими режимами​ — Toolbars -​ столбец с данными​

​ = Target Else​ работает. Решить задачу​ выпадающий список. Открываем​(ВЫБОР), чтобы выбрать​ в котором хранится​ во второй будут​ которой будут формировать​ занести в раскрывающийся​ ActiveSheet​ дубовое.​

Как сделать зависимые выпадающие списки

​ Message)​

Три именованных диапазона.

​ буфера УДАЛИТ ПРОВЕРКУ​ листе, то вышеописанным​любое​ происходит с помощью​ Forms)​ отделяет хотя бы​ Target.End(xlDown).Offset(1, 0) =​ можно с помощью​

  1. ​ параметры инструмента «Проверка​ 1-й, 2-й или​ список стран:​Список диапазонов.
  2. ​ доступны только принадлежащие​ пункты выпадающего списка.​ список. Кликаем правой​For Each poisk​Подскажите варианты плз.​Таблица со списком.
  3. ​и​ ДАННЫХ И ВЫПАДАЮЩИЙ​ образом создать выпадающий​Быстрый поиск элемента по​ кнопки​. Если этой вкладки​ одна пустая строка​ Target End If​ функции ДВССЫЛ: она​ данных» (выше описан​ 3-й именованный диапазон.​=Sheet3!$A$3:$A$5​ выбранной стране города.​Второй раскрывающийся список.

    Выбор нескольких значений из выпадающего списка Excel

    ​Далее, кликаем по ячейке,​ кнопкой мыши, и​ In Range(«d1:d100»)​Спасибо​Сообщение об ошибке (Error​

    1. ​ СПИСОК ИЗ ЯЧЕЙКИ,​ список не получится​ первым буквам​Режим Конструктора (Design Mode)​ не видно, то​ или вам нужен​ Target.ClearContents Application.EnableEvents =​ сформирует правильную ссылку​ путь). В поле​Вот так будет выглядеть​Нажмите​ Думаю, это понятно?​ и в контекстном​ в контекстном меню​On Error Resume​SLAVICK​ Alert)​ в которую вставили​ (до версии Excel​нет​на вкладке​ нажмите кнопку​ товар, который еще​ True End If​ на внешний источник​ «Источник» прописываем такую​
    2. ​ наш второй раскрывающийся​ОК​Итак, давайте начнём наш​ меню последовательно переходим​ выбираем пункт «Присвоить​ Next​: Без примера -​и нажмем​ предварительно скопированное значение.​ 2010). Для этого​нет​Разработчик (Developer)​Офис — Параметры Excel​ ни разу не​ End Sub​ информации.​ функцию:​ список:​, чтобы сохранить и​
    3. ​ простой пример с​ по пунктам «Объект​ имя…».​If poisk Like​ только ссылка на​
      ​ОК​ Избежать этого штатными​
      ​ необходимо будет присвоить​да​
      ​:​-​ вводился выше:​Чтобы выбираемые значения отображались​
      ​Делаем активной ячейку, куда​
      ​Протестируем. Вот наша таблица​
      ​В результате мы получим​
      ​ закрыть диалоговое окно.​
      ​ того, как можно​ ComboBox» и «Edit».​Открывается форма создания имени.​
      ​ "*" & TextBox1.Value​ похожую тему​. Теперь у нас​
      ​ средствами Excel нельзя.​
      ​ имя списку. Это​
      ​Необходимость использования дополнительной функции​
      ​Если эта кнопка нажата,​флажок​
      ​Выделите ячейки с данными,​
      ​ в одной ячейке,​
      ​ хотим поместить раскрывающийся​

    ​ со списком на​ два связанных (или​Имена диапазонам, содержащим города,​ создать связанный (или​Выпадающий список в Microsoft​ В поле «Имя»​

    Выпадающий список с поиском

    1. ​ & «*» Then​Наверное ближе будет​ есть выпадающий список​Задача​ можно сделать несколько​ИНДЕКС​Вставить ActiveX.
    2. ​ то мы можем​Отображать вкладку Разработчик на​ которые должны попасть​ разделенные любым знаком​ список.​ одном листе:​Элемент ActiveX.
    3. ​ зависимых) выпадающих списка.​ можно присвоить точно​Свойства ActiveX.
    4. ​ зависимый) выпадающий список​ Excel готов.​ вписываем любое удобное​ListBox1.AddItem sh.Name &​ Эта тема -​ в ячейке D2.​: сделать в ячейке​ способами.​

    ​нет​

    ​ настраивать параметры выпадающего​ ленте (Office Button​ в выпадающий список​ препинания, применим такой​Открываем параметры проверки данных.​Добавим в таблицу новое​ Если мы выбираем​ таким же образом.​ в Excel? В​Чтобы сделать и другие​

    exceltable.com

Выпадающий список в ячейке листа

Видео

​ наименование, по которому​ «!» & poisk.Address​ там в примере​ Причем, если, например,​

​ D2 выпадающий список,​Первый​да​ списка, нажав соседнюю​

Способ 1. Примитивный

​ — Excel Options​ (например, наименованиями товаров).​ модуль.​ В поле «Источник»​ значение «елка».​​ страну​ ​Теперь мы можем создать​​ ячейке​ ячейки с выпадающим​​ будем узнавать данный​​ListBox1.List(j, 1) =​ нужно нажать кнопку​ вручную дописать новое​ чтобы пользователь мог​: выделите список и​нет​ кнопку​ — Show Developer​Если у вас Excel​

Выпадающее меню вȎxcel

Способ 2. Стандартный

  1. ​Private Sub Worksheet_Change(ByVal​ вводим формулу: =ДВССЫЛ(“[Список1.xlsx]Лист1!$A$1:$A$9”).​Теперь удалим значение «береза».​France​
  2. ​ выпадающие списки в​B1​ списком, просто становимся​ список. Но, это​​ poisk​ найти.​ ​ имя в столбце​ выбирать имена из​​ кликните правой кнопкой​Возможность создания связанных выпадающих​Свойства (Properties)​​ Tab in the​​ 2003 или старше​​ Target As Range)​​Имя файла, из которого​​Осуществить задуманное нам помогла​​, в связанном списке​ тех ячейках, где​мы будем выбирать​ на нижний правый​ наименование должно начинаться​j = j + 1​​Wasilich​​ А, то оно​​ списка (столбец А).​​ мыши, в контекстном​
  3. ​ списков​, которая откроет окно​ Ribbon)​ — выберите в​On Error Resume​ берется информация для​​ «умная таблица», которая​ у нас будут​​ планировали выбирать данные.​​ страну, а в​​ край готовой ячейки,​​ обязательно с буквы.​​End If​: Видно надо, что​​ автоматически появится в​​ Если нужного имени​ меню выберите «​​нет​​ со списком всех​

Выпадающее меню вȎxcel

​Найдите значок выпадающего списка​​ меню​​ Next​

​ списка, заключено в​

Выпадающее меню вȎxcel

​ легка «расширяется», меняется.​ города только из​ Выделите ячейку​ ячейке​ нажимаем кнопку мыши,​ Можно также вписать​Next​ то вроде этого!​ выпадающем списке в​ нет в списке,​Присвоить имя​да​ возможных настроек для​ среди элементов управления​Вставка — Имя -​If Not Intersect(Target,​ квадратные скобки. Этот​Теперь сделаем так, чтобы​

Способ 3. Элемент управления

​ Франции.​B1​B2​ и протягиваем вниз.​ примечание, но это​End Sub​Sendex​ ячейке D2, поскольку​

  1. ​ то пользователь может​»​​нет​​ выделенного объекта:​ форм (не ActiveX!).​ Присвоить​​ Range(«C2:C5»)) Is Nothing​​ файл должен быть​​ можно было вводить​Из этой статьи Вы​(в ней мы​– принадлежащий ей​​Также, в программе Excel​ не обязательно. Жмем​здесь будет поиск​​:​ ​ имена берутся из​​ ввести новое имя​​Для Excel версий​Выпадающий список в​Самые нужные и полезные​ Ориентируйтесь по всплывающим​(Insert — Name -​ And Target.Cells.Count =​
  2. ​ открыт. Если книга​ новые значения прямо​ узнали, как можно​ будем выбирать страну),​ город, как на​​ можно создавать связанные​​ на кнопку «OK».​
    Выпадающее меню вȎxcel
    ​ в диапазоне Range(«d1:d100»).​SLAVICK​ динамического диапазона People,​ прямо в ячейку​
  3. ​ ниже 2007 те​ ячейке позволяет пользователю​ свойства, которые можно​​ подсказкам -​​ Define),​ 1 Then​
  • ​ с нужными значениями​​ в ячейку с​ сделать простейшие связанные​ откройте вкладку​ примере:​
  • ​ выпадающие списки. Это​​Переходим во вкладку «Данные»​Лучше указывать не​, спасибо! Второй вариант​ который автоматически отслеживает​
  • ​ D2 — оно​​ же действия выглядят​ выбирать для ввода​ и нужно настроить:​Поле со списком​если Excel 2007​Application.EnableEvents = False​ находится в другой​

​ этим списком. И​​ выпадающие списки в​​Data​

​Для начала нужно создать​ такие списки, когда​ программы Microsoft Excel.​ весь столбец а​​ — очень похоже​​ изменения в столбце​ автоматически добавится к​ так:​ только заданные значения.​

Выпадающее меню вȎxcel

Способ 4. Элемент ActiveX

​ListFillRange​:​ или новее -​newVal = Target​ папке, нужно указывать​ данные автоматически добавлялись​​ Microsoft Excel. Вы​​(Данные), нажмите​ базу данных. На​​ при выборе одного​​ Выделяем область таблицы,​​ диапазон(можно с запасом),​​ на то что​

Выпадающее меню вȎxcel

​ А.​ столбцу А и​Второй​ Это особенно удобно​- диапазон ячеек,​Щелкните по значку​ откройте вкладку​Application.Undo​

​ путь полностью.​ в диапазон.​ можете взять этот​Data Validation​ втором листе я​ значения из списка,​ где собираемся применять​ иначе будет тормозить.​ нужно, который с​Щелкаем правой кнопкой мыши​ начнет отображаться в​: воспользуйтесь​ при работе с​ откуда берутся данные​ и нарисуйте небольшой​Формулы (Formulas)​oldval = Target​​Возьмем три именованных диапазона:​​Сформируем именованный диапазон. Путь:​​ простой пример и​​(Проверка данных), а​

Выпадающее меню вȎxcel

​ занес список стран,​ в другой графе​ выпадающий список. Жмем​Wasilich​ кнопкой «Найти»​​ по ярлычку нашего​​ выпадающем списке в​Диспетчером имён​ файлами структурированными как​ для списка. Выделить​

Выпадающее меню вȎxcel

​ горизонтальный прямоугольник -​и воспользуйтесь кнопкой​If Len(oldval) <>​

  • ​Это обязательное условие. Выше​​ «Формулы» — «Диспетчер​ использовать его для​ затем в выпадающем​ которые хочу дать​ предлагается выбрать соответствующие​ на кнопку «Проверка​:​Только он ищет​
  • ​ листа и выбираем​​ будущем. Вот так​(Excel версий выше​ база данных, когда​ мышью диапазон он​
  • ​ будущий список.​​Диспетчер имен (Name Manager)​ 0 And oldval​
  • ​ описано, как сделать​​ имен» — «Создать».​ решения реальных задач.​ меню выберите​ пользователям на выбор​
  • ​ ему параметры. Например,​​ данных», расположенную на​​Sendex​​ совпадения по всем​Исходный текст (View Source)​

​ примерно:​ 2003 — вкладка​ ввод несоответствующего значения​ не даст, надо​Щелкните по нарисованному списку​, затем​ <> newVal Then​ обычный список именованным​ Вводим уникальное название​Урок подготовлен для Вас​Data Validation​ в первом раскрывающемся​ при выборе в​

​ Ленте.​, я так понял,​ листам, а в​​. Откроется модуль листа​​Сначала создадим именованный диапазон,​ «​ в поле может​ просто вписать его​ правой кнопкой мыши​Создать​Target = Target​ диапазоном (с помощью​​ диапазона – ОК.​​ командой сайта office-guru.ru​(Проверка данных).​ списке, а в​ списке продуктов картофеля,​Открывается окно проверки вводимых​

Выпадающее меню вȎxcel

Итоговая сравнительная таблица всех способов

​ у Вас 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:M3​Font​- укажите ячейку​Выделите ячейки (можно сразу​Не забываем менять диапазоны​

​ выделяем попеременно нужные​ позволит нам вводить​​Очень удобный инструмент 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​

Выпадающее меню вȎxcel

Шаг 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)​ инструмент «Вставить» –​ списке названию. Если​​ вкладке «Исходный текст».​

Выпадающее меню вȎxcel

​ листа или файла,​ «=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)​ на всплывающие подсказки).​ «Источник» функцию вида​ (только вставьте свои​

​ инструмент «Проверка данных»​ список, чтобы пользователи​ будет использован.​ через проверку данных.​

Выпадающее меню вȎxcel

​ выпадающего списка с​ заметку. В любом​ 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.UsedRange​People​
​ в столбце А,​ проверку данных, не​Тип данных​

​ представления (цветов, шрифтов​​ содержимое нужной по​​.​​ ListFillRange (руками). Ячейку,​ помощью инструмента «Проверка​ If WorksheetFunction.CountIf(Range(«Деревья»), Target)​Ввести значения заранее. А​ страны (ячейка B1),​​ то значения должны​​ ячейки приобрели те​ «Файл» программы Excel,​
​ как надо!​On Error Resume​, а как-то еще,​ начиная с А1​ прибегая к вынесению​» -«​ и т.д.)​ счету ячейки из​
​Все! Наслаждайтесь!​​ куда будет выводиться​ данных». Добавляем в​ = 0 Then​ в качестве источника​ чтобы получить индекс​

excelworld.ru

​ находиться в той​

Содержание

  1. Макрос выпадающего списка с несколькими значениями в Excel
  2. Для начала следует создать обыкновенный выпадающий список.
  3. После этой процедуры следует записать макрос в документ.
  4. Первый макрос со смещением списка в сторону (горизонтально).
  5. Макрос выпадающего списка со смещением вниз:
  6. Макрос выпадающего списка с внесением нескольких значений в одну ячейку:
  7. Макрос выпадающего списка с несколькими значениями в Excel: 17 комментариев
  8. VBA Excel. Элемент управления ComboBox (поле со списком)
  9. Элемент управления ComboBox
  10. Свойства поля со списком
  11. Способы заполнения ComboBox
  12. Excel раскрывающийся список макрос
  13. Как запустить макрос на основе значения, выбранного из раскрывающегося списка в Excel?
  14. Запустить макрос на основе значения, выбранного из раскрывающегося списка с кодом VBA

Макрос выпадающего списка с несколькими значениями в Excel

Ранее в публикациях рассказывалось о том, как создается выпадающий список в ячейках для упрощения внесения данных.
Ссылка на описания метода создания связанного выпадающего списка ниже:

В данной публикации описана процедура создания выпадающих списков, которые записывают в ячейки по нескольку значений.

Для начала следует создать обыкновенный выпадающий список.

Для этого необходимо:

  • Войти во вкладку «Данные»;
  • Выбрать опцию «Проверка данных»;
  • Выбрать «Список»;
  • Указать диапазон, из которого будет выбираться выпадающий список или создать список прямо в появившемся поле через знак «;».

После этой процедуры следует записать макрос в документ.

Для записи макроса следует:

  • Открыть вкладку «Разработчик» ( Если вкладка отключена, включите ее в разделе Файл=> Параметры=> Настройка Ленты);

  • Во вкладке «Разработчик» выбрать кнопку «Просмотр кода»;
  • В открывшееся окно записать макрос;

  • Закрыть окно с макросом.

Давайте рассмотрим несколько макросов с выпадающими списками.

Первый макрос со смещением списка в сторону (горизонтально).


Текст макроса:
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
указывается разделитель «//». Его можно заменить на любой знак препинания, текст или поставить пробел.

Макрос выпадающего списка с несколькими значениями в Excel: 17 комментариев

Добрый день! Макрос выпадающего списка с внесением нескольких значений в одну ячейку почему то не работает. Нижеприведенные строки почему то становятся красным. Я так понимаю В2:В5 это диапазон который можно изменять на другую область например на F2:F200 допучстим? Или я не прав? Подскажите пожалуйста.

Источник

VBA Excel. Элемент управления ComboBox (поле со списком)

Элемент управления пользовательской формы ComboBox для выбора и ввода информации в VBA Excel. Свойства поля с раскрывающимся списком, заполнение, извлечение данных, примеры кода.

Элемент управления ComboBox

ComboBox представляет из себя комбинацию двух элементов управления: текстового поля (TextBox) и списка (ListBox), поэтому его еще называют «комбинированным списком» или «полем со списком». Также ComboBox сочетает в себе свойства этих двух элементов управления.

Изначально комбинированный список прорисовывается на форме в виде текстового поля с кнопкой для отображения раскрывающегося списка. Далее по тексту будем использовать слово «поле» в значении текстового поля в составе элемента управления ComboBox, а словосочетание «раскрывающийся список» – в значении списка в составе элемента управления ComboBox.

Поле со списком используется в тех случаях, когда необходимо добавить в форму информацию, которая заранее известна, а ее отдельные позиции можно сгруппировать в список, а также для ручного ввода с клавиатуры или вставки из буфера обмена, если необходимое значение в списке отсутствует.

Элемент управления ComboBox незаменим при больших списках. При списках из нескольких позиций его можно заменить на ListBox, который отображает позиции для выбора сразу после загрузки формы, не требуя дополнительных действий от пользователя.

Свойства поля со списком

Свойство Описание
AutoSize Автоподбор размера комбинированного поля. True – размер автоматически подстраивается под длину выбранной или введенной строки. False – размер элемента управления определяется свойствами Width и Height.
AutoTab Включение автоматической табуляции – передачи фокуса следующему элементу управления при достижении максимального числа символов при значениях свойства MaxLenght > 0. True – автоматическая табуляция включена, False – выключена.
ColumnCount Указывает количество столбцов в раскрывающемся списке. Значение по умолчанию = 1.
ColumnHeads Добавляет строку заголовков в раскрывающийся список. True – заголовки столбцов включены, False – заголовки столбцов выключены. Значение по умолчанию = False.
ColumnWidths Ширина столбцов в раскрывающемся списке. Значения для нескольких столбцов указываются в одну строку через точку с запятой (;).
ControlSource Ссылка на ячейку для ее привязки к элементу управления ComboBox.
ControlTipText Текст всплывающей подсказки при наведении курсора на элемент управления.
Enabled Доступ пользователя к полю и раскрывающемуся списку. True – доступ разрешен, False – доступ запрещен*. Значение по умолчанию = True.
Font Шрифт, начертание и размер текста в поле.
Height Высота элемента управления ComboBox.
Left Расстояние от левого края внутренней границы пользовательской формы до левого края комбинированного списка.
List Позволяет заполнить ComboBox данными из одномерного или двухмерного массива, а также обращаться к отдельным элементам раскрывающегося списка по индексам для записи и чтения.
ListIndex Номер выбранной пользователем строки в раскрывающемся списке. Нумерация начинается с нуля. Если ничего не выбрано, ListIndex = -1.
ListRows Количество видимых строк в раскрытом списке. Если общее количество строк больше ListRows, появляется полоса прокрутки. Значение по умолчанию = 8.
Locked Запрет на отображение раскрывающегося списка, ввод и редактирование данных в поле. True – ввод и редактирование запрещены**, False – ввод и редактирование разрешены. Значение по умолчанию = False.
MatchRequired Задает проверку вводимых в поле строк с элементами списка. True – проверка включена (допускается ввод только строк, совпадающих с элементами списка), False – проверка выключена (допускается ввод любых строк). Значение по умолчанию = False.
MaxLenght Максимальная длина строки в поле. Значение по умолчанию = 0, что означает – ограничений нет.
RowSource Источник строк для раскрывающегося списка (адрес диапазона на рабочем листе Excel).
TabIndex Целое число, определяющее позицию элемента управления в очереди на получение фокуса при табуляции. Отсчет начинается с 0.
Text Текстовое содержимое (значение) поля (=Value).
TextAlign Выравнивание текста в поле: 1 (fmTextAlignLeft) – по левому краю, 2 (fmTextAlignCenter) – по центру, 3 (fmTextAlignRight) – по правому краю.
Top Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края комбинированного списка.
Value Текстовое содержимое (значение) поля (=Text).
Visible Видимость поля со списком. True – ComboBox отображается на пользовательской форме, False – ComboBox скрыт.
Width Ширина элемента управления.

* При Enabled в значении False пользователь не может раскрывать список, а также вводить или редактировать данные в поле.
** Для элемента управления ComboBox действие свойства Locked в значении True аналогично действию свойства Enabled в значении False.

В таблице перечислены только основные, часто используемые свойства поля со списком. Еще больше доступных свойств отображено в окне Properties элемента управления ComboBox, а все методы, события и свойства – в окне Object Browser.

Вызывается Object Browser нажатием клавиши «F2». Слева выберите объект ComboBox, а справа смотрите его методы, события и свойства.

Свойства BackColor, BackStyle, BorderColor, BorderStyle отвечают за внешнее оформление комбинированного списка и его границ. Попробуйте выбирать доступные значения этих свойств в окне Properties, наблюдая за изменениями внешнего вида элемента управления ComboBox на проекте пользовательской формы.

Способы заполнения ComboBox

Используйте метод AddItem для загрузки элементов в поле со списком по одному:

Источник

Excel раскрывающийся список макрос

Как запустить макрос на основе значения, выбранного из раскрывающегося списка в Excel?

Запуск макросов путем нажатия кнопки управления — обычная задача в Excel, но пытались ли вы когда-нибудь выполнить коды макросов на основе значения, выбранного из раскрывающегося списка? Это означает, что когда вы выбираете один элемент из раскрывающегося списка, конкретный макрос будет запущен сразу. Эта статья познакомит вас с полезным кодом для решения этой задачи.

Запустить макрос на основе значения, выбранного из раскрывающегося списка с кодом VBA

Прямого способа выполнить эту задачу нет, но следующий код VBA может вам помочь, сделайте следующее:

1. Во-первых, создайте выпадающий список по мере необходимости, см. Снимок экрана:

2. Затем щелкните правой кнопкой мыши вкладку листа, содержащую раскрывающийся список, который вы хотите использовать, а затем выберите Просмотреть код из контекстного меню, а в открывшемся Microsoft Visual Basic для приложений окна, скопируйте и вставьте следующий код в пустой модуль:

Код VBA: запуск макроса на основе значения, выбранного из раскрывающегося списка:

Внимание: В приведенном выше коде E1 Если ячейка содержит раскрывающийся список, измените имена макросов и значения раскрывающегося списка на свои.

3. А затем сохраните и закройте это окно кода, теперь, когда вы выбираете элемент «Вставить пустые строки» из раскрывающегося списка, запускается макрос Macro1 и так далее .

Источник

Понравилась статья? Поделить с друзьями:
  • Макрос excel для поиска текста
  • Макрос excel выделить значения
  • Макрос excel для печати в pdf
  • Макрос excel выделение ячейки цветом при
  • Макрос excel вывод в ячейке