Список, що випадає з додаванням нових елементів

Отже, маємо таку ситуацію:

Завдання. зробити в комірці D2, що випадає, щоб користувач міг вибирати імена зі списку (стовпець А). Якщо потрібного імені немає у списку, то користувач може ввести нове ім'я прямо в осередок D2 - воно автоматично додасться до колонку А і почне відображатися в випадаючому списку в майбутньому.

Крок 1. Створюємо іменований діапазон

в англійській версії Excel це буде:

Ця формула посилається на всі заповнені осередки в стовпці А, починаючи з А1 і вниз до кінця - до останнього імені.

Крок 2. Створюємо список, що випадає в осередку

Виділяємо осередок D2 і відкриваємо меню Дані - Перевірка (Data - Validation). Далі вибираємо зі списку Тип (Allow) позицію Список (List) і вводимо в рядок Джерело (Source) посилання на створений на кроці 1 іменований діапазон:

Щоб Excel дозволив нам в майбутньому ввести в список і нові імена, знімемо галочки на вкладках Повідомлення для введення (Input Message) і Повідомлення про помилку (Error Alert) і натиснемо ОК. Тепер у нас є список, що випадає в комірці D2. Причому, якщо, наприклад, вручну дописати нове ім'я в стовпці А, то воно автоматично з'явиться в випадаючому списку в комірці D2, оскільки імена беруться з динамічного діапазону People, який автоматично відстежує зміни в стовпці А.

Крок 3. Додаємо простий макрос

Private Sub Worksheet_Change (ByVal Target As Range)

Dim lReply As Long

If Target.Cells.Count> 1 Then Exit Sub
If Target.Address = "$ D $ 2" Then
If IsEmpty (Target) Then Exit Sub
If WorksheetFunction.CountIf (Range ( "People"), Target) = 0 Then
lReply = MsgBox ( "Додати введене ім'я" _
Target "В список, що випадає?", VbYesNo + vbQuestion)
If lReply = vbYes Then
Range ( "People"). Cells (Range ( "People"). Rows.Count + 1, 1) = Target
End If
End If
End If
End Sub

Якщо Ваш список, що випадає знаходиться не в комірці D2 або Ви назвали діапазон з ім'ям не People. а якось ще, то підправте ці параметри в макросі на свої.

Усе! Тепер при спробі ввести нове ім'я в осередок D2 Excel буде питати

і при позитивному відповіді користувача автоматично додавати нове ім'я до списку в стовпці А і в список, що випадає в осередок D2.

НОВИНИ ФОРУМУ
Лицарі теорії ефіру

Схожі статті