Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2015, 12:33   #1
amadeus017
Форумчанин
 
Регистрация: 28.05.2014
Сообщений: 158
По умолчанию Закрасить ячейки

Доброго времени суток, уважаемые форумчане!

У меня к вам вопрос, можно ли написать макрос, который бы при условии встречающихся значений в столбике А, окрашивал ячейку по данной строке в столбике N.
Т.е., существует файл, в котором множество листов и листы по разному называются, но если на листе есть определенное условие, то ячейку в по данной строке в столбике N, необходимо окрасить в желтый или зеленый цвет. Раскрасить нужно по всем листам в книге, значение не затираем, только раскрасить.
Вложения
Тип файла: rar Книга_1.rar (7.2 Кб, 10 просмотров)

Последний раз редактировалось amadeus017; 06.05.2015 в 12:35. Причина: арфографическая ошибка
amadeus017 вне форума Ответить с цитированием
Старый 06.05.2015, 13:05   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Зачем макрос - условным форматированием легко сделать.
Вложения
Тип файла: rar Книга_1.rar (8.5 Кб, 14 просмотров)
exceleved@yandex.ru Яндекс.Деньги: 410011500007619

Последний раз редактировалось Казанский; 06.05.2015 в 13:15. Причина: приложил файл
Казанский вне форума Ответить с цитированием
Старый 06.05.2015, 13:10   #3
27102014
Форумчанин
 
Регистрация: 27.10.2014
Сообщений: 248
По умолчанию

Макрос
Код:
Sub Colour()

For y = 1 To ThisWorkbook.Sheets.Count
  Sheets(y).Select
 
    lLastRow = Cells(Rows.Count, 1).End(xlUp).Row ' счетчик последней строки     
  For i = 1 To lLastRow
          If Cells(i, 1) = "Итого скорректировано по начислениям" Then
          Cells(i, 14).Select
              With Selection.Interior
                  .Pattern = xlSolid
                  .PatternColorIndex = xlAutomatic
                  .Color = 5296274 'зеленый
                  .TintAndShade = 0
                  .PatternTintAndShade = 0
              End With
          End If
          
          If Cells(i, 1) = "Итого скорректировано по предоплатам" Then
          Cells(i, 14).Select
              With Selection.Interior
                  .Pattern = xlSolid
                  .PatternColorIndex = xlAutomatic
                  .Color = 65535 'желтый
                  .TintAndShade = 0
                  .PatternTintAndShade = 0
              End With
          End If
          
          If Cells(i, 1) = "В т.ч. по предоплатам" Then
          Cells(i, 14).Select
              With Selection.Interior
                  .Pattern = xlSolid
                  .PatternColorIndex = xlAutomatic
                  .Color = 65535 'желтый
                  .TintAndShade = 0
                  .PatternTintAndShade = 0
              End With
          End If
      
      Next i
      
    Next y
      
    
End Sub
27102014 вне форума Ответить с цитированием
Старый 06.05.2015, 13:51   #4
amadeus017
Форумчанин
 
Регистрация: 28.05.2014
Сообщений: 158
По умолчанию

Надо именно макрос, т.к., если я не ошибаюсь, то формат ячеек, нужно делать на каждом листе, а это долго, тогда уж лучше закрасить вручную...
Спасибо большое "27102014", все работает, буду тестить на реальных файлах.
amadeus017 вне форума Ответить с цитированием
Старый 06.05.2015, 14:40   #5
amadeus017
Форумчанин
 
Регистрация: 28.05.2014
Сообщений: 158
По умолчанию

Макрос работает, еще раз большое спасибо, только маленький недочет. Данный макрос, приходится копировать в каждый файл (Alt + F11, в "ЭтаКнига"), из другого файла, макрос не запускается (выдает ошибку). Однако, это лучше чем вручную "лопатить" весь файл!
amadeus017 вне форума Ответить с цитированием
Старый 06.05.2015, 14:51   #6
27102014
Форумчанин
 
Регистрация: 27.10.2014
Сообщений: 248
По умолчанию

Цитата:
Сообщение от amadeus017 Посмотреть сообщение
Макрос работает, еще раз большое спасибо, только маленький недочет. Данный макрос, приходится копировать в каждый файл (Alt + F11, в "ЭтаКнига"), из другого файла, макрос не запускается (выдает ошибку). Однако, это лучше чем вручную "лопатить" весь файл!
Если Вам так часто нужно использовать данный макрос, поместите его в личную книгу макросов
27102014 вне форума Ответить с цитированием
Старый 06.05.2015, 14:52   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

это не
Цитата:
маленький недочет
макроса, это зияющая дыра в поставновке задачи
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 06.05.2015, 14:53   #8
27102014
Форумчанин
 
Регистрация: 27.10.2014
Сообщений: 248
По умолчанию

Код:
For y = 1 To ThisWorkbook.Sheets.Count
Исправьте на
Код:
For y = 1 To ActiveWorkbook.Sheets.Count

В этом случае будет работать во всех книгах
27102014 вне форума Ответить с цитированием
Старый 06.05.2015, 15:28   #9
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Цитата:
Сообщение от amadeus017 Посмотреть сообщение
если я не ошибаюсь, то формат ячеек, нужно делать на каждом листе
Создавать правила УФ, действительно, можно только на одном листе. Но потом можно копировать формат столбца с УФ (кисть), выделить все остальные листы и кликнуть кистью по заголовку столбца.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Редактирование ячейки и перенос значения ячейки через форму на другой лис Susven Microsoft Office Excel 2 11.06.2013 09:18
Исключение из общей суммы ячейки на основании данных ячейки из другой строки Natalia07 Помощь студентам 2 06.03.2013 17:16
поиск последней заполненной ячейки, которая находится выше ячейки с формулой Akmal-Sharipov Microsoft Office Excel 3 11.01.2011 13:27
Заполнить пустые ячейки ниже значениями из непустой ячейки ing60 Microsoft Office Excel 7 01.04.2009 04:20
Как разделить число и текст в одной ячейки на две ячейки. neboskreb Microsoft Office Excel 2 15.04.2008 19:39