В конце года, когда время, словно мастер иллюзий, приоткрывает завесу над прошлым, мы стоим перед выбором. Некоторые стремятся вперёд, стараясь быстрее оставить позади тень трудностей и грусти. Для других, каждый момент становится ценным, они пытаются замедлить ход времени, как будто держа в руках что-то драгоценное и ценное, боясь, что оно растает, как пойманная на ладони снежинка ...
Но не будем грустить! И давайте готовиться к Новому году вместе 😉
Если у Вас еще нет Новогодней елки, то предлагаем нарядить нашу.
У поставленной задачи безусловно может быть несколько решений.
В данном обзоре мы представляем свое видение, основанное на сочетании формул, макросов и использовании условного форматирования.
📢 Файл с примером размещен в конце статьи 🔽
▶️ Шаг 1. Создаем шаблон и задаем именованные диапазоны
🔘 Диапазон "снежинки"
Данный диапазон условно разделим на 4 части.
Для каждой из которой зададим формулу определяющую рандомные распределения снежинок:
Код символа снежинки в данном случае мы принимаем равным 84, что при установленном формате Wingdings позволит добиться нужного отображения:
🔘 Диапазон "елка"
Для заполнения области определяющей положение будущей елки зададим именованный диапазон Sample_Tree:
Теперь наша задача заполнить данный диапазон рядом случайных. Но прежде, чем реализовать этот этап назначим:
- именованный диапазон Toys в котором будем хранить номера для будущих елочных игрушек -
- именованную ячейку Number которая будет отображать общее число вариаций елочных игрушек -
Далее, аналогично рассмотренному выше приему зададим рандомное распределения значений для диапазона Sample_Tree.
Добавить автоматизации данному процессу поможет следующий макрос:
Данный макрос устанавливает формулу в ячейку именованного диапазона "Sample_Tree".
В свою очередь, формула генерирует символ согласно указанному индексу в диапазоне "Toys":
И все хорошо! Но какая же елка без звезды?!
🔘 Диапазон "звезда"
Так как мы за динамичность в любом подходе, то предположим, что и число определяемых символов у звезды тоже может меняться.
А потому назначим:
- именованный диапазон Stars - хранит номера символов определяющие вариации звезд:
- именованную ячейку Number_Stars в которой определим общее число вариаций отображаемых звезд:
Подход к назначению символа звезды применим аналогичный:
Теперь, когда подготовительная часть завершена осталось лишь автоматизировать процесс и навести красоту 😉
▶️ Шаг 2. Задаем логику при помощи VBA
Чтобы избавить пользователя от излишних формул на листе "чистовой" вариант отображаемой елки перенесем на новый лист.
- Рабочей области в которой и будет располагаться елка присвоим имя -ChristmasTree:
- Области из которой будем брать данные - Base:
Чтобы нарядить елку игрушками назначим макрос который позволит перенести данные из диапазона "Base" в диапазон "ChristmasTree":
Но, как то на наш взгляд, выглядит немного скучновато. А потому добавим немного динамики. Для этого:
- обозначим ячейку определяющую число повторений:
- применим следующий код:
Данный макрос выполнит определенную выше процедуру указанное количество раз соответствующее значению в ячейке "Cycle". А достичь эффекта мерцания (для наблюдения изменений) поможет добавление задержки на короткое время.
Но, чтобы было совсем празднично "раскрасим" наши "игрушки" применив условное форматирование
▶️ Шаг 3. Назначаем условное форматирование
Для целей условного форматирования будем использовать формулу, которая в общем виде имеет вид: =F5=СИМВОЛ("ячейка")
где "ячейка" - это абсолютная ссылка на ячейку содержащая число определяющее значение символа.
Например:
Данный подход позволит каждой игрушке назначить свой цвет.
▶️ Наслаждаемся результатом
Вот такой результат получился у нас.
📝 Оформите лист по своему вкусу, добавьте свои символы и наслаждайтесь результатом!
🔔 Узнать больше о приемах и методах в Excel и быстро найти нужное решение поможет наш справочник 🔽