Страницы: 1
RSS
Перенос информации из ячейки в примечание
 
Друзья, привет,

в очередной раз решала облегчить/автоматизировать  рабочий процесс, подскажите, пожалуйста как лучше релизовать следующую задумку:
есть сводка остатков различных продуктов (продукт 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, но так как цен для одного продукта может быть много, то задумка отпала.

Заранее спасибо.
Алиса  
 
Можно так придумать
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Добрый день.
Можно каким-то таким макросом:
Скрытый текст
Изменено: Пытливый - 07.03.2017 14:54:41
Кому решение нужно - тот пример и рисует.
 
Ребята,
спасибо за отклики.
Взяла в работу код от Пытливый, но есть пара глупых вопросов:

1)в какой строке он определяет рендж в который вставлять комментарий так как сейчас он вставляет начиная с ячейки 1 . 1, при изменении, например на 8. 8 вылезает ошибка, что рендж не найден для вставки.
2) После перехода на лист "продукт" код обнуляет комменты,  но делает это  для всего листа, можно ли ограничить это лишь заданным ранее для вставки диапазоном.

Заранее спасибо

Алиса
 
По данным из примера на листе product проверяются ячейки текущего диапазона относительно ячейки А1. Текущий диапазон (CurrentRegion) - это область, в которой находится исходная ячейка, заполненная данными, и отделенная от других данных пустыми строками/столбцами. Т.е. в коде задается шерстить строки текущего диапазона от ячейки А1 на совпадение наименования продукта из исходной таблицы (исходная таблица предварительно забирается в массив).
Также и с удалением комментариев - комментарии удаляются в текущем диапазоне для ячейки А1, а не на всем листе.

Если вы хотите удалять комментарии в каком-то другом диапазоне, и вставлять - тоже, да еще ограничивать размер этого диапазона предварительно - покажите в примере конкретно - где, какой и т.д., поскольку решения рисуем для данных ИЗ ПРИМЕРА и расположение данных (с каких строк/столбцов начинаются таблицы, как данные расположены) влияют на код (в коде идет привязка к строке начала таблицы, например).
Кому решение нужно - тот пример и рисует.
 
Пытливый,
спасибо большое за разъяснения.
Тогда немного дополню условия задачи:
есть лист "Стокс", но он -в виде пивота, который находится неизменно в этом рендже (A- family,B-product,C-price,D-stock) , но может увеличиваться/уменьшаться от месяца к месяцу при появлении новых продуктов.
Расчетный лист - лист "product" и все названия продукты находятся в рендже H (до этого служебные поля), также может увеличиваться/уменьшаться от месяца к месяцу при появлении новых продуктов.

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

Заранее большое спасибо
Алиса
 
Пивот, рендж ))
 
Взяла за основу макрос от Пытливый,
единственный вопрос - можно ли добавить округление внутри макроса для значений. Например, до десятичных.

Заранее спасибо.
Алиса
 
Можно. Например, в этой части:
Код
                If arrA(lngJ, 1) = .Cells(lngI, 1) Then
                    strS = strS & Chr(10) & arrA(lngJ, 2) & " - " & Round(arrA(lngJ, 3), 1)
                End If

добавляем округление до первого знака после запятой значений из третьего столбца исходной таблицы при помощи функции ROUND
Кому решение нужно - тот пример и рисует.
 
Пытливый,
спасибо большое за помощь  
Страницы: 1
Наверх