Ребят помогите с такой проблемой. Есть вот такой код: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("A1:T50")) Is Nothing Then Call Макрос500 End If End Sub
[/vba] и собственно сам Макрос500: [vba]
Код
Sub Макрос500() If Application.WorksheetFunction.CountIf(Range("B7:С7"), "1000") > 0 Then Range("D7:K7").Interior.ColorIndex = 6 Else Range("D7:K7").Interior.ColorIndex = xlNone End If If Application.WorksheetFunction.CountIf(Range("B6:С6"), "1000") > 0 Then Range("D6:K6").Interior.ColorIndex = 6 Else Range("D6:K6").Interior.ColorIndex = xlNone End If If Application.WorksheetFunction.CountIf(Range("B5:С5"), "1000") > 0 Then Range("D5:K5").Interior.ColorIndex = 6 Else Range("D5:K5").Interior.ColorIndex = xlNone End If
End Sub
[/vba] То есть при изменении ячейки из указанного диапазона (A1:T50) запускается Макрос, который проверяет есть ли в диапазоне (B7:C7) число 1000, если есть то заливает диапазон (d7:K7) желтым цветом. В чем задача: 1. нужно, чтоб он как то сам определял в какой строке стоит число 1000 и в этой же строке заливал ячейки с D по K (потому что ячеек штук 50,думал вручную перечислить их все в коде но потом понял что это плохая идея) 2. и еще, если 1000 ввели в ячейку то диапазон окрашивается с D по K, если 500 то закрашивается с D по M, если 700 то с D по X.
Пример выложить не могу, там данные клиентов. Заранее благодарен за помощь.
Ребят помогите с такой проблемой. Есть вот такой код: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("A1:T50")) Is Nothing Then Call Макрос500 End If End Sub
[/vba] и собственно сам Макрос500: [vba]
Код
Sub Макрос500() If Application.WorksheetFunction.CountIf(Range("B7:С7"), "1000") > 0 Then Range("D7:K7").Interior.ColorIndex = 6 Else Range("D7:K7").Interior.ColorIndex = xlNone End If If Application.WorksheetFunction.CountIf(Range("B6:С6"), "1000") > 0 Then Range("D6:K6").Interior.ColorIndex = 6 Else Range("D6:K6").Interior.ColorIndex = xlNone End If If Application.WorksheetFunction.CountIf(Range("B5:С5"), "1000") > 0 Then Range("D5:K5").Interior.ColorIndex = 6 Else Range("D5:K5").Interior.ColorIndex = xlNone End If
End Sub
[/vba] То есть при изменении ячейки из указанного диапазона (A1:T50) запускается Макрос, который проверяет есть ли в диапазоне (B7:C7) число 1000, если есть то заливает диапазон (d7:K7) желтым цветом. В чем задача: 1. нужно, чтоб он как то сам определял в какой строке стоит число 1000 и в этой же строке заливал ячейки с D по K (потому что ячеек штук 50,думал вручную перечислить их все в коде но потом понял что это плохая идея) 2. и еще, если 1000 ввели в ячейку то диапазон окрашивается с D по K, если 500 то закрашивается с D по M, если 700 то с D по X.
Пример выложить не могу, там данные клиентов. Заранее благодарен за помощь.axelbeer69
Сообщение отредактировал axelbeer69 - Четверг, 16.02.2017, 19:40
buchlotnik, с УФ не получается создать сразу несколько условий для строки и не получается скопировать на остальные строки (а вручную это нереально долго). Да и по сути есть полуготовый макрос, ему только обьяснить надо чтоб закрашивал нужное количество ячеек в строках где эти цифры стоят. Пример прилагаю, 1 и 2 строки работают через макрос, хочется чтоб 3 и 4 работали по аналогии но не вручную
buchlotnik, с УФ не получается создать сразу несколько условий для строки и не получается скопировать на остальные строки (а вручную это нереально долго). Да и по сути есть полуготовый макрос, ему только обьяснить надо чтоб закрашивал нужное количество ячеек в строках где эти цифры стоят. Пример прилагаю, 1 и 2 строки работают через макрос, хочется чтоб 3 и 4 работали по аналогии но не вручнуюaxelbeer69