Здравствуйте, уважаемые! Помогите пожалуйста. Суть проблемы следующая: нужно сделать пользовательскую функцию которая будет проверять ячейки без заливки в столбце А. Например, ячейка А2 должна содержать верную сумму ячеек справа, диапазон B2:M2.Если сумма не верна, то ячейку А2 покрасить красным. Ячейки залитые серым пропускать. И если 5 ячеек, в столбце А, подряд не содержат значений то проверку не производить. Спасибо. Файл прикрепил
Здравствуйте, уважаемые! Помогите пожалуйста. Суть проблемы следующая: нужно сделать пользовательскую функцию которая будет проверять ячейки без заливки в столбце А. Например, ячейка А2 должна содержать верную сумму ячеек справа, диапазон B2:M2.Если сумма не верна, то ячейку А2 покрасить красным. Ячейки залитые серым пропускать. И если 5 ячеек, в столбце А, подряд не содержат значений то проверку не производить. Спасибо. Файл прикрепилzaknafein
zaknafein, здравствуйте. На листе1 см. работу макроса (вызывается при изменении листа и его активации)[vba]
Код
Sub check() lr = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To lr If Cells(i, 1).Interior.Color <> 12632256 Then If Cells(i, 1) <> WorksheetFunction.Sum(Range("b" & i & ":m" & i)) Then Range("a" & i & ":m" & i).Interior.Color = vbRed Else Range("a" & i & ":m" & i).Interior.Pattern = xlNone End If End If Next i End Sub
[/vba] На листе УФ тоже самое, только при помощи условного форматирования (диапазоны вручную нужно менять)
zaknafein, здравствуйте. На листе1 см. работу макроса (вызывается при изменении листа и его активации)[vba]
Код
Sub check() lr = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To lr If Cells(i, 1).Interior.Color <> 12632256 Then If Cells(i, 1) <> WorksheetFunction.Sum(Range("b" & i & ":m" & i)) Then Range("a" & i & ":m" & i).Interior.Color = vbRed Else Range("a" & i & ":m" & i).Interior.Pattern = xlNone End If End If Next i End Sub
[/vba] На листе УФ тоже самое, только при помощи условного форматирования (диапазоны вручную нужно менять)Manyasha
Manyasha, здравствуйте. Спасибо вам за помощь, но на боевом файле вообще не работает... хотя код я постарался адаптировать... красит ячейки не взирая на цвет и сумму... [vba]
Код
lr = Cells(Rows.Count, 11).End(xlUp).Row For i = 1 To lr If Cells(i, 11).Interior.Color <> RGB(192, 192, 192) Then If Cells(i, 11) <> WorksheetFunction.Sum(Range("l" & i & ":w" & i)) Then Range("k" & i & ":w" & i).Interior.Color = vbRed Else Range("k" & i & ":w" & i).Interior.Pattern = xlNone End If End If Next i
[/vba]
в приложенном файле аналог. нужно смотреть столбец К, начиная с 16 ячейки и вниз. проверять сумму с l по w. Он мне красит и шапку и все на свете. Спасибо
Manyasha, здравствуйте. Спасибо вам за помощь, но на боевом файле вообще не работает... хотя код я постарался адаптировать... красит ячейки не взирая на цвет и сумму... [vba]
Код
lr = Cells(Rows.Count, 11).End(xlUp).Row For i = 1 To lr If Cells(i, 11).Interior.Color <> RGB(192, 192, 192) Then If Cells(i, 11) <> WorksheetFunction.Sum(Range("l" & i & ":w" & i)) Then Range("k" & i & ":w" & i).Interior.Color = vbRed Else Range("k" & i & ":w" & i).Interior.Pattern = xlNone End If End If Next i
[/vba]
в приложенном файле аналог. нужно смотреть столбец К, начиная с 16 ячейки и вниз. проверять сумму с l по w. Он мне красит и шапку и все на свете. Спасибоzaknafein
Manyasha, Боже мой, я действительно ошибся с цветом. Спасибо вам за помощь. Причем не понятно как так произошло, я смотрел в свойствах ячейки...
Manyasha, Боже мой, я действительно ошибся с цветом. Спасибо вам за помощь. Причем не понятно как так произошло, я смотрел в свойствах ячейки...zaknafein