Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Изменение цвета ячейки , если меняется цвет другой ячейки - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Изменение цвета ячейки , если меняется цвет другой ячейки
andron359 Дата: Понедельник, 17.04.2017, 10:18 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 142
Репутация: 0 ±
Замечаний: 40% ±

2010
Добрый день, как сделать чтобы менялся цвет ячейки в соответствии с цветом соседней ячейки ( формула или условное форматирование )
К сообщению приложен файл: 7626209.xlsx (10.0 Kb)
 
Ответить
СообщениеДобрый день, как сделать чтобы менялся цвет ячейки в соответствии с цветом соседней ячейки ( формула или условное форматирование )

Автор - andron359
Дата добавления - 17.04.2017 в 10:18
Perfect2You Дата: Понедельник, 17.04.2017, 18:33 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 237
Репутация: 59 ±
Замечаний: 0% ±

Excel 2010
Увы, доступные без разрешения макросов функции рабочего листа не реагируют на заливку.
С разрешением макросов возможны варианты. Но и они не реагируют на перекрашивание цвета ячейки сразу
Вариант 1:
макрос изменения цвета, прикрепленный к событию на листе. Реализован в первом файле.
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static rN As Range
    If rN Is Nothing Then Set rN = Target: Exit Sub
    If rN.Column <> 2 Then Set rN = Target: Exit Sub
    If rN.Interior.Color = 255 Then
        rN.Offset(0, 1).Interior.Color = 65535
    ElseIf rN.Interior.Color = 16777215 Then
        rN.Offset(0, 1).Interior.Color = 16777215
    End If
    Set rN = Target
End Sub
[/vba]
Перекрас в третьем столбце происходит после выделения ячейки во втором столбце, ее перекраса и перехода в другую ячейку. Это самый гибкий способ, который мне видится.
Вариант 2:
UDF (функция пользователя) и условное форматирование с ее использованием. Реализовано во втором файле.
[vba]
Код
Function ЦветЛевСосед(rN As Range) As Long
    If rN.Column = 1 Then ЦветЛевСосед = -1
    ЦветЛевСосед = rN.Offset(0, -1).Interior.Color
End Function
[/vba]
Увы, в этом случае перекрас произойдет только когда будет запущен пересчет формул листа (например, при входе на изменение ячейки и нажатии ENTER)
Есть еще варианты. Даже без использования VBA, но без разрешения макросов варианта не знаю.
К сообщению приложен файл: _7626209.xlsm (17.9 Kb) · _7626209-1.xlsm (15.8 Kb)


Сообщение отредактировал Perfect2You - Понедельник, 17.04.2017, 18:34
 
Ответить
СообщениеУвы, доступные без разрешения макросов функции рабочего листа не реагируют на заливку.
С разрешением макросов возможны варианты. Но и они не реагируют на перекрашивание цвета ячейки сразу
Вариант 1:
макрос изменения цвета, прикрепленный к событию на листе. Реализован в первом файле.
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static rN As Range
    If rN Is Nothing Then Set rN = Target: Exit Sub
    If rN.Column <> 2 Then Set rN = Target: Exit Sub
    If rN.Interior.Color = 255 Then
        rN.Offset(0, 1).Interior.Color = 65535
    ElseIf rN.Interior.Color = 16777215 Then
        rN.Offset(0, 1).Interior.Color = 16777215
    End If
    Set rN = Target
End Sub
[/vba]
Перекрас в третьем столбце происходит после выделения ячейки во втором столбце, ее перекраса и перехода в другую ячейку. Это самый гибкий способ, который мне видится.
Вариант 2:
UDF (функция пользователя) и условное форматирование с ее использованием. Реализовано во втором файле.
[vba]
Код
Function ЦветЛевСосед(rN As Range) As Long
    If rN.Column = 1 Then ЦветЛевСосед = -1
    ЦветЛевСосед = rN.Offset(0, -1).Interior.Color
End Function
[/vba]
Увы, в этом случае перекрас произойдет только когда будет запущен пересчет формул листа (например, при входе на изменение ячейки и нажатии ENTER)
Есть еще варианты. Даже без использования VBA, но без разрешения макросов варианта не знаю.

Автор - Perfect2You
Дата добавления - 17.04.2017 в 18:33
andron359 Дата: Вторник, 18.04.2017, 10:06 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 142
Репутация: 0 ±
Замечаний: 40% ±

2010
Спасибо за решение hands
 
Ответить
СообщениеСпасибо за решение hands

Автор - andron359
Дата добавления - 18.04.2017 в 10:06
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!