Консультация № 170686
22.07.2009, 10:49
0.00 руб.
0 3 2
Доброго времени суток, уважаемые Эксперты!
Нужна Ваша помощь в следующем вопросе:
MS Excel 2007. Нужно, чтобы при вводе данных в ячейку она - ячейка - изменяла автоматически свой цвет. То есть, если вводим 1, то ячейка становится красной (красная заливка). Вводятся только числа (1...5).
Как это можно реализовать?
Спасибо!

Обсуждение

Неизвестный
22.07.2009, 11:04
общий
Надо использовать условное форматирование. Кнопочка находится на ленте "Главная"...
В 2007 Excele средство развито настолько сильно, что сделать описание не возьмусь...
Неизвестный
22.07.2009, 11:09
общий
это ответ
Здравствуйте, MaksimDenisov.
Для этого используется условное форматирование. Вкладка «Главная»→Группа «Стили»→меню «Условное форматирование»→«Создать правило».
В появившемся окне выберите строку «Форматировать только ячейки, которые содержат»
В нижней части окна введите минимальное и максимальное значение. Задайте формат отображения и все.
Неизвестный
22.07.2009, 13:03
общий
это ответ
Здравствуйте, MaksimDenisov.

Я сделал с помощью макросов.
Открываем Сервис --> Макрос --> Редактор Visual Basic. В списке Microsoft Excel Object есть текущий лист. Открываем код и помещаем текст процедуры из приложения. С цветом и прочим можно поэксперементировать, создав новый макрос на запись и проделав все операции для образца, а потом просмотрев код макроса.

Проверил работу в Excel2000.

С уважением.

Приложение:
Private Sub Workbook_SheetChange(ByVal Sh As Object, _
ByVal Source As Range)
'работаем с выделеным диапазоном ( одна или больше ячеек )
With Source.Interior
'сначала проверяем на возможность преобразования в число
If IsNumeric(Source.Text) Then
'если преобразование возможно, проверяем условия
Select Case CLng(Source.Text)
'для первого условия
Case 1
'здесь можно задавать и другие параметры форматирования ячейки, я ограничился цветом
.ColorIndex = 36
Case 2
.ColorIndex = 6
Case 3
.ColorIndex = 35
Case 4
.ColorIndex = 4
Case 5
.ColorIndex = 34
Case 6
.ColorIndex = 8
Case Else
.ColorIndex = 2
End Select
Else
.ColorIndex = 2
End If
End With
End Sub
Форма ответа