не знаю можно ли такое вообще физически реализовать в VBA
нужна цветовая считалка - есть список товаров и 5 базовых цветов excel; красным пользователь выделяет общее количество, над красным всегда будет строчка с годами. Оранжевым, желтым салатовым и зеленым выделяются группы значений которые за определенный год должны быть просуммированы между собой и посчитаться долей к общему. после нажатия на макрос должны вылезти доп. строчки с просчитаными значениями в самом начале. Дополнительная сложность: если к примеру есть желтый и оранжевый а зеленых нет. ну и естественно красным всегда выделена 1 строчка, а цветами может быть выделена как одна строчка, так и несколько, совместных или нет
SAS888, спасибо! а почему эта штука ошибку в строке ReDim a(1 To 4, 1 To c): ReDim tmp(1 To c) выдает когда я другие таблицы использую более масштабные или более мелкие. Я вроде понимаю, что тут что-то связано с выбором массива, но немного не вьезжаю, что подправить чтобы универсально стало
kuklp написал: как уже этих "маляров" убедить, что работать надо с данными
АБСОЛЮТНО согласна! Жаль пользователей: им "внедряют" свое "цветное" видение результатов обработки информации ретивые разработчики алгоритма! Пользователю-экономисту нужен элементарный "протокол" обработки текущей информации без цветных затей!
Kosme написал: ...а почему эта штука ошибку в строке ReDim a(1 To 4, 1 To c): ReDim tmp(1 To c) выдает...
В этой строке ошибка возможна только в одном случае, когда переменная "c", объявленная, как Long, меньше единицы. В примере, по которому я делал код, переменная "c" определялась как номер последнего заполненного столбца в 9-ой строке (строке с заголовками) минус 2. А обработка таблицы начиналась с 10-го столбца (см. Ваш файл из #1). Подозреваю, что Вы применяете макрос для данных, которые на листе расположены иначе (например, 9-я строка пустая). Проверьте. P.S. Т. к. макрос использует метод SpecialCells, то, для предотвращения ошибок (если нет ячеек какого-либо цвета),часть кода выполняется при отключенном обработчике ошибок. Поэтому, в случае возникновении проблем, прикрепите этот "проблемный" файл с "разукрашенными" строками и макросом. P.P.S. Абсолютно согласен с тем, что такой (цветной) подход к реализации задачи не есть правильный. Подумайте. Может стоит использовать другой способ пометки строк?
SAS888 написал: P.P.S. Абсолютно согласен с тем, что такой (цветной) подход к реализации задачи не есть правильный. Подумайте. Может стоит использовать другой способ пометки строк?
спасибо за пояснение, частично разобрался и подправил код, не понял единственное как сделать чтобы копировалась шапка при данной таблице и просчет начинался со столбца B, в остальном всё заработало
1. Ну, если строка с заголовками (начало таблицы с данными) не постоянна, то ее можно определить. 2. Начинать со столбца "B" - это тоже понятно. 3. А что значит
Цитата
чтобы копировалась шапка при данной таблице
не понятно. Что такое "шапка"? Это с какой по какую строку? К тому же, макрос ничего никуда не копирует. Он добавляет в начало листа 5 строк, раскрашивает их и помещает туда все вычисленные значения. Если Вы запускаете макрос при уже существующих результатах, то эти строки нужно удалять в самом начале кода. Поясните "на пальцах" какие строки есть "шапка" и что куда нужно копировать? Как определить первую строку таблицы с данными (может по значению заголовка в 1-ом столбце)?
Под шапкой я имел ввиду - строчку с годами, она вверх не перескакивает единственное что в ней постоянно это упоминание в каком то виде годов, а ячейка из первого столбца принимает разные значения типо Importers, Exporters, Product Codes и несколько других, в приложении разные виды табличек
Тем, что задача совершенно другая стоит, сделать быстрый и удобный цветовой калькулятор, который позволит за 4-5 сек накидать нужные комбинации и быстро просчитать не сумму а отношение долей к общему и вывести в отдельный диапазон который уйдет в дальнейшую работу
Посмотрите пример во вложении (строки окрашены в случайном порядке). 1. Определение начала таблицы осуществляется поиском строки, которая окрашена соответствующим (как у Вас во всех таблицах) цветом. 2. Таблица может содержать любое количество строк и столбцов, располагаться, начиная с любой строки и в заголовках иметь объединенные ячейки. 3. Выполнять макрос можно несколько раз. Если предыдущие результаты расчетов уже существуют, то они будут обновлены. Если их нет - сформированы. Проверяйте.
P.S. Выполняйте требования модераторов! Иначе, Вы можете не дождаться ответов.