Здравствуйте друзья! У меня возникла проблема следующего рода, подскажите кто знает.
На Листе1 приложенного примера, в ячейки А1 я прописал три условия для УСЛОВНОГО ФОРМАТИРОВАНИЯ. Соответсвенно цвет меняется в зависимости от значения ячейки D1. Все работает как надо. Но тут появилась проблема. Если в одном из листов "фрукты, овощи или колбасы" вручную поменять цвет ячеек, то условия Условного форматирования в ячейке А1 Листа1 тоже придется менять вручную... В данном примере это сделать легко, но когда листов множества с этим может возникнуть большая проблема.
Теперь собственно вопрос, можно ли в екселе прописать условия Условного форматирования так, чтобы цвет в ячейке А1 Листа1 менялся автоматически, при изменении цвета в других листах? Ну например, если в листе "фрукты" в ячейке А2 я цвет сменю с желтого на красный, то необходимо чтобы цвет ячейки А1 Листа1 тоже поменялся на красный. Естественно при привязке ячейки А1 к ячейке D1. Вообще технически это возможно или Ексель не обладает такими функциями? И если все же не обладает, то может это можно сделать макросом?
Иными словами, Вы хотите ваши категории красить автоматически теми цветами, что зададите путем раскрашивания таблиц руками . Стандартными методами - нет , только VBA, который пробежится и скорректирует условное форматирование по всему файлу. Вопрос, по какому признаку код найдет то, что нужно поменять открытый, но решаемый.
Пример надо был просто перезаписать в первом сообщении, ну или убрать там оставив в №4
БМВ, понял. если без кода никуда, тогда переформулирую вопрос с более расширенной обрисовкой ситуации, и более корректными условиями. Думал что если возможно решение без кода, то просто скорректирую это решение под свой пример.
БМВ, корректирую вопрос с уточнением. На листе1 ячейка BD1 - формула, генерирующая результат от "1" до "10". Есть 10 листов с одинаковым диапазонов А1:I30, только на каждом листе диапазона присутствует свой цвет ячеек.
Если в ячейке BD1 будет результат вычисления формулы "1", то при использовании макроса диапазон А1:I30 листа1 должен окраситься так же, как диапазон листа2; если в ячейке BD1 будет результат вычисления формулы "2", то при использовании макроса диапазон А1:I30 листа1 должен окраситься так же, как диапазон листа3 и тд на все листы.
а Вы догадываетесь, что если вначале формула выдаст 2, то 2 зарисуется как 3, но той замысловатой раскраски из 2 Вы уже нигде не найдете она похоронена раскраской 3. Вы этого эффекта добиваетесь? понимаете, если последовательно формула Выдаст 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 - всё! все листы раскрашены как лист 11 и НИ ОДНА из живших там цветовых схем не сохранилась. после этого чты бы негенерировалось формулой закраска ячеек не поменяется, после этого нет смысла вообще копировать раскраски они уже одинаковы.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Ігор Гончаренко, Может я скажу глупость ввиду своей непонятливости работы макросов)) или вы меня просто не поняли. Не требуется, чтобы все листы красились в последовательной цепочки. Цвет листов "2-11" это константы. они не меняются (точнее меняются но вручную). В том и смысл, что требуется, чтобы цвет диапазона менялся только на Листе1. Тоесть перевыложил пример. В ячейке BD1 - результат вычисления "10". Тоесть диапазон А1:I30 после использования макроса должен стать такого цвета как в примере. Эти цвета такие же как на листе 11. Если я в ячейку BD3 введу значение 8, то цвет диапазона на первом листе. после использования макроса, должен стать таким же как и на листе "9".
и вообще "Условное форматирование" - это вполне определенный инструмент Excel а то, что описываете Вы - это "как скопировать заливку ячеек с другого листа?"
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Ігор Гончаренко, изначально идея таковой и была, использовать условное форматирование, но подсказали что сделать без макроса это невозможно, поэтому вопрос и развился дальше
Nik57, Сказочник из Вас прям скажем не важный. из первого примера Есть лист Фрукты, с перечислением конкртеных фруктов. Список руками закрашен желтым. В С1 ввели мандарин и в d1 что это фрукт пошарив по спискам. Далее УФ покрасил С1 в соответвии с категорией. Так? Что при изменении цвета формата в списках должен перестраиваться формат УФ.
Ігор Гончаренко, да все работает так как надо! Только я ничего не понял, как все это происходит))) Это же не макрос, я правильно понимаю?) Думал будет код, который можно скопировать к себе и поправить где нужно... а тут что то загадочное, не могли бы пояснить)))
а вот и макрос)) в модуле листа 1 скромные несколько строк:
Код
Private Sub Worksheet_Calculate()
If Cells(1, 56) > 1 And Cells(1, 56) < 11 Then
Worksheets("" & Cells(1, 56) + 1).Cells(1, 1).Resize(30, 9).Copy
Cells(1, 1).PasteSpecial Paste:=xlPasteFormats
End If
End Sub
срабатывает он при каждом пересчете листа. формула в ВД1 что-то новое сосчитатла - все перерисовалось, даже если сосчитала тоже самое - все равно на лист1 ячейки заливаются цветами с соотв. листа.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Ігор Гончаренко, ломал я голову, ломал, так ничего и не смог придумать. Хотел домыслить сам, но не смог получить под свою таблицу конечный результат. Вот снова прошу помочь уже по конкретному своему примеру. В моей таблице 110 листов. Лист 1-21 заполнены информацией, не относящейся к тематике проблемы. С листа 22 по лист Лист 31 включительно диапазоны A:I окрашены в цвет. Лист 32, так же несет вторичную информацию как и первые листы. Листы 33-42 включительно - листы на которые должен работать макрос, остальные листы второстепенны.
На листах 33-42 диапазоны A:I, на которые и должен работать макрос. Тоесть, если в листе 33 ячейка BD =1, то диапазон окрашивается с листа 22, если в листе 33 ячейка BD =2, то диапазон окрашивается с листа 23 и тд ....... если в листе 33 ячейка BD =10, то диапазон окрашивается с листа 31.
если в листе 34 ячейка BD =1, то диапазон окрашивается с листа 22, если в листе 34 ячейка BD =2, то диапазон окрашивается с листа 23 и тд ....... если в листе 34 ячейка BD =10, то диапазон окрашивается с листа 31.
и тд......
если в листе 43 ячейка BD =1, то диапазон окрашивается с листа 22, если в листе 43 ячейка BD =2, то диапазон окрашивается с листа 23 и тд ....... если в листе 43 ячейка BD =10, то диапазон окрашивается с листа 31.