Страницы: 1 2 След.
RSS
Протягивание макросом УФ-форматирования гистограммы с использованием относительных ссылок.
 
Здравствуйте.
В экселе не ставятся относительные ссылки в условном форматировании - для гистограмм.

Сейчас у меня действует УФ с гистограммой - в ячейке P11.
Все обозначения в формуле этой ячейки - абсолютные (а сделать их относительными - эксель не дает).
Формула УФ - использует данные из столбцов P и I.

Посоветуйте - как макросом, с использованием события WorksheetCalculate - протянуть эту формулу вниз - по столбцу P, расставив условное форматирование с измененными формулами ?

То есть, если уж эксель не дает использовать относительные ссылки для УФ гистограмм - то может быть это макросом можно как-то сделать.
(В таком случае - макрос расставит ссылки - на соответствующие ячейки, а потом сделает их - абсолютными, чтобы не противоречить правилам экселя.)
 
А какого результата Вы хотите достичь? Какова цель?
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Dyroff, в смысле какова цель ?
Я же написал в первом сообщении - что цель распространить УФ из ячейки P11 - на нижние ячейки.

Потому что эксель не дает напрямую это сделать, запрещая в формуле УФ - устанавливать относительные ссылки.
 
Цитата
SkyGreen написал:
распространить УФ из ячейки P11 - на нижние ячейки.
Выделяете ячейки с P11 и ниже, а затем применяете к ним гистограммы.

upd:
Я понял о чем Вы..... вряд ли получится обойти данный момент, в том виде, в котором Вы его описали макросом.
Тут надо искать не способ. как сделать ссылки относительными, а как решить нужную Вам задачу, с нужными условиями. Возможно решение вообще не будет связано с относительными и абсолютными ссылками
Изменено: Dyroff - 22.03.2019 01:29:34
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Dyroff, ясно. А как это сделать? Как применить формулу к ячейкам - на уровне макроса?
Изменено: SkyGreen - 22.03.2019 02:04:35
 
SkyGreen, ну вот смотрите - в гистограммном УФ - два параметра - макс и мин значение.

Минимальное значение - это ссылка на ячейку из другого столбца.
Максимальное значение - это та же самая ссылка, только возведенная в квадрат.

Вот нужно какое-то решение  -  макросом назначить свои абсолютные ссылки - на каждую заполненную ячейку столбца P -от ячейки P11 - на нижние ячейки.
 
Копируете ячейку с УФ, и спецвставкой форматы вставляете в нужные места.
Лично я, для таблицы 35х50 ячеек, делал именно так. И даже не стал париться с макросом.
Главное условие - взаимное расположение ячеек и гистограммой и условиями должно быть одинаковым.
 
RAN, так как это сделать-то ?
Там же ссылки везде абсолютные, а относительные ссылки эксель расставить - не дает.
Изменено: SkyGreen - 22.03.2019 22:02:38
 
Соврал. Однако макросом вставлял.
Скрытый текст
Изменено: RAN - 22.03.2019 22:14:48
 

Макрос писать не буду, проще надо быть и все в мире относительно а не абсолютно :-)

Копируйте формат.

По вопросам из тем форума, личку не читаю.
 
Скопировал. Поглядел. Не канает.
 
Цитата
RAN написал:
Не канает.
Пример в студию. У меня все ок.
По вопросам из тем форума, личку не читаю.
 
А ты не диапазон смотри, а формулу.
.MinPoint и .MaxPoint должны быть Offset(,-7)
А у тебя?
Изменено: RAN - 22.03.2019 23:03:02
 
Что у меня? У меня так и есть. ,ну хорошо, было жестко на столбец, но можно и динамику
Изменено: БМВ - 22.03.2019 23:08:32
По вопросам из тем форума, личку не читаю.
 
!
 
Андрей, ну там же переменная, а там =RC[-7] - и все. Ну прикололся я назвав его _i11 . Значения поменяй в ячейках и посмотри как меняются.
По вопросам из тем форума, личку не читаю.
 
Тфу на вас много раз! Приколист...
Вот имя я в УФ вставить не сварил. А было-бы правильнее, в плане редактирования.
 
RAN, что-то не работает.
Выдает ошибку Runtime error 1004 Application-defined or object-defined error

Подсвечивает строку:
With .Offset(1, 1).Resize(.Rows.Count - 1, .Columns.Count - 1)
 
Я, вообще-то макрос не правил. Как он был, так и выдрал из своего файла. В нем все диапазоны другие.
Используйте вариант БМВ, это будет правильнее.
 
БМВ, - данное решение почему-то очень плохо работает.

При простановке значений в случайных ячейках - столбца I - иногда меняется гистограмма не только в ячейке что стоит напротив в столбце P, но и еще в ряде других ячеек столбца P.
В результате становится непонятно - какие значения верно показаны гистограммой, а какие нет - если столбец с диаграммами - периодически так "пляшет".

Как такое возможно, ведь переменная вроде бы задана - строго для той ячейки столбца P, что стоит напротив ?
Как это исправить ?
Изменено: SkyGreen - 23.03.2019 06:21:42
 
По моему, дело не в бобине.
Вы смотрели, что навставляли? Рекомендую.
 
Цитата
RAN написал:
Вы смотрели, что навставляли? Рекомендую.
Спасибо за рекомендацию.
Да, я внимательно посмотрел что навставлял.
Каждой ячейке столбца P - соответствует переменная ссылающаяся на соответствующую ячейку столбца I.

И что вы этим хотели сказать ?
Изменено: SkyGreen - 23.03.2019 06:36:38
 
Цитата
SkyGreen написал:
Каждой ячейке столбца P - соответствует переменная ссылающаяся на соответствующую ячейку столбца I.
Нет.
 
SkyGreen,  Воспроизвести получилось, по идее еде один пересчет и отображает все правильно, но это не корректно. Нужно формат копировать не на круппу ячеек, а по одной, то есть чтоб в результат применение было не к =$P$23;$P$26  например, а отдельно =$P$23 и=$P$26. Но это проще чем переписывать все условия. хоть руками хоть макросом. Руками проще делать кистью, выделить ячейку P11, двойной клик по кисти на панели, и потом по каждой нужной кликаем отдельно а не выделяем все. закончили, опять двойной клик по кисти или ESC.
По вопросам из тем форума, личку не читаю.
 
..
Изменено: SkyGreen - 23.03.2019 07:39:29
 
Цитата
БМВ написал:
копировать не на круппу ячеек, а по одной, то есть чтоб в результат применение было не к =$P$23;$P$26  например, а отдельно =$P$23 и=$P$26.
А сделать-то это как ?
Их там сотни.
 
БМВ, и кроме того при открытии файла в Excel2007 - у меня подобный способ - вообще не работает.

Как это исправить ?
Как запустить это решение в программе Excel2007 ?
Изменено: SkyGreen - 23.03.2019 09:02:18
 
SkyGreen, Если в 2007 не работает, тогда только вариант с отдельными УФ на каждую ячейку и все это макросом. Проверить не могу ибо 2007 пропустил мимо как страшный сон. Я не люблю писать макросы это тут всем хорошо известно. Но еслиб делал, то копировал бы  так
Код
    Range("P11:P13").Copy
    For i = 14 To 26 Step 3
        Set mycell = Cells(i, "P").Resize(3)
        mycell.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        With mycell.FormatConditions(1)
            .MinPoint.Modify _
                newtype:=xlConditionValueNumber, _
                newvalue:=Replace(.MinPoint.Value, "_i11", mycell.Offset(, -7).Address)
            .MaxPoint.Modify _
                newtype:=xlConditionValueNumber, _
                newvalue:=Replace(.MaxPoint.Value, "_i11", mycell.Offset(, -7).Address)
        End With
    Next i
По вопросам из тем форума, личку не читаю.
 
Миш, так условия получатся одноразовые. Нет?
И зачем вообще копировать?
Изменено: RAN - 23.03.2019 10:06:04
 
Анлрей, да, разовые, но это исключительно для
Цитата
SkyGreen написал:
открытии файла в Excel2007
Копировать - ну а вдруг захочется цвет поменять или … проще смоделировать в родительской ячейке, чем в код залезать. Но это все по тому что я не люблю макросы :-)
По вопросам из тем форума, личку не читаю.
Страницы: 1 2 След.
Наверх