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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.09.2010, 10:34   #1
LexxSakhalin
Пользователь
 
Регистрация: 07.09.2010
Сообщений: 20
Вопрос Изменение цвета ячейки содержащей формулу

Как с помощью VBA изменить цвет ячейки при вычислении в формуле?
LexxSakhalin вне форума Ответить с цитированием
Старый 07.09.2010, 10:53   #2
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Можно так:
Код:
Sub test()
    If Range("A1").HasFormula = True Then
        MsgBox "Ячейка содержит формулу"
        Range("A1").Interior.ColorIndex = 6
    Else
        MsgBox "Ячейка не содержит формулы"
    End If
End Sub
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 07.09.2010, 10:55   #3
LexxSakhalin
Пользователь
 
Регистрация: 07.09.2010
Сообщений: 20
По умолчанию

Цитата:
Сообщение от VictorM Посмотреть сообщение
Можно так:
Код:
Sub test()
    If Range("A1").HasFormula = True Then
        MsgBox "Ячейка содержит формулу"
        Range("A1").Interior.ColorIndex = 6
    Else
        MsgBox "Ячейка не содержит формулы"
    End If
End Sub
А если это диапазон от M до IV?
LexxSakhalin вне форума Ответить с цитированием
Старый 07.09.2010, 11:23   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Код:
Sub tt()
For Each cc In Range("M:IV")
If cc.HasFormula = True Then cc.Interior.ColorIndex = 6
Next
End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 07.09.2010, 11:40   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Проще так:
Код:
On Error Resume Next: Columns("M:IV").SpecialCells(xlCellTypeFormulas).Interior.ColorIndex = 6
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 07.09.2010 в 11:56.
SAS888 вне форума Ответить с цитированием
Старый 07.09.2010, 13:46   #6
LexxSakhalin
Пользователь
 
Регистрация: 07.09.2010
Сообщений: 20
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Проще так:
Код:
On Error Resume Next: Columns("M:IV").SpecialCells(xlCellTypeFormulas).Interior.ColorIndex = 6
Клево!!!
А можно тоже самое, но в формулу вставить?

Function GMZ(Period, DataNach As Date, DataKon As Date, DataTek As Date)
Dim n As Date
Dim i

n = DateAdd("m", Period, DataNach)
For i = 1 To 36
If Month(DataTek) = Month(n) And Year(DataTek) = Year(n) Then
GMZ = n 'вот сюда вставить
Exit For
End If
n = DateAdd("m", Period, n)
Next i

If Period = 0 Or DataNach > DataTek Or DataKon < DataTek Or GMZ = 0 Then GMZ = ""
If DataKon < DataTek Then GMZ = "Х"
If DataNach > DataTek Then GMZ = "Х"
'ActiveCell.Interior.ColorIndex = 36
End Function
LexxSakhalin вне форума Ответить с цитированием
Старый 07.09.2010, 14:31   #7
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

А зачем код?
Используйте условное форматирование: http://www.planetaexcel.ru/tip.php?aid=121
EducatedFool вне форума Ответить с цитированием
Старый 07.09.2010, 14:36   #8
LexxSakhalin
Пользователь
 
Регистрация: 07.09.2010
Сообщений: 20
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
А зачем код?
Используйте условное форматирование: http://www.planetaexcel.ru/tip.php?aid=121
Смысл в файле.
А если в кратце, то: есть график мониторинга залога и по всему графику вставлены формулы, которые показывают плановый график. А когда проводиться фактический выезд и проверка залога, то проставляется фактическая дата вместо формулы. Так вот для отделения плана от факта, если дата установлена по формуле, то ячейка должна быть красной, а если вручную, то зеленая.
LexxSakhalin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск значения ячейки в другой, содержащей значение первой в общем тексте onenures Microsoft Office Excel 16 03.03.2012 11:49
Изменение цвета (opengl) revaldo666 Общие вопросы C/C++ 0 26.07.2010 15:13
изменение цвета MaXoN66613 Помощь студентам 2 02.06.2010 18:56
Изменение цвета girz Общие вопросы Delphi 6 30.05.2009 13:43
Изменение цвета Artem Общие вопросы Delphi 5 12.07.2007 09:07