Отже, маємо таку ситуацію:
Завдання. зробити в комірці 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.
НОВИНИ ФОРУМУ
Лицарі теорії ефіру