powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Изменение цвета в зависимости от значения ячейки
35 сообщений из 35, показаны все 2 страниц
Изменение цвета в зависимости от значения ячейки
    #34584846
Hashman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток, уважаемые! ))
Есть у меня задача такая - в зависимости от значения в ячейке применить цвет к строке.. Код такой -
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
i = ActiveCell.Interior.Color
 If Cells(Target.Row,  1 ).Value = "Выполнено" And i <>  65535  Or Cells(Target.Row,  1 ).Value = "Не утверждено" _
 And i <>  65535  Then
    Rows(Target.Row).Select
    With Selection.Interior 
        .ColorIndex =  6 
        .Pattern = xlSolid
    End With
 End If
 If Cells(Target.Row,  1 ).Value = "Открыто" And i <>  255  Then
    Rows(Target.Row).Select
    With Selection.Interior 
        .ColorIndex =  3 
        .Pattern = xlSolid
    End With
 End If
  If Cells(Target.Row,  1 ).Value = "Утверждено" And i <>  65280  Then
    Rows(Target.Row).Select
    With Selection.Interior 
        .ColorIndex =  4 
        .Pattern = xlSolid
    End With
 End If
   If Cells(Target.Row,  1 ).Value = "В работе" And i <>  16777215  Then
    Rows(Target.Row).Select
    Selection.Interior.ColorIndex = xlNone
 End If
End Sub

Вот, и проблема в том, что для того, что бы сработало, надо ввести значение (ну, или из списка выбрать), потом уйти с ячейки, а потом, что бы сработало, поставить курсор... Не подскажете ли, как можно сделать так, что бы эта штука срабатывала непосредственно после ввода? Т.е. что бы не надо было перещелкивать?
Заранее спасибо )
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34584924
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что вас останавливает от использования Conditional Formatting? Есть такое в меню Format...
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34585085
Hashman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VladConnА что вас останавливает от использования Conditional Formatting? Есть такое в меню Format...
Да мне ж надо не одну ячейку менять, а всю строку цветом выделить...
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34585100
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hashman VladConnА что вас останавливает от использования Conditional Formatting? Есть такое в меню Format...
Да мне ж надо не одну ячейку менять, а всю строку цветом выделить...

Таки что? Строка уж вам и не ранг?
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34585129
Hashman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VladConn Hashman VladConnА что вас останавливает от использования Conditional Formatting? Есть такое в меню Format...
Да мне ж надо не одну ячейку менять, а всю строку цветом выделить...

Таки что? Строка уж вам и не ранг?

)))
Попробовал, но чего-то все равно не получается.. Если сделать вот так:
Код: plaintext
1.
2.
3.
4.
    Selection.FormatConditions.Delete
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
        Formula1:="=""Выполнено"""
        Range(Cells(Target.Row,  1 ), Cells(Target.Row,  10 )).Select
    Selection.FormatConditions( 1 ).Interior.ColorIndex =  36 

То почему-то выделяет все равно одну ячейку - где слово написано.. Хотя selection идет на Range, и выделяется вся строка...
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34585184
Hashman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще, может, есть применительно к моему макросу какая-то штука, которая не на выделение ячейки срабатывает, а как On Edit, т.е. по завершении ввода? Может, есть что-нибудь в этом духе? Меня бы устроило, если бы еще какая добрая душа подсказала как это должно выглядеть )))))
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34585199
Hashman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Упрощу тему..

Как вместо
Код: plaintext
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Написать
Код: plaintext
Private Sub Worksheet_После_ввода_данных_в_ячейку(ByVal Target As Excel.Range)
... ТОгда, по идее, будет срабатывать, только вот что писать.. ?? А, помогите кто в курсе? :)
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34585205
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал, но чего-то все равно не получается..
То почему-то выделяет все равно одну ячейку - где слово написано.. Хотя selection идет на Range, и выделяется вся строка...


Ну да, надо ведь, чтобы все ячейки строки получили необходимое значение для изменения формата...
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34585215
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А впрочем:

Скопируйте этот код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Private Sub CommandButton1_Click()
  CondFormat "5:5"
End Sub

Sub CondFormat(ByVal pstrRows As String)

    With Rows(pstrRows)
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=$A$1"
        .FormatConditions( 1 ).Interior.ColorIndex =  3 
        .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=$B$1"
        .FormatConditions( 2 ).Interior.ColorIndex =  39 
    End With
    
End Sub

Нажмите на кнопку и вначале вбейте двойку в А1, а потом уберите ее и вбейте двойку в B1. Цвет всей строки 5 будет меняться.
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34585238
Hashman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно уточнить кое какие вопросы? Я просто с таким кодом не сталкивался, мне не все понятно...
VladConnА впрочем:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Private Sub CommandButton1_Click()
Т.е. сюда передать код строки, да?
End Sub
[/quot]
[SRC vba]
Sub CondFormat(ByVal pstrRows As String)
'А тут с полученными строками опрерировать, причем Formula(12345) - не адрес, 
'а возможное местоположение курсора, полученное из CommandButton1_Click, да? 
    With Rows(pstrRows)
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=$A$1"
        .FormatConditions( 1 ).Interior.ColorIndex =  3 
        .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=$B$1"
        .FormatConditions( 2 ).Interior.ColorIndex =  39 
    End With
    
End Sub


И как бы мне сделать условие на 5 значений, где в они встречаются тока в одном столбце?
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34585306
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. сюда передать код строки, да? - передать строковое представление адреса строки как аргумента процедуры CondFormat, но не сам по себе.

Что такое Formula(12345)? У меня нет параметризированной формулы Formula.

а возможное местоположение курсора, полученное из CommandButton1_Click, да? Нет. Событие Click не дает информации о возможном положении курсора. Последнее и не требуется.

Код: plaintext
И как бы мне сделать условие на  5  значений, где в они встречаются тока в одном столбце?
Для этих целей попробуйте включить макрорекордер.
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34585326
Hashman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы знаете, на этом движке начинает получаться, на один вариант значения выглядит это дело вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim pstRows As String

pstRows = Target.Row-  1 
pstRows = pstRows + ":" + pstRows 
If Cells(Target.Row -  1 , Target.Column) = "41" Then
    With Rows(pstRows)
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=R1C1"
        .FormatConditions( 1 ).Interior.ColorIndex =  3 
    End With
End If
End Sub

Вот. Если на листе с этим макросом где нибудь вбить "41", то строка окрасится...
Но я столкнулся с рядом проблем:
Если нажать Enter и курсор уходит вниз, то все замечательно - я знаю, где введенное значение, но при любых других манипуляциях (таб, или просто клик где-нибудь) портят всю картину - и либо я ничего не определяю, либо ошибка...

Почему-то ячейка с самим значением цветом не выделяется. Хотя если ячейку очистить, то вся строка закрашивается... А иногда наоборот - сама ячейка окрашивается, а остальное нет...

Прошу прощения за беспокойство ))))
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34585511
Диса
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HashmanДоброе время суток, уважаемые! ))
Есть у меня задача такая - в зависимости от значения в ячейке применить цвет к строке.. Код такой -
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
i = ActiveCell.Interior.Color
 If Cells(Target.Row,  1 ).Value = "Выполнено" And i <>  65535  Or Cells(Target.Row,  1 ).Value = "Не утверждено" _
 And i <>  65535  Then
    Rows(Target.Row).Select
    With Selection.Interior 
        .ColorIndex =  6 
        .Pattern = xlSolid
    End With
 End If
 If Cells(Target.Row,  1 ).Value = "Открыто" And i <>  255  Then
    Rows(Target.Row).Select
    With Selection.Interior 
        .ColorIndex =  3 
        .Pattern = xlSolid
    End With
 End If
  If Cells(Target.Row,  1 ).Value = "Утверждено" And i <>  65280  Then
    Rows(Target.Row).Select
    With Selection.Interior 
        .ColorIndex =  4 
        .Pattern = xlSolid
    End With
 End If
   If Cells(Target.Row,  1 ).Value = "В работе" And i <>  16777215  Then
    Rows(Target.Row).Select
    Selection.Interior.ColorIndex = xlNone
 End If
End Sub

Вот, и проблема в том, что для того, что бы сработало, надо ввести значение (ну, или из списка выбрать), потом уйти с ячейки, а потом, что бы сработало, поставить курсор... Не подскажете ли, как можно сделать так, что бы эта штука срабатывала непосредственно после ввода? Т.е. что бы не надо было перещелкивать?
Заранее спасибо )

А имя события не пробовал поменять, например, на Calculate
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34585616
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
Private Sub Worksheet_Change(ByVal Target As Range)
    MsgBox "Изменена ячейка " & Target.Address
End Sub
тебе поможет
и ещё в Target будет передоваться не только одна ячейка при вводе, но массив ячеек при копировании, пробежаться по ним можно так
Код: plaintext
1.
2.
3.
4.
5.
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range
    For Each rng In Target.Cells
        MsgBox "Изменена ячейка " & rng.Address
    Next
End Sub
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34585629
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
без VBA Условное форматирование тоже поможет
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34585638
Hashman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkodor
Код: plaintext
1.
2.
Private Sub Worksheet_Change(ByVal Target As Range)
    MsgBox "Изменена ячейка " & Target.Address
End Sub
тебе поможет


Спасибо, помогло! )))))

Огромное всем участникам СПАСИБИЩЕ! ))) Все работает при смене события, просто я не знал как это пишется .... )))))
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34585885
silveRain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имхо - это все изобретение велосипеда, когда можно обойтись стандартными средствами.

Как уже говорилось - выделяешь первую строку и делаешь условоное форматирование и три условия:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Condition  1 : 
Formula is: =OR($A1="Выполнено",$A1="Не утверждено")

Condition  2 : 
Formula is: =$A1="Открыто"

Condition  3 : 
Formula is: =$A1="Утверждено"

Соответственоо с форматом желтого, красного и зеленого цвета.
Копируешь первую строку, и выделив весь лист вставляешь специальной вставкой форматы - и всего делов. По крайней мере я бы сделал так.
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34586059
Hashman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И как же применить форматы на всю строку, а не на только ячейку со значением? (О том, что там всего 3 варианта можно не упоминать, да? Т.е. понятно, что без редактора никак?) Притом, что
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
.....
pstRows = pstRows + ":" + pstRows 
If Cells(Target.Row -  1 , Target.Column) = "41" Then
    With Rows(pstRows)
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=R1C1"
        .FormatConditions( 1 ).Interior.ColorIndex =  3 
    End With
End If
....
(С) Спасибо VladConn
вот это работает, но немного не так, тогда как макрос в первом сообщении при измененной Worksheet_SelectionChange на Worksheet_Change (с)vkodor, выделяет всю строку и вообще все замечательно, и никаких ограничений на количество значений. Хотя, если есть возможность обойтись стандартными средствами, это только плюс, по-моему. Но в данном конкретном случае это невозможно, имхо...
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34586079
silveRain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HashmanИ как же применить форматы на всю строку, а не на только ячейку со значением? (О том, что там всего 3 варианта можно не упоминать, да? Т.е. понятно, что без редактора никак?) Притом, что вот это работает, но немного не так, тогда как макрос в первом сообщении при измененной Worksheet_SelectionChange на Worksheet_Change (с)vkodor, выделяет всю строку и вообще все замечательно, и никаких ограничений на количество значений. Хотя, если есть возможность обойтись стандартными средствами, это только плюс, по-моему. Но в данном конкретном случае это невозможно, имхо...

Ну начнем с того, что в предложенном варианте задаче только три условия:
а) "выполнено" или "не утверждено" = цвет 6 (желтый)
б) "Открыто" = цвет 3 (красный)
в) "Утверждено" = цвет 4 (зеленый)
Значение "В работе", не имеющее цветового оформления, приравнивается к формату по умолчанию (можно считать это четвертым условием)

На всю строку очень замечательно ложится условное форматирование - просто выделите вначале строку целиком. А на остальные переносится при помощи AutoFill - with formatting only или специальной вставки на весь лист, как я уже говорил.

К сожалению, зарегистрироваться не могу, поэтому не могу приложить скрин.
Выложил сюда: http://image-upload.biz/files/14679a7425873a6b49090a006.jpg
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34586084
silveRain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ой ;) все-таки приложился, ну что ж, так даже удобнее! :)
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34586179
Hashman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
silveRainОй ;) ... ну что ж, так даже удобнее! :)
Ага :) Вообще супер (Я правда, уже пошел похвастался, який я зыкий макрос написал, так что теперь исключительно теоретический интерес пошел ))))))
Но правда, почему-то с OR формула у меня не работает.. Я уже голову сломал - может, буквы не те, вместо
Код: plaintext
=OR($D2="Выполнено";$D2="Не утверждено")
поставил
Код: plaintext
=OR($D1="1";$D1="2")
... ни определяет и все тут...

Формулу сделал в отдельной ячейке (мало ли, с орфографией накосячил) - тот же результат - значения из этого поля не окрашиваются и все тут....
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34586189
silveRain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hashman
Код: plaintext
=OR($D2="Выполнено";$D2="Не утверждено")
поставил
Код: plaintext
=OR($D1="1";$D1="2")
... ни определяет и все тут...

Ошибка в точке с запятой, по-моему - в качестве разделителя должна быть просто запятая
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34586205
Hashman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
silveRain
Ошибка в точке с запятой, по-моему - в качестве разделителя должна быть просто запятая

Не-а.. у меня на запятую ругается... А точку с запятой поставил мастер формул (типа выберите значение ___ и ___ для формулы "ИЛИ")... А.. и я еще накосячил тут слегка - поставил формулы с разных строк, но на самом деле там такого нет ))))
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34586222
Hashman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А, все, отбой! ))) Если написать вот так =
Код: plaintext
=ИЛИ($D1= 1 ;$D1= 2 )
то работает )))
А если буквы, то вот так
Код: plaintext
=ИЛИ($D1="Ништяк";$D1= 2 )

Здорово! )))
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34586227
Диса
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HashmanА, все, отбой! ))) Если написать вот так =
Код: plaintext
=ИЛИ($D1= 1 ;$D1= 2 )
то работает )))
А если буквы, то вот так
Код: plaintext
=ИЛИ($D1="Ништяк";$D1= 2 )

Здорово! )))

Можно совет?
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34586238
Hashman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Диса HashmanА, все, отбой! ))) Если написать вот так =
Код: plaintext
=ИЛИ($D1= 1 ;$D1= 2 )
то работает )))
А если буквы, то вот так
Код: plaintext
=ИЛИ($D1="Ништяк";$D1= 2 )

Здорово! )))

Можно совет?
Ага! :D
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34586253
silveRain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скорее всего это какие-то отличия русского экселя с английским :) я только с последним работал. Но хорошо что все хорошо ;)
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34586255
Диса
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hashman
Ага! :D

Изучайте операторы ВБА с помощью записи макросов :-Р
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34586315
Hashman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Диса Hashman
Ага! :D

Изучайте операторы ВБА с помощью записи макросов :-Р
Я пытаюсь!! Но он почему-то всегда всякие гадости записывает :(

Вообще, мне кажется макрорекордер можно использовать только для того, что бы узнать как именно чего пишется, уже представляя себе механизм, а главное что и как фунциклирует и как оно сработает, вопрос только в написании...
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34586420
silveRain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати я тут поизвращался с решением задачи, когда необходимо поставить условий более 3.
И вот что получается с использованием дополнительного листа, куда мы помещаем: в первый столбец - значения для сравнения; во второй столбец - номер цвета для закрашивания строки.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Set rng = Target
For Each rng In Range("A:A")
        If rng = "" Then Exit Sub
        On Error Resume Next
        Rows(rng.Row).Interior.ColorIndex = Application.WorksheetFunction.VLookup(rng.Value, ThisWorkbook.Sheets("Sheet2").Range("A:B"),  2 , False)
        If Err.Number <>  0  Then Rows(rng.Row).Rows.Interior.ColorIndex = xlNone
Next rng
End Sub

Честно говоря много похожих вариантов было, поэтому развивать тему не буду - а так под конкретную задачу и конкретные условия реализации можно много чего из этого напридумывать, имхо.

Открытым лично для меня остается только вопрос, почему не работает проверка
Код: plaintext
If rng Is Nothing Then Exit Sub
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34586450
Hashman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну, rng это же массив, и когда я перебираю все значения, даже если конкретная ячейка пустая, то оно все равно, пока не переберет все имеющиеся в столбе "А" значения не успокоится.. А если значений вообще нет, то Exit sub наступает )))...

Правда, он же наступает, если первое значение не в А1 пихать, а к примеру, А5... " И настал всем Exit sub..." :) Суббота = нерабочий день, господа... Ниохото работать вообще, а вот поиздеваться над екселькой - самое то, по моему! )))
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34586457
Hashman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если так
Код: plaintext
1.
2.
3.
4.
5.
If Cells(Target.Row, Target.Column) = "" Then Exit Sub
For Each rng In Range("A:A")
        On Error Resume Next
        Rows(rng.Row).Interior.ColorIndex = Application.WorksheetFunction.VLookup(rng.Value, ThisWorkbook.Sheets("Ëèñò2").Range("A:B"),  2 , False)
        If Err.Number <>  0  Then Rows(rng.Row).Rows.Interior.ColorIndex = xlNone
Next rng......
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34586468
Hashman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не.. фигня какая-то.. теперь все вешается ((((
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34586622
silveRain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Долго парил мозг, а все оказалось как всегда очень просто:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Set rng = Target
For Each rng In Range("A:A")
        On Error Resume Next
        Rows(rng.Row).Interior.ColorIndex = Application.WorksheetFunction.VLookup(rng.Value, ThisWorkbook.Sheets("Sheet2").Range("A:B"),  2 , False)
        If Err.Number <>  0  Then Rows(rng.Row).Rows.Interior.ColorIndex = xlNone
        If rng.Row = Range("A:A").End(xlDown).Row Then Exit Sub
Next rng
End Sub
...
Рейтинг: 0 / 0
Изменение цвета в зависимости от значения ячейки
    #34586634
silveRain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Только там еще нюанс. Если строка полностью пустая, то проверка на "конец" выдает 65536, поэтому нужно доп условие на прерывание саба на это значение.
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Изменение цвета в зависимости от значения ячейки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]