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

Если в начале строки присутствует 1, то это значит что соответствующий квадрат - и контур и заливка - непрозрачные синие (если 2 - то красный).
Чтобы исчез весь прямоугольник - нужно исключить обе единицы. Если там будет хотя бы 1 единица - то прямоугольник просто уменьшится.
Если в начале строки - нет единицы (в обеих ячейках) - то квадрат становится прозрачным целиком (и контур и заливка). Событие WorkSheet Change
 
Помогите
 
И чем помочь-то бедолаге? Макрос готовый выложить?
Вспоминаем...
-Так вы и есть за меня будете?
-Ага!
 
Цитата
написал:
И чем помочь-то бедолаге? Макрос готовый выложить?
Ну, можно и так...
 
repit
Цитата
RAN написал:
Вспоминаем...-Так вы и есть за меня будете?-Ага!
 
Вариант с именованными диапазонами, которые влияют на прямоугольники.

Начальные установки на примере левого верхнего прямоугольника:
1. У прямоугольника в свойствах внесён текст C1R1: выделить прямоугольник -> правый щёлк -> Формат фигуры -> Замещающий текст -> Описание. Это его условный номер в общей таблице прямоугольников: типа номер столбца и номер строки.
2. Ячейки, в которых вносятся параметры, влияющие на этот прямоугольник, имеют свои имена. Т.к. этих параметров - 2 (условно верх - "a" и низ - "b"), то имена у таких ячеек состоят из буквы параметра и номера прямоугольника. Т.е. ячейка C5 именуется aC1R1, а ячейка C7 именуется bC1R1.

Если менять значения этих параметров, т.е. данные в ячейках, то меняется и заливка прямоугольника C1R1. Условия из описания в теме не совсем понятные, поэтому сделано так:
- если оба параметра пустые, то прямоугольник прозрачный
- если один параметр =2, а второй тоже 2 или пустой, то прямоугольник красный.
- в остальных случаях - прямоугольник синий.
Макрос работает по Worksheet_Change.

Для примера присвоены имена и добавлено описание только в 4 верхних-левых прямоугольника и соответствующие ячейки. Остальные, думаю, будет несложно добавить по аналогии.

Если нужно поменять цвета прямоугольников, условия закраски, то менять можно в макросе: там ничего сложного нет.
 
tolikt, спасибо.
Но этот макрос почему-то неточно работает.
В одном случае он срабатывает на обе двойки - делая фигуру - красной.
А в другом - таком же случае (где после двоек - идет текст) - макрос уже не делает фигуру красной.
 
А в принципе - пойдет.
 
Цитата
написал:
А в принципе - пойдет
Замечательно, конечно...
Dalm около 80% своих тем и сообщений написал по поводу фигур и макросов. Уже вроде как должен бы минимально в этом разбираться.
Макрос по смене цвета фигуры - это что-то типа образца для дальнейших самостоятельных корректировок и подгонок под свои конкретные условия. Тем более, что условия по смене цветов описаны весьма неоднозначно и каждый их понимает по-своему, если вообще понимает. Я понял так, как сделано в макросе.
Конкретно по поводу, чтоб "2" и "2 - текст" давали красный цвет, то это элементарно: в процедуре Worksheet_Change в строку присвоения значения valA = Range("...") надо добавить Left, т.е. valA = Left(Range("..."),1). То же самое для valB.
Прочие строки обработки условий уже в самом макросе ChangeRectangleColor тоже весьма прозрачны и понятны и их можно легко подогнать под нужные задачи. Конечно, это при минимальном знании VBA и минимальном желании что-то сделать самому.
 
Цитата
RAN написал:
repit
Dalm,  одержим желанием выиграть в какую-то лотерею или бог его знает во что он играет
он хочет между случайными числами найти какую-то другую закономерность кроме случайной
нужно пожелать человеку удачи и понаблюдать за результатами, когда он разбогатеет, купит этот сайт и уволит всех, кто не хотел помогать))
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
tolikt написал:
Тем более, что условия по смене цветов описаны весьма неоднозначно и каждый их понимает по-своему, если вообще понимает.
Это мягко сказано. Перефразируя незабвенного Остапа Ибрагима Берта Мария Бендер Бей, кто скажет, что наличие 2 это не есть отсутствие 1, пусть первый бросит в меня камень.  :D
 
tolikt, ну я и говорю - пойдет.
Я же не жалуюсь
Изменено: Dalm - 07.08.2022 21:49:09
 
Цитата
написал:
Цитата
RAN написал:
repit
Dalm,  одержим желанием выиграть в какую-то лотерею или бог его знает во что он играет
он хочет между случайными числами найти какую-то другую закономерность кроме случайной
нужно пожелать человеку удачи и понаблюдать за результатами, когда он разбогатеет, купит этот сайт и уволит всех, кто не хотел помогать))
Хм...
 
Цитата
Dalm написал:
Хм...
случайные числа они и в Африке случайные числа и между ними нет НИКАКОЙ другой закономерности кроме случайных чисел
все, кто пытаются ее найти с моей точки зрения - невежды, это не моя точка зрения, это точка зрения математики
если вам не нравится математика - докажите что 2 + 2  = 7 и пусть остальные, кто в это не верит - сосут из кувшина ваших знаний, где 2 + 2 = 7
Изменено: Ігор Гончаренко - 07.08.2022 22:35:45
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Игорь, мои лыжи летом плохо едут. Причем тут случайные числа в Африке? Я бы еще понял - погода... :D
 
нужно подбирать смазку особенно к попытке вычислить закономерности для случайных чисел. географическая точка попыток вычислений совершенно не важна (в Африке и на Урале результаты будут одинаковыми - они будут случайны)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Страницы: 1
Наверх