Страницы: 1
RSS
Окраска ячеек по ссылке и перенос окраски на другой лист
 
Статистический файл. На странице "Результаты": изменяя буквы в строке 20, автоматически окрашивать ячейки в цвет буквы. Автоматически также изменять цвет в строке выше. И автоматически менять окраску ячеек в этой же таблице на листе "Индивидуально".
Я вообще не знаю программирования. Все сделано непрофессионально - не умею, но для работы очень нужно - проверка работ учащихся. Пыталась автоматом записать макрос, но дальше не смогла. Огромное спасибо, если сможете помочь.
 
Цитата
Ligra пишет: автоматически окрашивать ячейки в цвет буквы
Цвет букв у Вас везде одинаковый - чёрный. Да и какую ячейку красить - тоже нет ясности...
 
Ячейки с буквами "Б", "П", "В" в строке 20 на листе "Результаты"
Красить ячейки в строке выше "А1, А2.....С5".
И красить ячейки с "А1,А2...С5" в строке 10 на листе "Индивидуально"
 
Цитата
Юрий М пишет: Цвет букв у Вас везде одинаковый - чёрный
А просите "окрашивать ячейки в цвет буквы"
 
Вы меня тоже простите, час ночи, сижу с этой таблицей уже 3-и сутки.
Нужно покрасить ячейки под буквами "Б", "В", "П" соответственно, в три цвета. Эти буквы будут изменяться и цвет ячеек должен тоже автоматически изменяться. Соответственно этим изменениям должны произойти изменения в строке выше и на листе "Индивидуально".
Этот шаблон будет роздан проверяющим, которые должны сами проставить буквы "Б", "В", "П", а изменения окраски ячеек в трех местах должны произойти автоматически.
 
Проверьте.
 
Боже мой! Огромное спасибо!
 
Муржалуйста))
 
А еще дополнение. Я разносила сводную таблицу на листе "Результаты" на лист "Индивидуально" по каждому тестируемому. Разносила хаотически, т.к. не получалось размножить с помощью макроса. Копировала случайные индивидуальные таблички на 150 человек тестируемых (я их просто удалила для уменьшения объема файла). На листе "Индивидуально" покрасилась только первая табличка. А ссылающаяся на нее на этом же листе не покрасилась. Как сделать, чтобы покрасилась также эта строка в остальных индивидуальных табличках?
 
Но ведь Вы просили
Цитата
Ligra пишет: И красить ячейки с "А1,А2...С5" в строке 10 на листе "Индивидуально"
Я и сделал по 10-ой строке. В каких ещё строках нужно красить? Посмотрите фрагмент кода с комментарием - может быть сможете доработать сами?
Код
If Target = "Б" Then
    Target.Interior.ColorIndex = 22 'красим изменяемую ячейку
    Target.Offset(-1, 0).Interior.ColorIndex = 22 'красим ячейку выше
    .Cells(10, Target.Column).Interior.ColorIndex = 22 'красим ячейку в строке 10 на другом листе
End If 
 
Получается, что на листе "Индивидуально" нужно покрасить еще строки 66, 122, 178 и т.д. на 150 человек.
Мне нужно в коде просто перечислить номера строк?
 
Просто перечислим:
Код
If Target = "Б" Then
    Target.Interior.ColorIndex = 22 'красим изменяемую ячейку
    Target.Offset(-1, 0).Interior.ColorIndex = 22 'красим ячейку выше
    .Cells(10, Target.Column).Interior.ColorIndex = 22 'красим ячейку в строке 10 на другом листе
    .Cells(66, Target.Column).Interior.ColorIndex = 22 'красим ячейку в строке 66 на другом листе



End If
 
 
У меня получилась окрашиваемая строка через 56 строк 150 раз
 
Или попробовать перебирать циклом, если шаг неизменный.
 
Спасибо, я поняла. А Вам не трудно еще эту строчку с циклом прислать. Если не очень сложно.
Огромное Вам спасибо!
 
Поменяйте код:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
    If Not Intersect(Target, Range("E20:AM20")) Is Nothing Then
        With Sheets("Индивидуально")
            If Target = "Б" Then
                Target.Interior.ColorIndex = 22 'красим изменяемую ячейку
                Target.Offset(-1, 0).Interior.ColorIndex = 22 'красим ячейку выше
                For i = 10 To 8400 Step 56 'Цикл со строки 10
                    .Cells(i, Target.Column).Interior.ColorIndex = 22 'красим ячейки на другом листе в цикле с шагом 56
                Next
            End If
            If Target = "П" Then
                Target.Interior.ColorIndex = 12
                Target.Offset(-1, 0).Interior.ColorIndex = 12
                For i = 10 To 8400 Step 56
                    .Cells(i, Target.Column).Interior.ColorIndex = 12
                Next
            End If
            If Target = "В" Then
                Target.Interior.ColorIndex = 42
                Target.Offset(-1, 0).Interior.ColorIndex = 42
                For i = 10 To 8400 Step 56
                    .Cells(i, Target.Column).Interior.ColorIndex = 42
                Next
            End If
        End With
    End If
End Sub


 
 
Еще раз огромное спасибо! Я никогда в коды не заходила, только автоматически записывала макросы по действиям, - попробую завтра на свежую голову. Постараюсь справиться сама. Если не получится, - буду вновь обращаться к Вам за помощью. Спокойной ночи!
 
Там ничего сложного: правый клик по ярлычку листа "Результаты" - Исходный текст. Всё, что там есть - удалите, а последний код вставьте. Или сразу в Ваш полный файл копируйте.
 
Рискнула - получилось! Еще много раз Вам спасибо! Спокойной ночи, удачного дня!
Страницы: 1
Наверх