Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2010, 12:26   #1
Timbiz
Новичок
Джуниор
 
Регистрация: 17.02.2010
Сообщений: 9
Радость Иерархический список (таблица)???

Уважаемые программисты!

Пожалуйста подскажите как построить иерархический список в данном случае.

А именно, есть набор массивов (столбцов таблицы). Каждый массив (столбец) имеет ограниченное число элементов (ячеек).

Пользователь сам выбирает набор массивов.

К примеру.
Массив А1 состоит из элементов (11, 12, 13).
Массив А2 из элементов (21, 22).


Пользователь выбрал:
1) массив А2
2) массив А1

В итоге должна быть построена таблица (иерархический список):
А21 А11
А21 А12
А21 А13
А22 А11
А22 А12
А22 А13

А если, например, пользователь выбрал:
1) массив А1
2) массив А2

то в итоге должно получиться:
А11 А21
А11 А22
А12 А21
А12 А22
А13 А21
А13 А22

Причем, количество массивов одновременно выбираемых пользователем может быть от 1 до 8 (т.е. даны массивы А1, А2, А3, ..., А8)

Желательно увидеть пример кода построения массива на VBA, но можно и просто алгоритм.

Большое спасибо
Вложения
Тип файла: rar Ехample.rar (2.2 Кб, 24 просмотров)

Последний раз редактировалось Timbiz; 17.02.2010 в 13:09.
Timbiz вне форума Ответить с цитированием
Старый 17.02.2010, 13:04   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

С Вас пример таблицы.
Как юзер осуществляет выбор массивов?
Они находятся рядом,разбросаны по таблице?
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 17.02.2010, 13:10   #3
Timbiz
Новичок
Джуниор
 
Регистрация: 17.02.2010
Сообщений: 9
По умолчанию

Пример во вложении.
У юзера есть интерфейс (UserForm с элементами управления).
Выбранные массивы (т.е. названия массивов) заносятся в ListBox по порядку.

Есть двухмерный массив, который называется - a_list (i, j), где i - порядковый № массива в ListBox (столбца в таблице примера) , j - номер записи (элемента) в массиве

Причем есть также одномерный массив a_k(i), где хранится количество элементов (записей) в i-ом массиве.

Т.е. из примера в файле: a_list (1, 3) = Москва, a_k(1) = 3

Последний раз редактировалось Timbiz; 17.02.2010 в 13:21.
Timbiz вне форума Ответить с цитированием
Старый 17.02.2010, 14:22   #4
Timbiz
Новичок
Джуниор
 
Регистрация: 17.02.2010
Сообщений: 9
По умолчанию

Судя по количеству ответов, задача "простая"

Уважаемые дамы и господа, в принципе, если эта задача трудноразрешима, то мне нужно экспертное мнение от вас.

Дело в том, что я работаю экономистом в банке. И мы для автоматизации расчетов в Excel применяем макросы. И я имею кое-какие навыки программирования на VBA. Так вот, передо мной руководство поставило задачу автоматизации построения иерархической таблицы и соответственно табличных расчетов в зависимости от того, какие параметры выберет пользователь. Этими выбираемыми параметрами являются в данном примере массивы.

Я не профессиональный программист. И мне задача кажется очень проблематичной. Но руководство считает, что экономист должен самостоятельно решить эту задачу и она под силу не профессиональному программисту.

Но для меня это большой вопрос???

А как вы думаете?
Timbiz вне форума Ответить с цитированием
Старый 17.02.2010, 14:31   #5
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Имейте терпение,задача решается
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 17.02.2010, 14:37   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
если эта задача трудноразрешима
Нет, задача простейшая.

Был бы пример c формой, и готовыми элементами управления для выбора массивов - написал бы код за минуту.

Но... вариантов того, как могут располагаться данные на листе, как может быть организован ввод данных в форму, и т.д. - МНОЖЕСТВО.

Вообще, я бы заполнил комбобокс в цикле (без предварительного формирования массива)
Но сейчас я код писать не буду - вряд ли Вы его адаптируете под свою форму.
А пример файла с формой делать как-то не очень хочется.

Если Вы выложите (или вышлите мне на почту, в случае, если данные конфиденциальны) пример файла с ФОРМОЙ и ДАННЫМИ, СТРУКТУРА которых соответствует реальным файлам - смогу помочь.
Даже если там будет не форма, а подробное описание, как должна выглядеть и работать эта форма.
EducatedFool вне форума Ответить с цитированием
Старый 17.02.2010, 14:45   #7
Timbiz
Новичок
Джуниор
 
Регистрация: 17.02.2010
Сообщений: 9
По умолчанию

Уважаемый EducatedFool!

Увы, все наработки остались на работе. Выносить информацию не могу. И доступа к сети также нет. Все конфиденциально.

Может можно воспользоваться примером во вложении (файл Example.xls) и написать код на его основе. А далее я думаю адаптирую. Мне главное понять и увидеть участок кода построения такой таблицы, а интерфейс выбора столбцов (строк) может быть любой.
Timbiz вне форума Ответить с цитированием
Старый 17.02.2010, 15:47   #8
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Тестируйте,может пригодится

Убрал лишние переменные
Вложения
Тип файла: rar Ехample.rar (113.1 Кб, 75 просмотров)
Тип файла: rar Ехample М.rar (113.0 Кб, 40 просмотров)
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 17.02.2010 в 16:06.
doober вне форума Ответить с цитированием
Старый 17.02.2010, 16:15   #9
Timbiz
Новичок
Джуниор
 
Регистрация: 17.02.2010
Сообщений: 9
По умолчанию

Уважаемый doober!

Все, с первого взгляда, отлично. Работает. Буду адаптировать под свой интерфейс.

Большое спасибо.

А как еще добавить построение иерархии по столбцам? В моем примере раскладка по строкам. Т.е. еще ряд комбобоксов для заполнения шапки таблицы из этих же 8 массивов (причем если выбран массив в строку или в столбец, то он уже при дальнейших выборах не используется, что у Вас и реализовано, но только по строкам). ???
Вложения
Тип файла: rar Ехample_part2.rar (2.3 Кб, 27 просмотров)

Последний раз редактировалось Timbiz; 17.02.2010 в 16:37.
Timbiz вне форума Ответить с цитированием
Старый 17.02.2010, 16:21   #10
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Для нормального понимания задачи сделайте пример,укажите что .куда,как.
Как назвал Николай Гаврилович Чернышевский свой роман
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Иерархический список tanka123 JavaScript, Ajax 0 21.12.2009 05:48
C++. Односвязный список. Уничтожить список Olya90 Помощь студентам 2 10.06.2009 18:52
Сортировать иерархический список строк с пустыми ячейками domo22 Microsoft Office Excel 9 05.04.2009 13:37
Данные-проверка-список (список на другом листе) Inbox Microsoft Office Excel 7 26.12.2008 01:43
таблица artemavd Общие вопросы Delphi 3 23.07.2008 13:56