Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Заливка ячеек в Excel с помощью макроса 
:(
    Опции темы
Erica
Дата 20.2.2006, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 20.2.2006

Репутация: нет
Всего: нет



Люди добрые помогите... нужно написать макрос, который будет проверять при открытии все ячейки в колонке, и в зависимости от числа заливать цветом

-30<x<0 - оранжевый цвет
0<=x< и далее - красный цвет

Заранее благодарю
PM MAIL   Вверх
Staruha
Дата 20.2.2006, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 13
Всего: 27



Код

Private Sub CommandButton1_Click()
Dim x As Integer

For x = 1 To 100
 If Cells(x, 1) < 0 And Cells(x, 1).Value > (-30) Then
Cells(x, 1).Interior.Color = RGB(255, 102, 0)
Else
 Cells(x, 1).Interior.Color = vbRed
  End If
  Next
End Sub


Это сообщение отредактировал(а) Staruha - 20.2.2006, 20:57


--------------------
Возмездие настигнет
PM MAIL   Вверх
likhobory
Дата 21.2.2006, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 466
Регистрация: 17.5.2005
Где: Москва

Репутация: 10
Всего: 20



либо используем условное форматирование
Код

 With Columns("A:A").FormatConditions
     .Add xlCellValue, xlBetween, "-29", "-1"
     .Item(1).Interior.ColorIndex = 45
     .Add xlCellValue, xlGreaterEqual, "0"
     .Item(2).Interior.ColorIndex = 3
 End With



--------------------
PM MAIL   Вверх
Erica
Дата 27.2.2006, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 20.2.2006

Репутация: нет
Всего: нет



Спасибо за помощь
PM MAIL   Вверх
Staruha
Дата 27.2.2006, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 13
Всего: 27



likhobory
Наверняка твой код быстрее, по крайней мере при событии change. smile


--------------------
Возмездие настигнет
PM MAIL   Вверх
likhobory
Дата 27.2.2006, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 466
Регистрация: 17.5.2005
Где: Москва

Репутация: 10
Всего: 20



один из возможных вариантов, просто во 2-м случае проверку "кладем на плечи" Excel`я smile


--------------------
PM MAIL   Вверх
Eugene82
  Дата 3.3.2006, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 30.5.2005
Где: г. Ростов-на-Дону

Репутация: нет
Всего: нет



Подскажите почему не работает код. Я хочу проверить заполнена ли ячейка и изменить формат в зависимости от результата:
Код

Private Sub Worksheet_Change(ByVal Target As Range)
 With Range("G14:AY14").FormatConditions
     .Add xlCellValue, xlNotEqual, "0"
     .Item(1).Interior.Color = vbWhite
     .Add xlCellValue, xlEqual, "0"
     .Item(2).Interior.Color = vbRed
 End With
End Sub

При изменении листа Редактор VB выдаёт сообщение об ошибке Run-time error '1004': Application-defined or object-defined error на строке .Add xlCellValue, xlNotEqual, "0". В чём мой косяк?

Да - G14:AY14 - объединённая ячейка.

-----
Staruha, нашёл на твоей странице пример по использованию Условного форматирования - это тоже самое?

Это сообщение отредактировал(а) Eugene82 - 3.3.2006, 13:22
PM WWW ICQ   Вверх
Staruha
Дата 3.3.2006, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 13
Всего: 27



Цитата

пример по использованию Условного форматирования

Выполняют одну и ту же задачу
Цитата

G14:AY14

Попробуй G14ведь адрес объединенной ячейки читается по первой ячейке
А лучше дапазон свой задай как объект

Это сообщение отредактировал(а) Staruha - 3.3.2006, 22:13


--------------------
Возмездие настигнет
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0530 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.