Страницы: 1
RSS
При каждом нажатии кнопки меняется цвет ячейки.
 
В общем задача следующая. Есть кнопка. При нажатии на кнопку меняется цвет ячейки А1 на серый. Если еще раз нажать на кнопку, то меняется цвет ячейки А2 на серый, а А1 в исходный - на белый. Если еще раз нажать, то А3 на серый, А2 на белый и тд. Лучше вместо "на белый" применять "на исходный".Прикрепляю файл с диапазоном ячеек. Подскажите, пожалуйста решение.

Или другой вариант: для диапазона ячеек (объединенных) при выделении производится заливка в серый цвет. Нажал стрелку "вниз" залилась нижняя ячейка, "в верх" верхняя, а нижняя окрасилась в исходный цвет.
Вот такой код для заливки нашел:
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Interior.ColorIndex = 5
End Sub
Заливка синим. Но при выделении любой другой ячейки цвет должен поменяться на исходный. Как это сделать помогите?
Изменено: Hardmemory - 27.11.2014 03:08:14
 
Это все баловство.
Шлифуйте напильником
 
У вас нормально получилось для диапазона и это правильно. А то я вот такой код методом тыка написал.
 
Подскажите как в моем коде задать диапазон ячеек? У меня не получается.
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static CurrentCell As Range
If Not CurrentCell Is Nothing Then
    CurrentCell.Interior.ColorIndex = 15
    CurrentCell.Font.ColorIndex = 1
End If

Set CurrentCell = Target
If CurrentCell Is Target Then
    Target.Interior.ColorIndex = 55
    Target.Font.ColorIndex = 6
End If
End Sub
Изменено: Hardmemory - 27.11.2014 03:55:41
 
В начало добавьте строку
Код
If Intersect(Target, Range("A1:D10")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub 
где "A1:D10" нужный Вам диапазон.
Изменено: Sanja - 27.11.2014 08:46:11
Согласие есть продукт при полном непротивлении сторон
 
И, наверное, последний вопрос по теме. Можно ли как-то привязать "вкл" - "выкл" этого кода к кнопке?
Изменено: Hardmemory - 27.11.2014 17:14:18
 
Цитата
Hardmemory пишет: "вкл" - "выкл"
этот код выполняется по определенному событию листа. Можно в какой нибудь ячейке устанавливать какой нибудь флаг (вкл/выкл, 1/0, и т.п.) и проверять содержимое ячейки перед выполнением кода
Изменено: Sanja - 29.11.2014 13:36:50
Согласие есть продукт при полном непротивлении сторон
 
Ну, понятно. Оставлю это на потом. Это уже не существенно.
 
Задача решена. Всем спасибо.

Нет, поспешил с выводом. Код не работает с объединенными ячейками. Подскажите решение для объединенных ячеек. Как правильно записать диапазон? Тут только изменить диапазон, но я не знаю синтаксис.  
Изменено: Hardmemory - 29.11.2014 13:35:21
 
Помогите еще раз.
 
Цитата
Hardmemory пишет: Тут только изменить диапазон, но я не знаю синтаксис.
Сами указали условие Останется только один,как в Горце  :)  
Было
Код
If Intersect(Target, Range("A1:D10")) Is Nothing Or Target.Cells.Count > 1 Or [E1] <> "вкл." Then Exit Sub
 
Должно быть
Код
If Intersect(Target, Range("A1:D10")) Is Nothing Or  [E1] <> "вкл." Then Exit Sub
 
 
Цитата
Doober пишет: Сами указали условие Останется только один,как в Горце
Ну условие было одно, сейчас начал экспериментировать, оказалось, нужна корректировка.
Так, вы мне помогли. Заработало. Ура! Большое спасибо!
 
А как, к примеру, указать диапазон через один столбец. Т.е. чтобы столбец B игнорировался? А столбец А и С, и D одновременно выделялись цветом, можно так сделать?
 
Вопрос не по теме. Спрашивали о ячейке, теперь на столбцы перешли.
 
Напишу по-другому. Есть ячейки A1, B1, C1, D1. Ячейки C1 и D1 объединены. Запускаем код с помощью "вкл" и выделяем любую из ячеек: A1 или объединенные C1,D1. При этом все три ячейки выделяются цветом, а ячейка B1 игнорируется.
Изменено: Hardmemory - 29.11.2014 14:32:26
Страницы: 1
Наверх