Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Нужна помощь(срочно)

6.2K
03 декабря 2005 года
iq13
28 / / 03.12.2005
Знающие люди помогите, пожалуйста. Нужно написать программу, которая меняет текст содержимого ячейки в excel, в зависимости от данных в этой ячейке.Например если в ячейке введено число меньше 100, то оно будет зелёного цвета, а если больше сотни, то красного. Цвет должен меняться сразу после вввода данных Заранее благодарен!!
9.0K
04 декабря 2005 года
f14tc
25 / / 06.11.2005
В листе надо создать такую функцию

Private Sub Worksheet_Change(ByVal Target As Range)

If Val(Target.Text) < 100 Then
Target.Interior.ColorIndex = 4
ElseIf Val(Target.Text) > 100 Then
Target.Interior.ColorIndex = 3
End If

End Sub
275
04 декабря 2005 года
pashulka
985 / / 19.09.2004
Существует как минимум два решения данного конкретного вопроса стандартными средствами, т.е. без использования VBA :

Вариант I.
Выделите нужную ячейку, например "A1", допускается выделение диапазона ячеек. Затем в меню Формат выберите команду Условное форматирование. В появившемся стандартном диалоговом в списке выберите формула, затем в поле введите =A1<100, после чего нажмите кнопку Формат, установите нужные параметры форматирования. В Вашем случае, это цвет шрифта - зелёный. После чего нажмите кнопку А также и повторите действия, только введите формулу =A1>100 и установите другие параметры форматирования (цвет шрифта - красный)
После чего нажмите кнопку OK.

Вариант II.
Выделите нужную ячейку/диапазона ячеек. Затем в меню Формат выберите команду Ячейки. В появившемся стандартном диалоговом в списке выберите закладку Число, затем в списке Числовые форматы выберите (все форматы. В поле Тип введите [Зеленый][<100]0,00;[Красный][>100]0,00;Основной
После чего нажмите кнопку OK.

Примечание : Формата 0,00 использован исключительно в ознакомительных целях и его конечно можно заменить, например на Основной

Что касается использования события Worksheet_Change, то здесь есть несколько "замечаний" :
- некорректность результата при вводе : 105 литров пива (красный), Иванов (зелёный)
- некорректность результата при вводе числовых значений >100, если выбран формат Денежный/Финансовый, содержащий $ (США)
- генерация ошибки вследствии копирования нескольких ячеек
6.2K
07 декабря 2005 года
iq13
28 / / 03.12.2005
Вот текст моей программы, что она делает, я думаю, Вы поймёте. Но вот одна проблема - почему-то не пашет. А в чём дело не пойму. Плиз помогите.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Activate
If ActiveCell.Value <> "" Then
If ActiveCell.Value <= 0 Then
ActiveCell.Font.Color = RGB(0, 0, 255)
End If
If (ActiveCell.Value > 0) And (ActiveCell.Value < 100) Then
ActiveCell.Font.Color = RGB(255, 0, 0)
End If
If (ActiveCell.Value >= 100) And (ActiveCell.Value < 200) Then
ActiveCell.Font.Color = RGB(130, 100, 0)
End If
If (ActiveCell.Value = "") Or (ActiveCell.Value > 200) Then
ActiveCell.Font.Color = RGB(0, 255, 0)
End If
End If
End Sub
275
07 декабря 2005 года
pashulka
985 / / 19.09.2004
Код:
Private Sub Workbook_SheetChange( _
            ByVal Sh As Object, _
            ByVal Target As Range)

With Target.Item(1)
     If IsNumeric(.Value) = True Then
        Select Case .Value
        Case Is <= 0: .Font.Color = RGB(0, 0, 255)
        Case Is < 100: .Font.Color = RGB(255, 0, 0)
        Case Is < 200: .Font.Color = RGB(130, 100, 0)
        Case Is >= 200: .Font.Color = RGB(0, 255, 0)
        End Select
     End If
End With

End Sub
275
08 декабря 2005 года
pashulka
985 / / 19.09.2004
Вот ещё один вариант решения поставленной задачи.

Код:
Private Sub Workbook_SheetChange( _
            ByVal Sh As Object, _
            ByVal Target As Range)

With Target.Item(1)
     If IsEmpty(.Value) = False And _
        IsNumeric(.Value) = True Then _
        .Font.Color = Switch( _
        .Value <= 0, RGB(0, 0, 255), _
        .Value < 100, RGB(255, 0, 0), _
        .Value < 200, RGB(130, 100, 0), _
        .Value >= 200, RGB(0, 255, 0))
End With

End Sub


P.S. Возможно имеет смысл восстанавливать первоначальный цвет шрифта, например при удалении предыдущего значения или ввода нечислового значения … так как в этих случаях (на сегоднящний момент) цвет шрифта остаётся прежним. Также можно "запретить" изменение данных в более чем одной ячейке, например, ввод данных в несколько ячеек, копирование диапазона и т.п.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог