Страницы: 1
RSS
Выбор макросом значения из раскрывающегося списка по условию
 
Друзья, добрый вечер!
Всех с наступающим праздником!  

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

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

Заранее огромное спасибо!
Изменено: _Maxim_ - 15.04.2017 21:19:17
 
Цитата
_Maxim_ написал: при нажатии кнопки макрос выбирал значение в списке равное значению ячейки C2
Зачем Вам в таком случае список? Пусть макрос сразу выбирает значение из ячейки C2
Согласие есть продукт при полном непротивлении сторон
 
Sanja Добрый вечер!

Дело в том,что у меня на ячейку в которой находится список, завязаны формулы, которые пересчитываются согласно выбранному значению из этого списка.
То есть  есть лист "Города", там я выбираю определенный город и у меня пересчитываются данные для данного города.Его используют когда хотят глянуть какой то конкретный город.

На другом листе "Регионы" у меня список регионов. При выборе региона, у меня появляется информация по данному региону и список его основных городов в виде кнопок. Нажимая на кнопку соответствующего города,макрос переходит на лист "Города" ,выбирает из списка нужный город и все автоматически пересчитывается для этого города.

Как то вот так. Но как реализовать поиск в списке я не знаю(

Заранее большое спасибо!
 
Не совсем понятна сверхзадача.
Отвечаю на поставленный вопрос в теме. Вставьте кнопку на лист и присвойте ей такой код
Код
Sub Кнопка1_Щелчок()
Set fCell = Range(Mid(Range("A2").Validation.Formula1, 2)).Find(Range("C2"))
If Not fCell Is Nothing Then
    Range("A2") = Range("C2")
Else
    MsgBox "Недопустимое значение!", vbCritical + vbOKOnly
End If
End Sub
Согласие есть продукт при полном непротивлении сторон
 
Максим, Вам правильный вопрос задали: какой смысл выбирать именно из раскрывающегося списка, если эти же значения имеются в исходных данных для списка? Выбирайте их макросом из этого диапазона и подставляйте в позицию выпадающего списка.
 
Код
[a2]=[c2]

Вот и весь макрос для кнопки.
 
Ай-яй-я-я-яй... От такого специалиста и такое? Не ожидал... Не будет работать!!! Нет Sub/End Sub :)
 
Всем спасибо огромное, за отклик!

Sanja Вы как всегда выручаете, спасибо!!

Юрий М , дело в том что у меня в исходнике, где список ячейки объединенные для визуализации, и когда копирую в эту ячейку пишет мол несоответствует размер. Возможно как то можно этой  обойти но я не знаю как.
 
Hugo,  'Проверка данных' не среагирует
Изменено: Sanja - 15.04.2017 21:57:18
Согласие есть продукт при полном непротивлении сторон
 
Цитата
_Maxim_ написал: ячейки объединенные для визуализации
Объединение ячеек одно из злейших зол для работы (а не визуализации) с данными. Что мешает держать список для проверки данных отдельно от 'красивых' данных? На другом (можно скрытом) листе, например
Согласие есть продукт при полном непротивлении сторон
 
Hugo Так тоже действительно работает!)

Спасибо большое!
 
Цитата
_Maxim_ написал: Так тоже действительно работает!)
См. мое сообщение чуть выше. Попробуйте ввести в ячейку C2 значение, которого нет в Списке для проверки данных. Оно благополучно внесется в ячейку A2 по нажатию на кнопку, но нужно-ли Вам это?
Согласие есть продукт при полном непротивлении сторон
 
Sanja Да, это вы верно подметили.

Спасибо еще раз Вам огромное!!
 
Цитата
Sanja написал:
Hugo,  'Проверка данных' не среагирует
- я отвечал строго на вопрос согласно приложенному примеру :)
Там вроде как подразумевается что не будет отсутствующих.
Ну а про суб энд суб - я ведь не знаю как будет называться та кнопка, у меня оно например так выглядит:
Код
Private Sub CommandButton1_Click()
[a2] = [c2]
End Sub

так что просто дописал отсутствующую часть кода.
Изменено: Hugo - 15.04.2017 22:35:42
 
Да пошутил я )
Страницы: 1
Читают тему
Наверх