Есть большой расчетный файл с проекцией остатков на каждый день с горизонтом на 6 недель. Требуется возможность быстро перемещаться между днями на всем диапазоне. Файл обновляется раз в неделю. Удаляется прошедшая неделя и соответственно добавляется новая.
Появилась мысль реализовать это через своего рода "календарь". Чтобы в правой части находился выпадающий календарь (аналог slicerа). При клике на определенную дату макрос находил бы в определенной строчке нужную дату (предположим все даты стоят во 2 строчка F2, K2 и тд) и скролил бы к ней экран.
Друзья, привет, в очередной раз решила заняться улучшением текущих рабочих инструментов, прошу у вас помощи в этом интересном деле.
Есть расчетный файл состоящий из 4 листов - лист 1 - calc - расчетный лист 2 - stock - количество уже произведенной продукции на складе по опред. цене лист 3 - shipments - порядок отгрузок цен по месяцам лист 4 - declaration - месяц, когда декларируется определенная цена
Задачу которую пытаюсь решить:
автоматизировать расчеты необходимого производства на листе 1 (calc) с помощью макроса.
Вычисления выполняются простыми действиями: определяется месяц, когда планируется производиться продукция по определенной цене (согласно листу 4 declaration), затем смотрим сколько месяцев продукт собирается отгружаться (лист 4 shipments), определяется какой остаток продукции по требуемой цене есть уже сейчас на складе (лист 2 stock). Затем в колонках РР change в определенном месяце (согласно листу 4 declaration) производятся вычисления - складывается прогнозы продаж за месяца, где планируются продажи продукта (согласно листу 3 shipments) и вычитается остаток продукции который уже есть (лист 2 stock).
Продуктов у компании много и чтобы посчитать их требуется достаточно большое количество времени.
Друзья, привет, подскажите, пожалуйста, как реализоваться hide колонок с определенным заголовком в диапозоне.
Придумала, как скрыть с 1 константой , например колонку с заголовком Stock в диапозоне A6:SQ6, но иногда требуется сделать hide колонок с 2 или 3 заголовками.
Код
Sub asda()
Application.ScreenUpdating = False
Dim c As Range
For Each c In Range("A6:SQ6")
c.EntireColumn.Hidden = (c.value = "Stock")
Next c
Application.ScreenUpdating = True
End Sub
Sanja, спасибо за решение, адаптировала под себя, все работает. Единственный вопрос - можно ли как-то ограничить технически рендж удаления, например не весь лист, а такой-то рендж.
требуется удалить содержание ячеек в колонках "PP change" для каждого месяца , но только в ячейках без заливки, или имеющий определенный цвет., например в данном примере - серый и желтый, но оставляет значения в ячейках залитыми другим цветом, например синим.(в них стоят суммирующая формула) Желательно, иметь возможность выбора в коде какой цвет заливки ячейки макрос оставляет, а такой удаляет.
Список ассортимента меняется постоянно, но неизменно заканчивается на total all, то есть можно использовать данную константу как ограничитель массива.
yozhik, спасибо за идею. Пока что ею воспользуюсь.
Недостатки получаются: 1) когда 2 цены в 1 месяц. 2) при большом массиве начинает виснуть excel из-за раскраски ячеек, а визуализации нереально работать (поэтому говорила о комментариях, так как они меньше грузят систему)
Есть сценарий, где указывается какая цена должна продавать для определенного продукта в определенный месяц. (sheet "Pricing Scenario") На основе расчетов составляется сводная таблица (sheet "Pivot") в котором отображается на основе текущего производства и запасов как реально будет идти продажи. (месяц -цена)
Требуется: сравнить сводную таблицу и массив со сценариями по каждому продукту и отобразить, где есть расходятся цены в определенном месяце. Сводная таблица и массив каждый месяц увеличивается, уменьшается. ( меняется количество продуктов, количество месяцев) С точки зрения вида - желательно, отобразить в виде цвета, либо примечания расхождение по каждому продукту на листе Pricing Scenario, но это не окончательная версия в моей голове, буду рада альтернативам.
Заранее большое спасибо за ответы и идеи. С уважением, Алиса
Друзья, привет, подскажите, пожалуйста, как реализовать следующую задумку (см. файл в приложении):
имеется набор продуктов в колонке I. Для каждого продукта есть промежуточная сумма. Количество продуктов может варироваться.
Требуется, чтобы макрос отсчитывал количество строчек между тоталами и вставлял сумму диапозонов в соседнии ячейки(=SUM(J26:J31)), соседних столбцов. Также чтобы последяя строчка "Total" суммировала все промежуточные subtotal.
Subtotal и Total всегда имеют определенный цвет заливки для удобства.
Владимир, спасибо большое, то что нужно. Единственный вопрос: как поменяется код, если на листе pricing названия продуктов находятся в колонке "H". (см. пример), либо как сделать разный отступ - сначала на 12 ячеек, затем шаг по 5 ячеек. Все остальное адаптировала под себя.
Владимир, подскажите, пожалуйста, возможно ли реализовать поиск и сравнение продуктов на 2ух листах, если продукт найдет, то макрос переносит цену в примечание к ячейке.
Проблема в том что в рабочем файле продукты разбиты на листе по форматам/видам и линейная вставка, к сожалению, не является решением. (приложила файл с примером)
Владимир, спасибо большое за помощь. Можете, пожалуйста, добавить комменты к коду. За что отвечает переменная R и С и почему они = 2 to UBound(arr, 1) и UBound(arr, 2)
Если я правильно понимаю, то р - за определение размерности массива на листе pricing, начиная от ячейки а5.
Сергей, спасибо за помощь. Задача - перенести значения в виде примечания к ячейке. Например, макрос нашел продукт 1 на листе pricing, определил, что в марте он стоит 135. Пошел на лист product, нашел продукт 1, нашел март и занес в виде примечания "135" к ячейке "pp change"и дальше циклом все продукты. Скорей всего тут нужно функция "CurrentRegion", сейчас гуглю про нее как раз.
Друзья, привет, помогите, пожалуйста, реализовать следующую идею (см. вложенный файл): требуется перенести информацию о цене продукта в определенный месяц из листа pricing на лист product в виде коммента в ячейку PP change. В файл каждый месяц добавляет новый месяц. Так что желательно иметь динамический диапозон.
Пытливый, спасибо большое за разъяснения. Тогда немного дополню условия задачи: есть лист "Стокс", но он -в виде пивота, который находится неизменно в этом рендже (A- family,B-product,C-price,D-stock) , но может увеличиваться/уменьшаться от месяца к месяцу при появлении новых продуктов. Расчетный лист - лист "product" и все названия продукты находятся в рендже H (до этого служебные поля), также может увеличиваться/уменьшаться от месяца к месяцу при появлении новых продуктов.
Помогите, пожалуйста, адаптировать ваш код, чтобы комменты удалялись именно в рендже H, а дальше заносились данные из пивота в виде комментов в этот же рендж.
Ребята, спасибо за отклики. Взяла в работу код от Пытливый, но есть пара глупых вопросов:
1)в какой строке он определяет рендж в который вставлять комментарий так как сейчас он вставляет начиная с ячейки 1 . 1, при изменении, например на 8. 8 вылезает ошибка, что рендж не найден для вставки. 2) После перехода на лист "продукт" код обнуляет комменты, но делает это для всего листа, можно ли ограничить это лишь заданным ранее для вставки диапазоном.
в очередной раз решала облегчить/автоматизировать рабочий процесс, подскажите, пожалуйста как лучше релизовать следующую задумку: есть сводка остатков различных продуктов (продукт 1-5) и он имеет различные цены. Требуется перенести диапазон продуктов с 1 страницы (stocks) в виде примечаний на страницу 2 (product) , например:
макрос нашел на станице 1 продукт 1(stocks), нашел что его 3 строчки с разной ценой 125,130,135, пошел на 2 страницу (product) , нашел продукт 1 там и перенес значения в виде примечания продукт 1 - примечание 125 - 0,05 130 - 9.92 135 - 7.71
была мысль делать через функцию application.lookup, но так как цен для одного продукта может быть много, то задумка отпала.
Привет, друзья, помогите, пожалуйста, в очередной раз советом в реализации следующий задумки для упрощения жизни в работе)
Есть продукт, который когда-то был произведен по определенной цене и лежит на складе , есть план продаж продукта и требуется рассчитать производство аналога по такой же цене при определенных условиях: 1) сначала распродается продукт со склада, затем калькулируется допроизводство (сумма плана продаж продукта по опред. цене минус уже готовая) 2) производство возможно только в определенный месяц (возможность изменять периоды) 3) ограничение мощности производства (если мощности не хватает, то переносится недостающая часть на следующий возможный месяц)
Для наглядности прикладываю файл с пояснениями. Для наглядности разбила продукты с разными ценами в разные таблицы в жизни это выглядит, как змейки - от самой низкой к самой высокой цене.
Друзья, добрый вечер, подскажите, пожалуйста, как лучше решить данную задачу формулой. (см.приложение) Была идея с vlookup, index+match, но как после нахождения 1 совпадения вытягивать 2 не придумала. Еще была гениальная идея через IF, но тогда получается не красиво. Заранее большое спасибо Ваша Алиса
Bema, спасибо за быстрый ответ. Да, то что нужно по формату. Я пыталась через if написать, но слишком большая формула получалась. Не подумала, что можно через index. Единственный вопрос - при изменении диапазона и пересчете формула выдает - "value". Диапазон числовой, по идее не должно быть проблем.
Друзья, добрый день, обычно всегда находила ответы на нужные вопросы через поиск или гугление, но к сожалению на текущий вопрос информации из обычных источников не нашла, так что пришлось регистрироваться 8)
Работаю в продажах. И как во всех продажах у нас случаются промо акции и длятся они, обычно, пару месяцев. Так как продуктов много, то получается целый массив, который было бы удобно фильтровать по диапазону.
Помогите, пожалуйста, решить такую задачу: есть много продуктов и временная шкала, предположим от декабря 2016 до декабря 2017. Требуется, чтобы в ячейке рядом выводилась продолжительность таких промо-акций, например февраль-март. При изменении, месяца ячейка бы меняла свое значение на новый диапазон. (ячейка - sales duration) Для наглядности прикладываю файлик с примером.