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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2013, 17:30   #1
Katerinka13
 
Регистрация: 30.01.2013
Сообщений: 8
По умолчанию Иерархическая группировка

Уважаемые программисты!
Доброго времени суток!

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

Заранее, Огромное, Вам, Спасибо за отзывчивость и помощь!
Вложения
Тип файла: rar Group.rar (23.2 Кб, 14 просмотров)
Katerinka13 вне форума Ответить с цитированием
Старый 31.01.2013, 18:11   #2
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 906
По умолчанию

Katerinka13, вы не написали в своём сообщении, на основе чего данные на листе "затраты" в столбце "B" относить к тем или иным статьям.

Например, на листе "затраты" в столбце "B" есть запись "Статья расходов 1". Как узнать, к чему эта запись относится: к "ФОТ", к "Страховые взносы" или к другой группе?
Скрипт вне форума Ответить с цитированием
Старый 31.01.2013, 20:23   #3
Katerinka13
 
Регистрация: 30.01.2013
Сообщений: 8
По умолчанию

Да, спасибо.

Зависимость статьи затрат от статьи расходов выясняется в процессе диалога с пользователем, т е пользователь сам решает какую статью к какой относить, именно поэтому и было принято решение создание формы со списками.
Katerinka13 вне форума Ответить с цитированием
Старый 31.01.2013, 21:45   #4
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 906
По умолчанию

Katerinka13, просто замечание по коду, а не решение вашей задачи.
Язык VBA имеет особенность: тип данных нужно указывать для каждой переменной:
Код:
Dim n As Integer, k As Integer
Если не указывать тип данных для переменной, то у переменной будет тип данных Variant.
Скрипт вне форума Ответить с цитированием
Старый 31.01.2013, 21:51   #5
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 906
По умолчанию

Katerinka13, макрос за один запуск должен все данные из листа "затраты" сгруппировать или иногда потребуется в группировку добавить какой-то один пункт из листа "затраты"?
Скрипт вне форума Ответить с цитированием
Старый 31.01.2013, 22:55   #6
Katerinka13
 
Регистрация: 30.01.2013
Сообщений: 8
По умолчанию

Макрос за один запуск должен иерархически группировать статьи, выбранные пользователем в форме т. е. "Выбор основной статьи" из листа1, что есть первый уровень, и "выбор статьи расходов" из листа2 ("затраты"), что есть второй уровень, но если пользователь в качестве основной (1 уровень) выбрал статью которая уже имеется в таблице, (т е некая группировка с основной статьей уже проводилась), то в эту группировку добавляется только статья расходов второго уровня.

Например: в таблице уже имеется группировка ФОТ -> статья расходов 1 -> статья расходов 5.
Пользователь через форму выбирает combobox1 - ФОТ, combobox2 - Статья расхода 3. И нажимает кнопочку записать, после чего существующая группировка в таблице принимает следующий вид: ФОТ -> статья расходов 1 -> статья расходов 5 -> статья расходов 3.

"А ведь я еще тот мастер по объяснению"=\
Katerinka13 вне форума Ответить с цитированием
Старый 01.02.2013, 06:59   #7
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 906
По умолчанию

Katerinka13, вы акцент делаете на то, что нужно именно работать со списком на вашей форме.

А если вот так сделать.

Сделать один макрос, который будет проводить полную группировку всех данных из листа "затраты":
  1. на Excel-листе делается так: в один столбец пишется "Основная статья", в другой столбец "Статья расхода". Этот лист можно назвать "Лист-соответствие";
  2. запускаете макрос;
  3. макрос движется по листу "затраты" по столбцу "B", начиная со второй строки, вниз до первой пустой ячейки;
  4. макрос определяет на основе "Листа-соответствия" к какой основной статье относится статья расходов и таким образом группирует данные.

Сделать второй макрос, который будет добавлять в уже существующую группировку отдельные данные из листа "затраты":
  1. пользователь на листе "затраты" делает активной ячейку, данные из которой нужно добавить в группировку;
  2. запускает макрос, который добавляет данные в уже существующую группировку.
Можно для второго макроса сделать так, чтобы макрос работал не с одной активной ячейкой, а с выделенными ячейками.

Последний раз редактировалось Скрипт; 01.02.2013 в 07:39.
Скрипт вне форума Ответить с цитированием
Старый 01.02.2013, 17:39   #8
Katerinka13
 
Регистрация: 30.01.2013
Сообщений: 8
По умолчанию

Проблема в том, что одна и та же статья расходов, из листа "затраты", может относиться к разным основным статьям.

Например какие нибудь услуги один раз относят к основной статье "услуги вспомогательных подразделений" а в другой раз их надо записать в статью "прочие услуги".
Katerinka13 вне форума Ответить с цитированием
Старый 02.02.2013, 09:48   #9
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 906
По умолчанию

Katerinka13, код не делает группировку, т.к. группировка происходит автоматически, когда добавляется строка.
Вложения
Тип файла: zip Group_v_2.zip (35.2 Кб, 35 просмотров)
Скрипт вне форума Ответить с цитированием
Старый 02.02.2013, 12:47   #10
Katerinka13
 
Регистрация: 30.01.2013
Сообщений: 8
По умолчанию

Спасибо Вам, Огромное за помощь, отдельное спасибо за комментарии к коду! теперь намного попроще будет, будем двигаться дальше=)

Последний раз редактировалось Katerinka13; 02.02.2013 в 12:51.
Katerinka13 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Иерархическая структура таблицы базы mdb Wikly БД в Delphi 7 07.05.2010 22:55
группировка Мингиян Microsoft Office Excel 2 23.04.2008 23:43
Группировка SveSve Microsoft Office Excel 3 21.03.2008 11:50