Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2015, 12:12   #1
resembe
 
Регистрация: 14.03.2015
Сообщений: 4
По умолчанию Выделение ячеек цветом при помощи VBA

Добрый день!
Подскажите, пожалуйста,
как в редакторе VBA прописать задачу:
последовательное выделение ячеек 3 цветами по заданному столбцу
Например, 5 ячеек красного цвета, 5 ячеек желтого цвета, 5 ячеек зелного цвета. И далее цикл повторяется: кр-ж-зел, до тех пор,т пока в ячейках есть значения.
Спасибо
resembe вне форума Ответить с цитированием
Старый 15.03.2015, 13:10   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Sub Светофор()
  Dim i As Long,  r As Long, c As Long
  c = 18: r = 2
  For i = 0 To Int((Cells(Rows.Count, c).End(xlUp).Row + 1 - r) / 9)
    Cells(r + i * 9, c).Resize(3, 1).Interior.Color = RGB(255, 0, 0)
    Cells(r + 3 + i * 9, c).Resize(3, 1).Interior.Color = RGB(255, 255, 0)
    Cells(r + 6 + i * 9, c).Resize(3, 1).Interior.Color = RGB(0, 255, 0)
  Next
End Sub
c - колонка
r - начальная строка
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 15.03.2015, 13:29   #3
resembe
 
Регистрация: 14.03.2015
Сообщений: 4
По умолчанию

Спасибо большое!
А если уловие добавить, закрашивать до тех пор, пока есть данные (до пустой ячейки)
resembe вне форума Ответить с цитированием
Старый 15.03.2015, 13:32   #4
kalbasiatka
Форумчанин
 
Регистрация: 21.10.2012
Сообщений: 208
По умолчанию

Вариант 2
Код:
Sub Светофор_2()
    Dim i&, x As Double
    a = Array(vbRed, vbYellow, vbGreen)
    For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
        Cells(i, 1).Interior.Color = a(x)
        x = x + 1: If x > 2 Then x = 0
    Next
End Sub
kalbasiatka вне форума Ответить с цитированием
Старый 15.03.2015, 13:57   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Sub Светофор()
  Dim i As Long, r As Long, c As Long, a
  c = 18: r = 2: a = Array(vbRed, vbYellow, vbGreen)
  For i = r To Cells(Rows.Count, c).End(xlUp).Row
    Cells(i, c).Interior.Color = a(Int(((i - r) Mod 9) / 3))
  Next
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделение ячеек цветом strannick Microsoft Office Excel 5 25.08.2012 16:51
Сравнение 2-х ячеек, выделение цветом пустой Alex5667 Microsoft Office Excel 3 07.10.2011 15:06
Выделение цветом ячеек в StringGrid (Delphi) Lost'яра)) Помощь студентам 2 03.10.2010 10:55
Выделение ячеек цветом при значении "ИСТИНА" alex98 Microsoft Office Excel 5 16.05.2010 13:11
Выделение цветом определённых ячеек Bbalt Microsoft Office Excel 5 13.02.2009 12:07