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

Вход

Регистрация

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

 

= Мир MS Excel/Зависиммые списки по именам листов с недопустимыми символами - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Зависиммые списки по именам листов с недопустимыми символами
k1601 Дата: Вторник, 17.06.2025, 19:43 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

2021
Доброго дня!

Столкнулся с задачей создания макроса на VBA, который должен открыть другую книгу, считать из нее данные по листам и создать таблицу из двух колонок, в которых:
1 колонка - ячейки с выпадающим списком имен всех листов
2 колонка - ячейки с выпадающим списком данных с соответствующего листа, выбранного в колонке 1 (то есть обычный зависимый список).

Сама по себе задача простая и не раз уже делал зависимые списки, но сейчас уперся в то, что многие имена листов содержат разные "недопустимые" для имени диапазона символы (пробелы, скобки и тд), типа «Труба Д16 (тип 1)». По идее все можно как-то переименовать, но это сильно осложнит работу с данными (помимо просто длительной мороки), так как такие имена нужны для работы и на них завязаны еще другие таблицы, созданные ранее. Ну и просто желательно видеть в первой колонке нормальные описания, а не комбинацию сокращений с заменами (типа «Труба_Д16_тип_1»).
Пробовал при создании имен списков делать замену имени листа на "правильные" - сами списки создаются нормально, но не могу придумать, как по "нормальному" значению в колонке 1 выбрать из соответствующего списка (с корректированным именем) нужные данные для второй колонки. То есть имеем в ячейке первой колонки значение «Труба Д16 (тип 1)», имеем именованный список «Труба_Д16_тип_1» с нужными данными для второй колонки, но как их связать?
Один из вариантов - создавать макросом для каждой ячейки во 2 колонке валидацию с выбором из соответствующего списка, а при изменении ячейки в 1й колонке – подменять имя списка. Но кажется слишком громоздко, и работать будет, наверно, медленно.
Может быть есть более изящная идея? Еще думал в направлении использовать ссылки/формулы в списках: типа в ячейке 1 отображается имя/значение, а реально это ссылка или формула на что-то другое и при обращении как-то подставляется нужное имя списка. Но реализацию не придумал.
Еще вариант - сделать через скрытую доп колонку, куда выводить вычисляемое "скорректированное" значение из колонки 1 и уже на нее навешивать зависимые списки для колонки 2.


Сообщение отредактировал k1601 - Среда, 18.06.2025, 08:35
 
Ответить
СообщениеДоброго дня!

Столкнулся с задачей создания макроса на VBA, который должен открыть другую книгу, считать из нее данные по листам и создать таблицу из двух колонок, в которых:
1 колонка - ячейки с выпадающим списком имен всех листов
2 колонка - ячейки с выпадающим списком данных с соответствующего листа, выбранного в колонке 1 (то есть обычный зависимый список).

Сама по себе задача простая и не раз уже делал зависимые списки, но сейчас уперся в то, что многие имена листов содержат разные "недопустимые" для имени диапазона символы (пробелы, скобки и тд), типа «Труба Д16 (тип 1)». По идее все можно как-то переименовать, но это сильно осложнит работу с данными (помимо просто длительной мороки), так как такие имена нужны для работы и на них завязаны еще другие таблицы, созданные ранее. Ну и просто желательно видеть в первой колонке нормальные описания, а не комбинацию сокращений с заменами (типа «Труба_Д16_тип_1»).
Пробовал при создании имен списков делать замену имени листа на "правильные" - сами списки создаются нормально, но не могу придумать, как по "нормальному" значению в колонке 1 выбрать из соответствующего списка (с корректированным именем) нужные данные для второй колонки. То есть имеем в ячейке первой колонки значение «Труба Д16 (тип 1)», имеем именованный список «Труба_Д16_тип_1» с нужными данными для второй колонки, но как их связать?
Один из вариантов - создавать макросом для каждой ячейки во 2 колонке валидацию с выбором из соответствующего списка, а при изменении ячейки в 1й колонке – подменять имя списка. Но кажется слишком громоздко, и работать будет, наверно, медленно.
Может быть есть более изящная идея? Еще думал в направлении использовать ссылки/формулы в списках: типа в ячейке 1 отображается имя/значение, а реально это ссылка или формула на что-то другое и при обращении как-то подставляется нужное имя списка. Но реализацию не придумал.
Еще вариант - сделать через скрытую доп колонку, куда выводить вычисляемое "скорректированное" значение из колонки 1 и уже на нее навешивать зависимые списки для колонки 2.

Автор - k1601
Дата добавления - 17.06.2025 в 19:43
  • Страница 1 из 1
  • 1
Поиск:

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