С Новым годом! Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 65
Excel

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

21.01.2021, 09:40. Показов 4534. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, подскажите как можно реализовать задачку. Есть ячейка А1 там находится список с 2-мя значениями "Да" или "Нет".
1. Если выбрать значение "ДА" то ячейка B1 превращается в выпадающий список (состав списка через ИМЯ или ДВССЫЛ($C$1))
2. Если значение в А1 "Нет", то ячейка В1 превращается в ячейку для ввода текста
3. Если перенести обратно значение А1 в значение "Да" стирать значение ячейки В1 введённое ранее, но восстанавливаются состав списка.

Помогите , очень нужно :'(
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.01.2021, 09:40
Ответы с готовыми решениями:

Изменение содержимого простого списка при апдейте выпадающего списка
Добрый день! Суть моей просьбы о помощи такова: На форме (пока) расположен выпадающий список с определенными значениями и ниже...

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

Поиск и копирование именованного диапазона по условию выпадающего списка
Здравствуйте. Хочу попросить помощи в решении одной задачи в Excel 2007.Есть книга с данными затрат по странам (потом будет около 30...

13
3946 / 2339 / 790
Регистрация: 02.11.2012
Сообщений: 6,214
21.01.2021, 10:37
в модуль листа
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) <> "A1" Then Exit Sub ' если адрес измененной ячейки не А1 то выход
Application.EnableEvents = False 'отключаем отслеживание событий
If Target.Value = "да" Then ' если значение измененной ячейки "да" то...
On Error Resume Next
    If Range("B1").Validation.Type <> 3 Then  ' если в ячейке нет вып. список то создаем
        Range("B1").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=цифры"
    End If
Else
    Range("B1").Validation.Delete
End If
Application.EnableEvents = True 'включаем отслеживание событий
End Sub
цифры это имя диапазона

Добавлено через 12 минут
для 3 задачи.
после 8 строки добавьте
Visual Basic
1
Range("B1") = WorksheetFunction.Index(Range("цифры"), 1)
0
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 65
21.01.2021, 12:18  [ТС]
Добрый день. Огромное спасибо. Прямо нет слов. но есть нюанс:
1. перенес в ячейку A6 не сработало, хотя поменял адрес ячейки
2. Значение "Да" и "Нет" делается формулой ЕСЛИ и когда выпадает значение нет, то не срабатывает

Забыл вас предупредить, подскажите в чем может быть засада? А1 автоматом могут заполняться значением Истина и Ложь, без каких либо формул

Добавлено через 5 минут
Работает, только если поставить в ручную ДА и стереть.
0
3946 / 2339 / 790
Регистрация: 02.11.2012
Сообщений: 6,214
21.01.2021, 12:32
Цитата Сообщение от Vlad999 Посмотреть сообщение
Worksheet_Change
срабатывает только на событие ручного изменения. Изменение формулой это уже другой макрос (другое событие отслеживать нужно).
0
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 65
21.01.2021, 13:41  [ТС]
Скажите а значение ИСИТИНА и ЛОЖЬ тоже другой макрос?

Добавлено через 8 минут
Range("B1") = WorksheetFunction.Index(Range("цифры"), 1)
Здесь мне нужно указать имя диапазона с =

Добавлено через 17 секунд
Range("B1") = WorksheetFunction.Index(Range("цифры"), 1)
Здесь мне нужно указать имя диапазона с =
0
3946 / 2339 / 790
Регистрация: 02.11.2012
Сообщений: 6,214
21.01.2021, 15:03
Цитата Сообщение от ArtemKashuba Посмотреть сообщение
Скажите а значение ИСИТИНА и ЛОЖЬ тоже другой макрос?
если формулой то да.

Добавлено через 34 секунды
Цитата Сообщение от ArtemKashuba Посмотреть сообщение
Здесь мне нужно указать имя диапазона с =
не понял о чем вы.
0
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 65
21.01.2021, 18:24  [ТС]
Блин, как все сложно и печально. вы мне можете помочь? решить данную проблему? В любом случаи огромное спасибо вам за тот код. Я вообще дума, что это из разряда фантастики!
0
Заблокирован
21.01.2021, 22:46
Цитата Сообщение от ArtemKashuba Посмотреть сообщение
Здесь мне нужно указать имя диапазона с =
поясните сей момент. Может решение на поверхности? И не надо будет сыпать пепел на голову?
0
3946 / 2339 / 790
Регистрация: 02.11.2012
Сообщений: 6,214
22.01.2021, 08:14
ячейка с формулой на которую реагирует макрос одна?
0
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 65
22.01.2021, 10:43  [ТС]
Нет, у меня их 4. Я просто думал из вашего макроса, скопировать цикл от IF до END IF не сколько раз и они будут работать не думал что так все сложно. Тогда чуть подробнее.
1. в ячейках А6 - А9 появляется значение "Да" или "НЕТ" по формуле Если. Я могу убрать формулу Если и оставить появление значений Истина или ЛОЖЬ которое формируется, как связанная ячейка, с элементом управления (Находятся в ячейках Е6-Е9)

Добавлено через 34 минуты
Влад написал
для 3 задачи.
после 8 строки добавьте
Visual BasicВыделить код
1 Range("B1") = WorksheetFunction.Index(Range("цифры"), 1)

так же там есть комментарий, что "цифры" нужно указать диапазон. Вопрос простой, скажите мне указать диапазон или можно Имя диапазона, если можно имя диапазона, то нужно лриставить "="?
0
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 65
01.02.2021, 16:39  [ТС]
Vlad999, вы можете подправить код, за вознаграждение?
0
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 65
04.02.2021, 10:33  [ТС]
получилось разобраться, макрос срабатывает если значение "Да" проставлять из выпадающего списка. Но я не могу использовать данный макрос несколько раз на одном листе.
0
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 65
26.02.2021, 23:08  [ТС]
Помогите, кто ни будь, доделать код.
0
3946 / 2339 / 790
Регистрация: 02.11.2012
Сообщений: 6,214
01.03.2021, 13:05
Цитата Сообщение от ArtemKashuba Посмотреть сообщение
за вознаграждение
в раздел фриланс обратитесь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.03.2021, 13:05
Помогаю со студенческими работами здесь

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

Изменение при выборе из выпадающего списка
Html Страница &lt;html&gt; &lt;head lang=&quot;en&quot;&gt; &lt;meta charset=&quot;UTF-8&quot;&gt; &lt;html&gt; &lt;body&gt; &lt;form&gt; &lt;b id=&quot;cost&quot;&gt;3900&lt;/b&gt; руб. ...

Изменение цен при выборе из выпадающего списка
Привет всем У меня есть таблица а в ней выпадающий список например Черное и Белое и стоит цена рядом как сделать чтобы например...

Динамическое изменение выпадающего списка в зависимости от выбора в предыдущем
Доброго времени суток форумчане! Помогите, очень прошу. Задача такова: Есть три таблицы, --первая таблица из 60 записей одного...

Изменение цены при выборе из выпадающего списка - HTML
Добрый день, есть html документ в нем есть: Цена: 3900 Цвет: &lt;select&gt; &lt;option&gt;---Выбрать---&lt;/option&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru