Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Закраска ячеек в зависимости от ее занчения / 11 сообщений из 11, страница 1 из 1
08.07.2011, 11:36
    #37342867
Ольга Семенова
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закраска ячеек в зависимости от ее занчения
Мне нужно закрасить ячейки цветами в зависимости от оценок к них
написала макрос

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If IsNumeric([C2:H33]) = True Then
Select Case [C2:H33]
Case  2 : iColor& = vbBlack
Case  3 : iColor& = vbRed
Case  4 : iColor& = vbYellow
Case  5 : iColor& = vbGreen
End Select
End If
End Sub

но он почему то не работает
в чем ошибка?

файл прилагаю
...
Рейтинг: 0 / 0
08.07.2011, 14:08
    #37343375
vlth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закраска ячеек в зависимости от ее занчения
Ольга Семенова,

Ошибок несколько:

– процедура размещена в стандартном модуле, а не в модуле листа;
- выражение "If IsNumeric([C2:H33]) = True Then" желаемого результата не даст;
- выражение "Select Case [C2:H33]" - вообще непонятно, чего хотим..;
- процедура даже при исправлении указанных ошибок сработает вхолостую, т.к. значение переменной iColor& ничему не присваивается.

Исправленный вариант:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Intersect(Target, Range(Me.Cells( 2 ,  3 ), Me.Cells( 33 ,  8 ))) Is Nothing Then Exit Sub
Select Case Target
    Case  2 : iColor& = vbBlack
    Case  3 : iColor& = vbRed
    Case  4 : iColor& = vbYellow
    Case  5 : iColor& = vbGreen
    Case Else
    Application.EnableEvents = False
    MsgBox "Недопустимое значение"
    Target = Empty
    Target.Select
    iColor& = vbWhite
End Select
Target.Interior.Color = iColor&
Application.EnableEvents = True
End Sub
...
Рейтинг: 0 / 0
08.07.2011, 14:14
    #37343391
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закраска ячеек в зависимости от ее занчения
Вы издеваетесь? это делается за 15 секунд и на не надо никаких макросов
...
Рейтинг: 0 / 0
08.07.2011, 14:17
    #37343400
vlth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закраска ячеек в зависимости от ее занчения
PlanB,

М.б у автора excel 2003 или ниже...
...
Рейтинг: 0 / 0
08.07.2011, 14:18
    #37343402
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закраска ячеек в зависимости от ее занчения
vlthPlanB,

М.б у автора excel 2003 или ниже...ну..условным форматированием.. благо цвета оценок 5,4 и 3 туда влезут
...
Рейтинг: 0 / 0
08.07.2011, 14:24
    #37343424
vlth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закраска ячеек в зависимости от ее занчения
PlanB,

А с двойками что делать будем? К тому же, был задан вопрос, в чём ошибка
...
Рейтинг: 0 / 0
10.07.2011, 09:03
    #37345059
Ольга Семенова
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закраска ячеек в зависимости от ее занчения
vlthОльга Семенова,

Ошибок несколько:

– процедура размещена в стандартном модуле, а не в модуле листа;
- выражение "If IsNumeric([C2:H33]) = True Then" желаемого результата не даст;
- выражение "Select Case [C2:H33]" - вообще непонятно, чего хотим..;
- процедура даже при исправлении указанных ошибок сработает вхолостую, т.к. значение переменной iColor& ничему не присваивается.

Исправленный вариант:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Intersect(Target, Range(Me.Cells( 2 ,  3 ), Me.Cells( 33 ,  8 ))) Is Nothing Then Exit Sub
Select Case Target
    Case  2 : iColor& = vbBlack
    Case  3 : iColor& = vbRed
    Case  4 : iColor& = vbYellow
    Case  5 : iColor& = vbGreen
    Case Else
    Application.EnableEvents = False
    MsgBox "Недопустимое значение"
    Target = Empty
    Target.Select
    iColor& = vbWhite
End Select
Target.Interior.Color = iColor&
Application.EnableEvents = True
End Sub


вот перенесла код из модуля для Листа1. но ничего не закрасилось :(
iColor& меняла на Target и тоже ничего. Как обратится к ячейке и закрасить ее?
...
Рейтинг: 0 / 0
10.07.2011, 09:06
    #37345061
Ольга Семенова
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закраска ячеек в зависимости от ее занчения
работает - спасибо. не правильно запустила просто :)
...
Рейтинг: 0 / 0
10.07.2011, 13:17
    #37345150
vlth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закраска ячеек в зависимости от ее занчения
Ольга Семенова,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Intersect(Target, Range(Me.Cells( 2 ,  3 ), Me.Cells( 33 ,  8 ))) Is Nothing Then Exit Sub
'Обработка попытки изменения нескольких ячеек одновременно (копированием, протаскиванием...)
'_______________________________________
If Target.Cells.Count >  1  Then
    Application.EnableEvents = False
    MsgBox "Вводим значения по одному"
    Application.Undo
    Target( 1 ,  1 ).Select
    iColor& = vbWhite
'_______________________________________
Else
    Select Case Target
        Case  2 : iColor& = vbBlack
        Case  3 : iColor& = vbRed
        Case  4 : iColor& = vbYellow
        Case  5 : iColor& = vbGreen
        Case Else
        Application.EnableEvents = False
        MsgBox "Недопустимое значение"
        Target = Empty
        Target.Select
        iColor& = vbWhite
    End Select
End If
Target.Interior.Color = iColor&
Application.EnableEvents = True
End Sub
...
Рейтинг: 0 / 0
13.07.2011, 07:57
    #37349081
Изерлонер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закраска ячеек в зависимости от ее занчения
Нафига макрос???
Условное форматирование-создать правило-использовать формулу для определения форматируемых ячеек.... вуаля.
...
Рейтинг: 0 / 0
13.07.2011, 08:00
    #37349085
Изерлонер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закраска ячеек в зависимости от ее занчения
... маленькая ошибка. Для заполнения нижней строки изменить формулу значение H32 на H33
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Закраска ячеек в зависимости от ее занчения / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]