powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Закраска ячеек в зависимости от ее занчения
11 сообщений из 11, страница 1 из 1
Закраска ячеек в зависимости от ее занчения
    #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
Закраска ячеек в зависимости от ее занчения
    #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
Закраска ячеек в зависимости от ее занчения
    #37343391
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы издеваетесь? это делается за 15 секунд и на не надо никаких макросов
...
Рейтинг: 0 / 0
Закраска ячеек в зависимости от ее занчения
    #37343400
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PlanB,

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

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

А с двойками что делать будем? К тому же, был задан вопрос, в чём ошибка
...
Рейтинг: 0 / 0
Закраска ячеек в зависимости от ее занчения
    #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
Закраска ячеек в зависимости от ее занчения
    #37345061
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
работает - спасибо. не правильно запустила просто :)
...
Рейтинг: 0 / 0
Закраска ячеек в зависимости от ее занчения
    #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
Закраска ячеек в зависимости от ее занчения
    #37349081
Изерлонер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нафига макрос???
Условное форматирование-создать правило-использовать формулу для определения форматируемых ячеек.... вуаля.
...
Рейтинг: 0 / 0
Закраска ячеек в зависимости от ее занчения
    #37349085
Изерлонер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... маленькая ошибка. Для заполнения нижней строки изменить формулу значение H32 на H33
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Закраска ячеек в зависимости от ее занчения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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