Страницы: 1 2 След.
RSS
Макрос заливки ячеек по условию
 
Доброго времени суток, Друзья!
Подскажите как создать макрос по условию
К примеру если значение ячейки H = -7, I = -4, J = 5 и O = 0.85, то окрасить ячейку Q в желтый цвет, а так же
если H = -10, I = 22, J = 27 и O = 0.68, то окрасить ячейку R в желтый цвет
Всем заранее спасибо
 
Алексей, добрый и Вам. Обязательно нужен макрос? Можно и при помощи УФ такое сделать.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Bema, и Вам доброго....без макроса никуда к сожалению
Очень много данных в таблице реальной...сюда ее не загрузить...весит почти 10Mb
 
Дело хозяйское ;)  
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
А если бы в макросе были бы еще комментарии что за что отвечает и счетчик сколько то или иное условие встречалось ранее(вывод счетчика в той же окрашенной ячейки), то этот макрос был бы очень хорошим)
Ну как минимум можно было бы в дальнейшем при создании подобного условия легко разобраться как его сделать
 
Сделайте небольшой пример
 
Kuzmich, возможности сделать хотя бы очень маленький пример не имею т.к. незнаю как...
 
Макрос (в модуль листа) срабатывает на изменение значений в ячейках столбцов H:O
Счетчик сколько то или иное условие встречалось внизу таблицы
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("H:O")) Is Nothing Then
        Application.EnableEvents = False
Dim i As Long
Dim iLastRow As Long
 iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
    Range("Q1:R" & iLastRow).ClearContents
    Range("Q1:R" & iLastRow).Interior.ColorIndex = xlColorIndexNone
  For i = 1 To iLastRow
    If Cells(i, 8) = "­7" And Cells(i, 9) = "­4" And Cells(i, 10) = "5" And Cells(i, 15) = "0.85" Then
      Cells(i, 17) = 1
      Cells(i, 17).Interior.ColorIndex = 6
    End If
    If Cells(i, 8) = "­10" And Cells(i, 9) = "22" And Cells(i, 10) = "27" And Cells(i, 15) = "0.68" Then
      Cells(i, 18) = 1
      Cells(i, 18).Interior.ColorIndex = 6
    End If
  Next
     Range("Q" & iLastRow + 1) = Application.Sum(Range("Q1:Q" & iLastRow))
     Range("R" & iLastRow + 1) = Application.Sum(Range("R1:R" & iLastRow))
End If
    Application.EnableEvents = True
End Sub
 
Kuzmich, спасибо большое, но у меня чего-то не работает))))
Подозреваю что нужно подключать библиотеки...у меня макбук, а на обычной Виндовс сейчас пока не проверить
И еще маленький вопрос...Kuzmich, скажите, а этот счетчик можно вывести именно в ту ячейку которая должна окрасится?
Заранее спасибо
Изменено: Aleksey.g84 - 05.07.2017 21:54:57
 
Цитата
но у меня чего-то не работает
Скопируйте и вставьте код при русской раскладке клавиатуры
Я в ваш файл вставил код и он заработал при изменении значений в ячейках столбцов H:O
 
Kuzmich, не помогает смена раскладки....
 
Посмотрите в файле
 
Kuzmich, грешу все таки на то, что у меня макбук...
смотрите...удалил уже отмеченные значения...очистил заливку
добавил ниже строчки и ничего не произошло...залез в макросы, выбрал макрос Айсумма, нажал на выполнить и так же тишина)))
 
Сравните ваши строки в макросе
Код
  For i = 1 To iLastRow
    If Cells(i, 8) = "_7" And Cells(i, 9) = "_4" And Cells(i, 10) = "5" And Cells(i, 15) = "0.85" Then
      Cells(i, 17) = 1
      Cells(i, 17).Interior.ColorIndex = 6
    End If
    If Cells(i, 8) = "_10" And Cells(i, 9) = "22" And Cells(i, 10) = "27" And Cells(i, 15) = "0.68" Then
      Cells(i, 18) = 1
      Cells(i, 18).Interior.ColorIndex = 6
    End If
  Next
И то, что у меня в примере
Изменено: Kuzmich - 05.07.2017 23:27:50
 
совершенно идентичны...
Код
For i = 1 To iLastRow
    If Cells(i, 8) = "_7" And Cells(i, 9) = "_4" And Cells(i, 10) = "5" And Cells(i, 15) = "0.85" Then
      Cells(i, 17) = 1
      Cells(i, 17).Interior.ColorIndex = 6
    End If
    If Cells(i, 8) = "_10" And Cells(i, 9) = "22" And Cells(i, 10) = "27" And Cells(i, 15) = "0.68" Then
      Cells(i, 18) = 1
      Cells(i, 18).Interior.ColorIndex = 6
    End If
 Next
 
У вас в коде "_7", "_4" и "_10"
Скопируйте значения -7, -4 и -10 прямо из соответствующих ячеек в код макроса.
 
И все же Kuzmich продолжаю грешить на то, что у меня макбук....сделал как вы сказали...скопировал прямо из книги в редактор...сохранил и ничего)))
 
Мой пример из сообщения 12 у вас работает?
 
Kuzmich, к сожалению нет....
пробовал по разному...добавил строчек...ничего
закрыл эксель и не сохранил....
открыл еще раз....очистил уже установленные маркера...полез в макросы...нажал выполнить Айсумма...тоже ничего
 
Для MAC есть отдельная ветка форума.
 
Цитата
нажал выполнить Айсумма...тоже ничего
Не надо ничего нажимать. Sub iSumma() это от другого примера
Я вам писал
Макрос (в модуль листа) срабатывает на изменение значений в ячейках столбцов H:O
 
vikttur, прекрасно вас понимаю...но на данный момент это похоже на расизм....аааа...у тебя мак...пошел вон от сюда...
Виндовс тоже есть...просто сегодня ноут остался на работе
 
Kuzmich, немного поменял код...
сделал так
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("H")) Is Nothing Then
        Application.EnableEvents = False
получилось ничего)
 
Вы сделали то, что я вам говорил в #16 ?
 
У меня так получилось, все работает:
 
Цитата
Aleksey.g84 написал: на данный момент это похоже на расизм
Да при чем здесь рассизм?! MAC имеет отличия в работе с VBA
 
Kuzmich, совершенно верно....сейчас еще раз повторил....
 
vikttur, не принимайте близко)))
с этим тоже я столкнулся....я о различиях...буду конечно завтра на работе пробовать на Виндовсе
 
Obelisk
Ваш макрос только для первой строки
и надо
Код
Sub Макрос1()
Range("Q1").Interior.Color = vbYellow
End Sub
 
Цитата
Aleksey.g84 написал:
то окрасить ячейку Q в желтый цвет
я так понял..
Страницы: 1 2 След.
Читают тему
Наверх