Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/выпадающий список VBA, прихватить значение из другого листа - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » выпадающий список VBA, прихватить значение из другого листа (Формулы/Formulas)
выпадающий список VBA, прихватить значение из другого листа
kolyan2288 Дата: Воскресенье, 12.03.2017, 00:50 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Привет ребят хочу чтобы вы меня поставили на правильный путь реализации моей задумки. Excel 2016, делаю выпадающий список
Есть Лист со списком, назовем его list_2,
в нем таблица с двумя столбцами id и name
поле name Источник данных для списка назову его select
На листе list_1 вставляю список c источником select

Что я хочу, когда я выбираю значение из списка name, в правом столбце присваивалась его значение по id (которое в list_2).

пока что сделал тупо добавление name в правый столбец

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
    Application.EnableEvents = False
       If Target.Offset(0, 1) <> Target Then
            Target.Offset(0, 1) = Target
        End If
     Application.EnableEvents = True
End Sub
[/vba]

Скажите как правильно и возможно ли это реализовать? спасибо
 
Ответить
СообщениеПривет ребят хочу чтобы вы меня поставили на правильный путь реализации моей задумки. Excel 2016, делаю выпадающий список
Есть Лист со списком, назовем его list_2,
в нем таблица с двумя столбцами id и name
поле name Источник данных для списка назову его select
На листе list_1 вставляю список c источником select

Что я хочу, когда я выбираю значение из списка name, в правом столбце присваивалась его значение по id (которое в list_2).

пока что сделал тупо добавление name в правый столбец

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
    Application.EnableEvents = False
       If Target.Offset(0, 1) <> Target Then
            Target.Offset(0, 1) = Target
        End If
     Application.EnableEvents = True
End Sub
[/vba]

Скажите как правильно и возможно ли это реализовать? спасибо

Автор - kolyan2288
Дата добавления - 12.03.2017 в 00:50
kolyan2288 Дата: Воскресенье, 12.03.2017, 01:01 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
))


Сообщение отредактировал kolyan2288 - Воскресенье, 12.03.2017, 01:01
 
Ответить
Сообщение))

Автор - kolyan2288
Дата добавления - 12.03.2017 в 01:01
Michael_S Дата: Воскресенье, 12.03.2017, 04:17 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
По ходу макрос рабочий.
Что бы сказать больше - нужен файл-пример.
 
Ответить
СообщениеПо ходу макрос рабочий.
Что бы сказать больше - нужен файл-пример.

Автор - Michael_S
Дата добавления - 12.03.2017 в 04:17
kolyan2288 Дата: Воскресенье, 12.03.2017, 09:34 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Прикрепил файл
К сообщению приложен файл: 1257889.xlsm (16.0 Kb)
 
Ответить
СообщениеПрикрепил файл

Автор - kolyan2288
Дата добавления - 12.03.2017 в 09:34
Perfect2You Дата: Воскресенье, 12.03.2017, 15:15 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 237
Репутация: 59 ±
Замечаний: 0% ±

Excel 2010
Если точно из списка, получится значение. Если введенное значение не из списка, будет значение ошибки
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
    If (Target.Column = 2) And (Target.Row > 1) Then
        Application.EnableEvents = False
        Target.Offset(0, 1).FormulaR1C1 = "=INDEX(filters!C1,MATCH(RC[-1],filters!C2,0))"
        Target.Offset(0, 1).Value = Target.Offset(0, 1).Value
        Application.EnableEvents = True
    End If
End Sub
[/vba]


Сообщение отредактировал Perfect2You - Воскресенье, 12.03.2017, 15:15
 
Ответить
СообщениеЕсли точно из списка, получится значение. Если введенное значение не из списка, будет значение ошибки
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
    If (Target.Column = 2) And (Target.Row > 1) Then
        Application.EnableEvents = False
        Target.Offset(0, 1).FormulaR1C1 = "=INDEX(filters!C1,MATCH(RC[-1],filters!C2,0))"
        Target.Offset(0, 1).Value = Target.Offset(0, 1).Value
        Application.EnableEvents = True
    End If
End Sub
[/vba]

Автор - Perfect2You
Дата добавления - 12.03.2017 в 15:15
kolyan2288 Дата: Воскресенье, 12.03.2017, 17:26 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Perfect2You
Спасибо огромное, все работает))
Остался один вопрос в этой ветке
У меня будет несколько разных категорий выпадающего списка так же разный диапазон к ним, как быть в этой ситуации?

Что пришло в голову:
1. Проверять IF Target.Column именно на какой список идет событие по столбцу т е запоминать, и выполнять FormulaR1C1 для этого списка
2. Получить имя диапазона списка и выполнять условия IF. зная заранее имя диапазона списка.

По второму пункту у меня не получилось вернуть имя диапазона списка((
К сообщению приложен файл: 1257890.xlsm (16.9 Kb)
 
Ответить
СообщениеPerfect2You
Спасибо огромное, все работает))
Остался один вопрос в этой ветке
У меня будет несколько разных категорий выпадающего списка так же разный диапазон к ним, как быть в этой ситуации?

Что пришло в голову:
1. Проверять IF Target.Column именно на какой список идет событие по столбцу т е запоминать, и выполнять FormulaR1C1 для этого списка
2. Получить имя диапазона списка и выполнять условия IF. зная заранее имя диапазона списка.

По второму пункту у меня не получилось вернуть имя диапазона списка((

Автор - kolyan2288
Дата добавления - 12.03.2017 в 17:26
kolyan2288 Дата: Понедельник, 13.03.2017, 11:24 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
придется тогда статическим путем идти Target.Column ((
 
Ответить
Сообщениепридется тогда статическим путем идти Target.Column ((

Автор - kolyan2288
Дата добавления - 13.03.2017 в 11:24
Мир MS Excel » Вопросы и решения » Вопросы по VBA » выпадающий список VBA, прихватить значение из другого листа (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!