Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Выделить ячейки по значению и изменить цвет строк - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выделить ячейки по значению и изменить цвет строк (Макросы/Sub)
Выделить ячейки по значению и изменить цвет строк
Mikhail_N Дата: Среда, 01.02.2023, 17:58 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

2019
Здравствуйте. Помогите, пожалуйста, с макросом. Необходимо сделать строки в зависимости от текста в ячейках из колонки "Тариф" зелеными. Искомые ячейки с текстом, например, "Телевидение" и "Экономный дом". Как я понимаю, сначала стоит выделить все ячейки, содержащие нужный текст, затем сместить область выделения на ячейку влево и на две ячейки вправо и выполнить заливку нужным цветом. На данный момент дошел до следующего:

[vba]
Код
Sub CellSelection()
    Dim RezPoiska As Range, firstAddress$
    Set RezPoiska = Cells.Find(What:="Телевидение", LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)
    If RezPoiska Is Nothing Then Exit Sub
    firstAddress = RezPoiska.Address
    RezPoiska.Select
    Do
        Set RezPoiska = Cells.FindNext(RezPoiska)
        If RezPoiska.Address = firstAddress Then Exit Do
        Union(Selection, RezPoiska).Select
    Loop
    
'   Selection.Select
'   Selection.Offset(0, 0).Resize(Selection.Rows.Count, _
'   Selection.Columns.Count + 2).Select
    
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent6
        .TintAndShade = 0.399975585192419
        .PatternTintAndShade = 0
    End With
            
End Sub
[/vba]

В идеале, текст в некоторых строках в зависимости от текста в колонке "Тариф" (напр., "Практичный" и "Интернет 100") выделить жирным. На Лист1 в прикрепленном файле исходные таблицы, на Лист2 необходимый результат.
К сообщению приложен файл: 2023.02.01_Exce.xlsx (26.8 Kb)
 
Ответить
СообщениеЗдравствуйте. Помогите, пожалуйста, с макросом. Необходимо сделать строки в зависимости от текста в ячейках из колонки "Тариф" зелеными. Искомые ячейки с текстом, например, "Телевидение" и "Экономный дом". Как я понимаю, сначала стоит выделить все ячейки, содержащие нужный текст, затем сместить область выделения на ячейку влево и на две ячейки вправо и выполнить заливку нужным цветом. На данный момент дошел до следующего:

[vba]
Код
Sub CellSelection()
    Dim RezPoiska As Range, firstAddress$
    Set RezPoiska = Cells.Find(What:="Телевидение", LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)
    If RezPoiska Is Nothing Then Exit Sub
    firstAddress = RezPoiska.Address
    RezPoiska.Select
    Do
        Set RezPoiska = Cells.FindNext(RezPoiska)
        If RezPoiska.Address = firstAddress Then Exit Do
        Union(Selection, RezPoiska).Select
    Loop
    
'   Selection.Select
'   Selection.Offset(0, 0).Resize(Selection.Rows.Count, _
'   Selection.Columns.Count + 2).Select
    
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent6
        .TintAndShade = 0.399975585192419
        .PatternTintAndShade = 0
    End With
            
End Sub
[/vba]

В идеале, текст в некоторых строках в зависимости от текста в колонке "Тариф" (напр., "Практичный" и "Интернет 100") выделить жирным. На Лист1 в прикрепленном файле исходные таблицы, на Лист2 необходимый результат.

Автор - Mikhail_N
Дата добавления - 01.02.2023 в 17:58
Pelena Дата: Среда, 01.02.2023, 19:37 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19138
Репутация: 4409 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте.
Обязательно макросом? Условное форматирование не вариант?
К сообщению приложен файл: 4156897.xlsx (26.8 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте.
Обязательно макросом? Условное форматирование не вариант?

Автор - Pelena
Дата добавления - 01.02.2023 в 19:37
i691198 Дата: Среда, 01.02.2023, 19:39 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 204
Репутация: 83 ±
Замечаний: 0% ±

Mikhail_N, Посмотрите вариант с условным форматированием, без макросов (на первом листе). Поскольку у вас достаточно большой список значений для выделения, то я для удобства вынес их в отдельные столбцы. Можете добавлять еще значения.
К сообщению приложен файл: 2023.02.01_2.xlsx (27.7 Kb)
 
Ответить
СообщениеMikhail_N, Посмотрите вариант с условным форматированием, без макросов (на первом листе). Поскольку у вас достаточно большой список значений для выделения, то я для удобства вынес их в отдельные столбцы. Можете добавлять еще значения.

Автор - i691198
Дата добавления - 01.02.2023 в 19:39
cmivadwot Дата: Среда, 01.02.2023, 22:32 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 85 ±
Замечаний: 0% ±

365
Mikhail_N, с условным форматированием и срезом...
К сообщению приложен файл: 6867193.xlsx (31.6 Kb)
 
Ответить
СообщениеMikhail_N, с условным форматированием и срезом...

Автор - cmivadwot
Дата добавления - 01.02.2023 в 22:32
cmivadwot Дата: Среда, 01.02.2023, 23:05 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 85 ±
Замечаний: 0% ±

365
Mikhail_N, записанный макрос с манипуляциями автофильтра, подкраска и выделение....косячек-при изменении жирным остается там, где раньше было жирным. не учел при записи макроса.
К сообщению приложен файл: 2023.02.01_2-1-.xlsm (38.6 Kb)
 
Ответить
СообщениеMikhail_N, записанный макрос с манипуляциями автофильтра, подкраска и выделение....косячек-при изменении жирным остается там, где раньше было жирным. не учел при записи макроса.

Автор - cmivadwot
Дата добавления - 01.02.2023 в 23:05
Mikhail_N Дата: Четверг, 02.02.2023, 09:17 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

2019
Pelena, i691198, спасибо за помощь, проблема с условным форматированием в том, что для того, чтобы сделать список по примеру до "покраски", я каждый раз сначала создаю Excel файл, затем выгружаю адреса из программы и макросом привожу их в читаемый вид: может быть 5 домов, может 10, может 30. Вторая проблема - всего по предварительным подсчетам существует примерно 800 комбинаций названий тарифов, четверть из них не должны быть зеленые. Тарифы вроде "Телевидение" и "Экономный дом" встречаются чаще всего, но иногда попадаются редкие, вроде "Дом с телефоном цифровой, Расширенный". В теории, можно было бы использовать один и тот же файл с настроенным форматированием или копировать условие каждый раз, но, наверняка, макросом было бы удобнее. Если, конечно, у Excel вообще не возникнет проблем с таким объемом условий.

cmivadwot, отлично, спасибо, этот код уже можно докрутить.
 
Ответить
СообщениеPelena, i691198, спасибо за помощь, проблема с условным форматированием в том, что для того, чтобы сделать список по примеру до "покраски", я каждый раз сначала создаю Excel файл, затем выгружаю адреса из программы и макросом привожу их в читаемый вид: может быть 5 домов, может 10, может 30. Вторая проблема - всего по предварительным подсчетам существует примерно 800 комбинаций названий тарифов, четверть из них не должны быть зеленые. Тарифы вроде "Телевидение" и "Экономный дом" встречаются чаще всего, но иногда попадаются редкие, вроде "Дом с телефоном цифровой, Расширенный". В теории, можно было бы использовать один и тот же файл с настроенным форматированием или копировать условие каждый раз, но, наверняка, макросом было бы удобнее. Если, конечно, у Excel вообще не возникнет проблем с таким объемом условий.

cmivadwot, отлично, спасибо, этот код уже можно докрутить.

Автор - Mikhail_N
Дата добавления - 02.02.2023 в 09:17
cmivadwot Дата: Четверг, 02.02.2023, 22:28 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 85 ±
Замечаний: 0% ±

365
Mikhail_N, сводная таблица
К сообщению приложен файл: 7896789789.xlsx (52.3 Kb)


Сообщение отредактировал cmivadwot - Четверг, 02.02.2023, 23:07
 
Ответить
СообщениеMikhail_N, сводная таблица

Автор - cmivadwot
Дата добавления - 02.02.2023 в 22:28
i691198 Дата: Пятница, 03.02.2023, 22:35 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 204
Репутация: 83 ±
Замечаний: 0% ±

Mikhail_N, Все выше предложенные решения даны для вашего конкретного примера, а из вашего последнего сообщения становится понятно,что требуется какое то общее решение для разных вариантов. В таком случае от вас требуются дополнительные пояснения. Надеюсь, что структура исходных данных на листе экселя после "выгрузки" и "обработки макросом" будет такой же, как в примере. Т.е. будут меняться названия тарифов и количество строк. И тут основная непонятка - в вашем примере одна часть строчек с названиями тарифов форматируются цветной заливкой, а другая жирным шрифтом. А по какому принципу? Если есть какая то точная зависимость, то это все можно реализовать макросом. Пояснения за вами. Пока могу предложить такой полуручной вариант - сочетание макроса и условного форматирования. Кликаем кнопку "Тарифы", в столбце "Н" отображается список имеющихся на листе тарифов, а в столбце "I" флажки. Отмечаем галочками строки для выделения жирным шрифтом, всё остальное будет выделено цветной заливкой.
К сообщению приложен файл: 2023.02.01_2.xlsm (37.2 Kb)
 
Ответить
СообщениеMikhail_N, Все выше предложенные решения даны для вашего конкретного примера, а из вашего последнего сообщения становится понятно,что требуется какое то общее решение для разных вариантов. В таком случае от вас требуются дополнительные пояснения. Надеюсь, что структура исходных данных на листе экселя после "выгрузки" и "обработки макросом" будет такой же, как в примере. Т.е. будут меняться названия тарифов и количество строк. И тут основная непонятка - в вашем примере одна часть строчек с названиями тарифов форматируются цветной заливкой, а другая жирным шрифтом. А по какому принципу? Если есть какая то точная зависимость, то это все можно реализовать макросом. Пояснения за вами. Пока могу предложить такой полуручной вариант - сочетание макроса и условного форматирования. Кликаем кнопку "Тарифы", в столбце "Н" отображается список имеющихся на листе тарифов, а в столбце "I" флажки. Отмечаем галочками строки для выделения жирным шрифтом, всё остальное будет выделено цветной заливкой.

Автор - i691198
Дата добавления - 03.02.2023 в 22:35
Kuzmich Дата: Пятница, 03.02.2023, 23:09 | Сообщение № 9
Группа: Проверенные
Ранг: Ветеран
Сообщений: 707
Репутация: 154 ±
Замечаний: 0% ±

Excel 2003
Цитата
Помогите, пожалуйста, с макросом. Необходимо сделать строки в зависимости от текста в ячейках из колонки "Тариф" зелеными

[vba]
Код
Sub iColorRows()
Dim iRange As Range
Dim i As Long
Dim iLastRow As Long
Dim FirstAdr As String
Dim arr
  arr = Split("Телевидение,Экономный дом", ",")
  iLastRow = Cells(Rows.Count, "A").End(xlUp).Row
  Range("A2:D" & iLastRow).Interior.ColorIndex = 2
  For i = 0 To UBound(arr)
  Set iRange = Columns(2).Find(arr(i), , xlValues, xlWhole)
    FirstAdr = iRange.Address
    Do
      Range("A" & iRange.Row & ":D" & iRange.Row).Interior.ColorIndex = 4
      Set iRange = Columns(2).FindNext(iRange)
    Loop While iRange.Address <> FirstAdr
  Next
End Sub
[/vba]
 
Ответить
Сообщение
Цитата
Помогите, пожалуйста, с макросом. Необходимо сделать строки в зависимости от текста в ячейках из колонки "Тариф" зелеными

[vba]
Код
Sub iColorRows()
Dim iRange As Range
Dim i As Long
Dim iLastRow As Long
Dim FirstAdr As String
Dim arr
  arr = Split("Телевидение,Экономный дом", ",")
  iLastRow = Cells(Rows.Count, "A").End(xlUp).Row
  Range("A2:D" & iLastRow).Interior.ColorIndex = 2
  For i = 0 To UBound(arr)
  Set iRange = Columns(2).Find(arr(i), , xlValues, xlWhole)
    FirstAdr = iRange.Address
    Do
      Range("A" & iRange.Row & ":D" & iRange.Row).Interior.ColorIndex = 4
      Set iRange = Columns(2).FindNext(iRange)
    Loop While iRange.Address <> FirstAdr
  Next
End Sub
[/vba]

Автор - Kuzmich
Дата добавления - 03.02.2023 в 23:09
cmivadwot Дата: Пятница, 03.02.2023, 23:29 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 85 ±
Замечаний: 0% ±

365
Mikhail_N, еще одна сводная.. по улицам домам, квартирам.... для чего нужно подкрашивать? анализ по домам, квартирам, тарифам? что дает подкраска??
К сообщению приложен файл: 7896789789-1-.xlsx (51.5 Kb)
 
Ответить
СообщениеMikhail_N, еще одна сводная.. по улицам домам, квартирам.... для чего нужно подкрашивать? анализ по домам, квартирам, тарифам? что дает подкраска??

Автор - cmivadwot
Дата добавления - 03.02.2023 в 23:29
cmivadwot Дата: Пятница, 03.02.2023, 23:42 | Сообщение № 11
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 85 ±
Замечаний: 0% ±

365
i691198, круто сделано
 
Ответить
Сообщениеi691198, круто сделано

Автор - cmivadwot
Дата добавления - 03.02.2023 в 23:42
Mikhail_N Дата: Понедельник, 06.02.2023, 10:26 | Сообщение № 12
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

2019
i691198, требовалось решение для конкретного примера из Сообщения № 1, благодаря этому решению я смог самостоятельно прописать в макрос названия других необходимых тарифов. По поводу заливки/жирного, разница в том, что какие-то тарифы включают в себя использование ТВ, а в каких-то только интернет, тарифы только с интернетом выделяем жирным. Названия у тарифов разные, почти никак не связанные: Практичный, Интернет 100, Динамичный и т. д. Решение с галочками интересное, спасибо.

Kuzmich, благодарю за способ, взял на вооружение.
cmivadwot, спасибо, ответил вам в ЛС по поводу сводных таблиц. Подкраска/выделение дает наглядность, чтобы было сразу видно определенные тарифы, в нашем случае "Телевидение", "Экономный дом" и др.

Прошу прощения, возможно, я неправильно выразился. Подошел код из Сообщения № 5 от cmivadwot, тему можно закрывать, если нужно. Всем спасибо за помощь, еще раз.
 
Ответить
Сообщениеi691198, требовалось решение для конкретного примера из Сообщения № 1, благодаря этому решению я смог самостоятельно прописать в макрос названия других необходимых тарифов. По поводу заливки/жирного, разница в том, что какие-то тарифы включают в себя использование ТВ, а в каких-то только интернет, тарифы только с интернетом выделяем жирным. Названия у тарифов разные, почти никак не связанные: Практичный, Интернет 100, Динамичный и т. д. Решение с галочками интересное, спасибо.

Kuzmich, благодарю за способ, взял на вооружение.
cmivadwot, спасибо, ответил вам в ЛС по поводу сводных таблиц. Подкраска/выделение дает наглядность, чтобы было сразу видно определенные тарифы, в нашем случае "Телевидение", "Экономный дом" и др.

Прошу прощения, возможно, я неправильно выразился. Подошел код из Сообщения № 5 от cmivadwot, тему можно закрывать, если нужно. Всем спасибо за помощь, еще раз.

Автор - Mikhail_N
Дата добавления - 06.02.2023 в 10:26
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выделить ячейки по значению и изменить цвет строк (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!