Выделение цветом строки в Екселе в зависимости от значения

Программирование на Visual Basic for Applications
abracadabra
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2004 (Вт) 17:36
Откуда: Lviv Ukraine

Выделение цветом строки в Екселе в зависимости от значения

Сообщение abracadabra » 20.06.2005 (Пн) 15:48

Задача такая:
На листе Ексель есть несколько строк со значениями.
Если в 13 столбце какой-нибудь строки присутствует "++", то всю строку нужно выделить красным цветом.
Спасибо

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 20.06.2005 (Пн) 16:28

Почитай инфу об условном форматировании. Или поищи в форуме, месяца полтора назад этот вопрос уже всплывал и на него ответили.
Lasciate ogni speranza, voi ch'entrate.

abracadabra
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2004 (Вт) 17:36
Откуда: Lviv Ukraine

Сообщение abracadabra » 21.06.2005 (Вт) 10:43

Спасибо, буду искать :).

Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

Сообщение Maks the best » 21.06.2005 (Вт) 11:10

Злобный способ , но действенный :)))

Код: Выделить всё
Sub xxx()

Cells(65536, 256) = "++"
Cells(1, 1).Activate

10
If ActiveCell.Row = 65536 Then GoTo 20
Cells.Find(What:="++", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Activate
Rows(ActiveCell.Row).Interior.ColorIndex = 3
GoTo 10

20
Cells(65536, 256) = ""
Cells(1, 1).Activate
End Sub

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 21.06.2005 (Вт) 11:14

Изврат.

Условное форматирование делается за 5 кликов мышки.

И, кстати, Maks the best, не используй GoTo, сейчас это считается "дурным тоном" :)

Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

Сообщение Maks the best » 21.06.2005 (Вт) 11:34

а как условным форматированием задать выделение всей строки цветом, мне кажется так просто на листе это форматирование висеть должно всё время, а так нажал кнопку с 'извратом' да и шут с ним
а goto это не извращение, это ретро с настальгией, ты чего :)

форум птичек такой получился "птица говорун ..." :shock:

abracadabra
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2004 (Вт) 17:36
Откуда: Lviv Ukraine

Сообщение abracadabra » 21.06.2005 (Вт) 11:36

Спасибо, дружище!
Может ты знаешь, как в той же процедуре найти "--" и выделить строку синим цветом? Я пробовал - у меня глючит.

Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

Сообщение Maks the best » 21.06.2005 (Вт) 11:46

да простят меня программисты :)

Код: Выделить всё

Sub красный_синий()

a = "++"
c = 3
GoTo 6

5
a = "--"
c = 5

6
Cells(65536, 256) = a
Cells(1, 1).Activate



10
If ActiveCell.Row = 65536 Then GoTo 20
Cells.Find(What:=a, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Activate
Rows(ActiveCell.Row).Interior.ColorIndex = c
GoTo 10

20
If c = 3 Then GoTo 5
Cells(65536, 256) = ""
Cells(1, 1).Activate
End Sub


abracadabra
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2004 (Вт) 17:36
Откуда: Lviv Ukraine

Сообщение abracadabra » 21.06.2005 (Вт) 12:00

класс, спасибо, всё супер! :)

Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

Сообщение Maks the best » 21.06.2005 (Вт) 12:02

Да не за что :)

Обращяйся, если чего :)

Удачи!

abracadabra
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2004 (Вт) 17:36
Откуда: Lviv Ukraine

Сообщение abracadabra » 21.06.2005 (Вт) 12:06

правда есть ещё одна задачка :)
нужно перебрать строки и если значение в столбце K какой-нибудь строки больше, чем значение в столбце J той же строки, то выделить эту строку красным , если же значение в столбце К меньше чем в столбце I, выделить эту строку синим.

Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

Сообщение Maks the best » 21.06.2005 (Вт) 12:17

я правильно понял:
если K<I то полюбому синий
всё остальные строки (если K>J) красные? ...

abracadabra
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2004 (Вт) 17:36
Откуда: Lviv Ukraine

Сообщение abracadabra » 21.06.2005 (Вт) 12:20

Точно :lol:

Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

Сообщение Maks the best » 21.06.2005 (Вт) 12:44

Код: Выделить всё

' только тут нет проверки на число это или текст, текст всегда будет больше :)
' и работает с большим тормозом из за просмотра строк до 65536 :)

For r = 1 To 65536
If Cells(r, 11) < Cells(r, 9) Then
Rows(r).Interior.ColorIndex = 5
GoTo 10
End If
If Cells(r, 11) > Cells(r, 10) Then Rows(r).Interior.ColorIndex = 3
10
Next r


ну похимичь там чего :shock:

abracadabra
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2004 (Вт) 17:36
Откуда: Lviv Ukraine

Сообщение abracadabra » 21.06.2005 (Вт) 15:02

всё работает!

flying
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 17.06.2005 (Пт) 8:41

Сообщение flying » 24.06.2005 (Пт) 13:25

Maks the best писал(а):
Код: Выделить всё

' только тут нет проверки на число это или текст, текст всегда будет больше :)
' и работает с большим тормозом из за просмотра строк до 65536 :)
...

Чтобы тормоза не было можно в конце таблицы EOF ввести в любую ячейку. Тогда можно и без GOTO обойтись. :)
I’d like to speak Russian in my IE


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 99

    TopList