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

Вход

Регистрация

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

 

= Мир MS Excel/Подгрузка диапазона по условию в ячейке - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Подгрузка диапазона по условию в ячейке (Макросы/Sub)
Подгрузка диапазона по условию в ячейке
neonar Дата: Пятница, 13.10.2017, 19:07 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 54
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день,

Помогите пожалуйста. Не могу написать пользовательскую короткую функцию, которая бы подгружала
выбираемый диапазон в опцию Проверка данных - список.

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

На другом листе в определенной ячейке (напри. А1) нужно выбрать только категории(Делаем-проверка данных и выбираем этот список на первом листе).
А в ячейке А2, к примеру в зависимости от категории нужно чтобы также в Проверке данных подгружался конкретный список, характерный для этой категории.
К примеру если в А1 выбираем категорию фрукты, то в А2 возникал список (яблоки, груши, киви, апельсины)
если в А1 выбираем категорию овощи то в А2 возникал список выбора (огурцы, помидоры, картошка).

Это в принципе можно сделать если сначала в какой то ячейке записать формулу с ЕСЛИ, а затем ее скопировать в А2 в окно ИСТОЧНИК Проверка данных - список
И я это сделал (смотри прикрепленный файл в 2016 excel).

Проблема в том, что если категорий много, то формула получается нереально большой, а размер поля ИСТОЧНИК ограничен по размеру символов и такая формула просто
туда не влезает :)

Задача в том чтобы написать короткую функцию на VBA для того чтобы можно было подгружать большое количество категорий.

Типа =ДИАПАЗОН(КАТЕГОРИЯ)

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

Помогите кто силен в этом, в диапазонах. Прикрепляю файл там вроде все предельно ясно.

P.S.
В F2 на листе 1, вбил формулу которая возвращает диапазон, затем я эту формулу копировал в ИСТОЧНИК.
К сообщению приложен файл: 0775677.xlsx (10.1 Kb)
 
Ответить
СообщениеДобрый день,

Помогите пожалуйста. Не могу написать пользовательскую короткую функцию, которая бы подгружала
выбираемый диапазон в опцию Проверка данных - список.

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

На другом листе в определенной ячейке (напри. А1) нужно выбрать только категории(Делаем-проверка данных и выбираем этот список на первом листе).
А в ячейке А2, к примеру в зависимости от категории нужно чтобы также в Проверке данных подгружался конкретный список, характерный для этой категории.
К примеру если в А1 выбираем категорию фрукты, то в А2 возникал список (яблоки, груши, киви, апельсины)
если в А1 выбираем категорию овощи то в А2 возникал список выбора (огурцы, помидоры, картошка).

Это в принципе можно сделать если сначала в какой то ячейке записать формулу с ЕСЛИ, а затем ее скопировать в А2 в окно ИСТОЧНИК Проверка данных - список
И я это сделал (смотри прикрепленный файл в 2016 excel).

Проблема в том, что если категорий много, то формула получается нереально большой, а размер поля ИСТОЧНИК ограничен по размеру символов и такая формула просто
туда не влезает :)

Задача в том чтобы написать короткую функцию на VBA для того чтобы можно было подгружать большое количество категорий.

Типа =ДИАПАЗОН(КАТЕГОРИЯ)

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

Помогите кто силен в этом, в диапазонах. Прикрепляю файл там вроде все предельно ясно.

P.S.
В F2 на листе 1, вбил формулу которая возвращает диапазон, затем я эту формулу копировал в ИСТОЧНИК.

Автор - neonar
Дата добавления - 13.10.2017 в 19:07
Pelena Дата: Пятница, 13.10.2017, 19:28 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19182
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте.
Вариант на формулах. См. диспетчер имен Ctrl+F3
К сообщению приложен файл: 6714252.xlsx (10.9 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте.
Вариант на формулах. См. диспетчер имен Ctrl+F3

Автор - Pelena
Дата добавления - 13.10.2017 в 19:28
neonar Дата: Пятница, 13.10.2017, 19:44 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 54
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо, эта формула не очень подходит, т.к. в список подгружаются дополнительно пустые ячейки.
Я думаю можно написать длинную формулу с вложенными ЕСЛИ(ЕСЛИ( , чтобы довести до идеала
и задать имя также =список ??? Если конечно длина поля в именах не ограничена количеством вводимых символов :D
 
Ответить
СообщениеСпасибо, эта формула не очень подходит, т.к. в список подгружаются дополнительно пустые ячейки.
Я думаю можно написать длинную формулу с вложенными ЕСЛИ(ЕСЛИ( , чтобы довести до идеала
и задать имя также =список ??? Если конечно длина поля в именах не ограничена количеством вводимых символов :D

Автор - neonar
Дата добавления - 13.10.2017 в 19:44
Pelena Дата: Пятница, 13.10.2017, 20:10 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19182
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Да, забыла -1
исправьте в диспетчере имён
Код
=СМЕЩ(Лист2!$E$6;1;ПОИСКПОЗ(Лист1!$E$4;Лист2!$E$6:$H$6;0)-1;СЧЁТЗ(ИНДЕКС(Лист2!$E$6:$H$20;0;ПОИСКПОЗ(Лист1!$E$4;Лист2!$E$6:$H$6;0)))-1)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеДа, забыла -1
исправьте в диспетчере имён
Код
=СМЕЩ(Лист2!$E$6;1;ПОИСКПОЗ(Лист1!$E$4;Лист2!$E$6:$H$6;0)-1;СЧЁТЗ(ИНДЕКС(Лист2!$E$6:$H$20;0;ПОИСКПОЗ(Лист1!$E$4;Лист2!$E$6:$H$6;0)))-1)

Автор - Pelena
Дата добавления - 13.10.2017 в 20:10
neonar Дата: Пятница, 13.10.2017, 20:31 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 54
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо, все верно. Просто сейчас я подумал что не все параметры сказал. Реальная задача несколько сложней. Не хотел запаривать участников форума

В реальной задаче у меня категориях трубы стальные, чугунные, пластковые
Для каждой категории есть условный диаметр, т.е. размер, например
категория стальные трубы
размеры 15, 20, 25, 32, 40 (это типа приблизительный диаметр)
каждому размеру соответствует действительный диаметр и толщина стенки трубы
например размеру 15 - 21,3 - 3

Другими словами, пользователь должен выбрать сначала материал трубы, затем excel подгружает в зависимости от материала размер 15,20 и т.д, пользователь выбирает его
а потом еще с помощью ВПР у меня в 3 и 4 ячейке в соответствии с принятым размером трубы excel подтягивает реальный диаметр и толщину стенки,
например

/стальные трубы / 15 / 21,3/ 3/

 
Ответить
СообщениеСпасибо, все верно. Просто сейчас я подумал что не все параметры сказал. Реальная задача несколько сложней. Не хотел запаривать участников форума

В реальной задаче у меня категориях трубы стальные, чугунные, пластковые
Для каждой категории есть условный диаметр, т.е. размер, например
категория стальные трубы
размеры 15, 20, 25, 32, 40 (это типа приблизительный диаметр)
каждому размеру соответствует действительный диаметр и толщина стенки трубы
например размеру 15 - 21,3 - 3

Другими словами, пользователь должен выбрать сначала материал трубы, затем excel подгружает в зависимости от материала размер 15,20 и т.д, пользователь выбирает его
а потом еще с помощью ВПР у меня в 3 и 4 ячейке в соответствии с принятым размером трубы excel подтягивает реальный диаметр и толщину стенки,
например

/стальные трубы / 15 / 21,3/ 3/


Автор - neonar
Дата добавления - 13.10.2017 в 20:31
Pelena Дата: Пятница, 13.10.2017, 20:59 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 19182
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Приложите пример, более соответствующий реальной задаче


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеПриложите пример, более соответствующий реальной задаче

Автор - Pelena
Дата добавления - 13.10.2017 в 20:59
neonar Дата: Пятница, 13.10.2017, 22:13 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 54
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Вот реальный пример, в оранжевых ячейках пользователь выбирает из выпадающих списков, которые подгружаются по условию.
А белые ячейки заполняются с помощью ВПР по условию.
К сообщению приложен файл: 8159120.xlsm (73.1 Kb)
 
Ответить
СообщениеВот реальный пример, в оранжевых ячейках пользователь выбирает из выпадающих списков, которые подгружаются по условию.
А белые ячейки заполняются с помощью ВПР по условию.

Автор - neonar
Дата добавления - 13.10.2017 в 22:13
Pelena Дата: Суббота, 14.10.2017, 07:28 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 19182
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Посмотрите такой вариант. Данные отформатированы инструментом Вставка -- Таблица, поэтому можно добавлять снизу строки, они подтянуться в списки автоматически. Название таблиц соответствует материалам, только пришлось убирать лишние знаки (пробелы, дефисы и звёздочки)
К сообщению приложен файл: 2475303.xlsm (79.0 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеПосмотрите такой вариант. Данные отформатированы инструментом Вставка -- Таблица, поэтому можно добавлять снизу строки, они подтянуться в списки автоматически. Название таблиц соответствует материалам, только пришлось убирать лишние знаки (пробелы, дефисы и звёздочки)

Автор - Pelena
Дата добавления - 14.10.2017 в 07:28
neonar Дата: Суббота, 14.10.2017, 10:13 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 54
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо, все работает) Только я не понял про (пробелы, дефисы и звёздочки) вроде бы они все остались
 
Ответить
СообщениеСпасибо, все работает) Только я не понял про (пробелы, дефисы и звёздочки) вроде бы они все остались

Автор - neonar
Дата добавления - 14.10.2017 в 10:13
neonar Дата: Среда, 27.02.2019, 20:14 | Сообщение № 10
Группа: Пользователи
Ранг: Участник
Сообщений: 54
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день, немного "допилил" ваш способ. Чтобы не удалять запрещенные знаки в именах и умных таблицах - слишком длинная формула
я сделал поле "Псевдоним" для каждого вида труб см. Лист1, а названиям таблиц с массивами труб - присваиваются имена псевдонимов.
Имя таблицы вытаскиваю ВПР ом. Но почему-то если ввести формулу в столбец Ду и использовать в ней ВПР выдает ошибку.
Не могу понять почему, формула такая:
Код

=ДВССЫЛ(ВПР(A14;Материал;2)&"[Dy]")

- в проверку данных выпадающий список.

Не подскажите где ошибка?? Файл приложил.
К сообщению приложен файл: 2475303-.xlsm (76.9 Kb)


Сообщение отредактировал neonar - Среда, 27.02.2019, 21:32
 
Ответить
СообщениеДобрый день, немного "допилил" ваш способ. Чтобы не удалять запрещенные знаки в именах и умных таблицах - слишком длинная формула
я сделал поле "Псевдоним" для каждого вида труб см. Лист1, а названиям таблиц с массивами труб - присваиваются имена псевдонимов.
Имя таблицы вытаскиваю ВПР ом. Но почему-то если ввести формулу в столбец Ду и использовать в ней ВПР выдает ошибку.
Не могу понять почему, формула такая:
Код

=ДВССЫЛ(ВПР(A14;Материал;2)&"[Dy]")

- в проверку данных выпадающий список.

Не подскажите где ошибка?? Файл приложил.

Автор - neonar
Дата добавления - 27.02.2019 в 20:14
Pelena Дата: Среда, 27.02.2019, 20:24 | Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 19182
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Оформите формулу тегами с помощью кнопки fx в режиме правки поста


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеОформите формулу тегами с помощью кнопки fx в режиме правки поста

Автор - Pelena
Дата добавления - 27.02.2019 в 20:24
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Подгрузка диапазона по условию в ячейке (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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