Страницы: 1
RSS
Заливка выделенной ячейки одним из 4-х цветов
 
Добрый день форумчане!
Пожалуйста на правьте на путь истинный. Пытаюсь написать макрос для кнопки.
Цель макроса. Четыре кнопки. Каждая соответствует своему цвету.
1. Выделяем Ячейку
2. Нажимаем на кнопку соответствующую цвету
3. Выбранная Ячейка, или диапазон окрашиваются
Код
Sub RangeColor()
Dim Rng As Range
    Set Rng = Application.InputBox("A9", "A9", Type:=8)
    Rng.Interior.ColorIndex = 5
End Sub

В данный момент алгоритм работает так:
1. Жмём на кнопку (кисточка).
2. Выделяем диапазон
3. Жмём ок.

UPD: И есть проблема с которой я не могу справиться.
1. Жмём кнопку
2. Жмём отмену.
3. Макрос даёт ошибку

Подозреваю что это из-за строчки диапазона
Пожалуйста , скажите какой код будет выполнять алгоритм так как я хочу.
Изменено: vikttur - 22.09.2021 11:05:52
 
Цитата
Родион Цараков написал:
Жмём отмену.3. Макрос даёт ошибку
естественно, ведь диапазон по факту не назначен и Вы пытаетесь изменить цвет у "ничего". Лучше всего Вам ознакомиться со статьей полностью: Работа с диалогами
Будет представление и о других диалоговых окнах. А в частности там есть готовый пример с использованием Application.InputBox, в самом начале статьи есть подобие оглавления на каждый вид диалога.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
К сожалению я не обладаю такими знаниями чтобы почерпнуть из этой статьи для себя что-то ( Но спасибо !

Цитата
Родион Цараков написал: Цель макроса. Четыре кнопки. Каждая соответствует своему цвету. 1. Выделяем Ячейку2. Нажимаем на кнопку соответствующую цвету3. Выбранная Ячейка, или диапазон окрашиваются
Можно пожалуйста правильный код для подобной операции?  
Изменено: vikttur - 22.09.2021 11:16:55
 
Цитата
Родион Цараков написал:
чтобы почерпнуть из этой статьи для себя что-то
мое мнение: так подходить к решению своих задач нельзя. Надо хотя бы пытаться. В статье(Диалог выбора диапазона Application.InputBox) приведен ГОТОВЫЙ код работы именно с этим диалогом и выбором диапазона. Там думать-то толком не надо - просто вчитаться, т.к. все это с пояснениями. Есть подозрение, что Вы не просто не обладаете знаниями - Вы не хотите ими обладать. Вы хотите обладать кодом, даже не пытаясь понять как он работает и что с ним делать, в случае изменения любых условий. По крайней мере так выглядит со стороны. Хотя бы попытайтесь внедрить тот код в свой - уверен, у Вас все получится. И опыта наберетесь, что еще важнее.
Цитата
Родион Цараков написал:
Можно пожалуйста правильный код для подобной операции?
найдите в себе силы пролистать до конца статьи - там готовый код для подобной операции. Попробуйте совместить со своим кодом - это не сложно даже неопытному человеку. Уверен, Вы способны будете заменить в основной части vRetVal на Rng, чтобы получить кусок кода полностью под Вашу задачу.
Изменено: Дмитрий(The_Prist) Щербаков - 22.09.2021 11:33:14
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал: Надо хотя бы пытаться
Вот что я натыкал, но хочу заметить ,что понимание не полное. Подскажите что сделать теперь чтобы работал алгоритм вот так :
1.Выделил ячейку или диапазон
2.Нажал кнопку
3. Ячейка или диапазон окрасились  
Изменено: vikttur - 22.09.2021 19:42:03
 
см.вложение
Изменено: Ігор Гончаренко - 22.09.2021 13:37:45
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
УРА ТОВАРИЩИ!!!!! УРА! !!!
Спасибо за внимание )) Я смог )))
Дмитрий вам спасибо тоже большое ) Благодаря вам пришлось вгрызться в эту тему )) Но в дальнейшем я надеюсь вы меня направите , если будут вопросы.)

Кому пригодится
Код
Sub RangeColorY()
With Selection
Range(.Item(1), _
.Item(1)).Interior.ColorIndex = 6
End With
End Sub
Изменено: vikttur - 22.09.2021 19:43:11
 
Цитата
Родион Цараков написал:
Я смог )))
Блин нет ((( не смог (((( Он красит только одну ячейку .......ОООООФФФФФФФФФФФ

https://vremya-ne-zhdet.ru/vba-excel/peremennaya-diapazona-as-range/
Теперь здесь копаюсь. Попробовал уже заменить разные значения. Не получается. Помогите.
Изменено: vikttur - 22.09.2021 19:45:19
 
см. сообщение 6
Изменено: Ігор Гончаренко - 22.09.2021 23:08:43
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Родион Цараков написал:
Он красит только одну ячейку
что логично. Вам вообще одной строки тут хватит, чтобы красить заранее выделенный диапазон. При этом замечу - чтобы получить готовый код достаточно вообще выделить диапазон - начать запись макроса -закрасить ячейки -остановить запись макроса :) В итоге одну значимую строку и получите:
Код
Sub RangeColorY()
Selection.Interior.ColorIndex = 6
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо большое !
Страницы: 1
Наверх