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

Вход

Регистрация

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

 

= Мир MS Excel/Запрос автофильтра, с одним условием несколько столбцов. - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Запрос автофильтра, с одним условием несколько столбцов.
UpFRONT Дата: Воскресенье, 23.09.2018, 08:40 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Здравствуйте уважаемые жители форума. Прошу помощи, может у кого есть готовое решение?! на Forms.TextBox.
1. ПОИСК/автофильтр с одним условием на несколько столбцов (с возможностью поиска типа текст*, текст?, чтобы искать примерное совпадение тоже)
2. подсветкой ячейки с заданным условием.
В примере файл: есть столбец "Фрукты А1", "Фрукты А2", Фрукты Б1, Фрукты Б2. Задаем поиск в текстбоксе и происходит автофильтрация данных. Фильтр получается срабатывает по условию, что текст есть хотябы в одной ячейке каждой строки. И подсвечивается ячейка, где был найден данный текст.

На форумах нашел поиск и выделение необходимых слов. это так:
Sub Find_n_Highlight()
On Error Resume Next: Err.Clear
Dim ra As Range, cell As Range, res, txt$, v, pos&
res = InputBox("Введите текст, который необходимо
подсветить в таблице", "Поиск и подсветка текста", "диз")
If VarType(res) = vbBoolean Then Exit Sub ' нажата
кнопка ОТМЕНА
txt$ = Trim(res): If Len(txt) = 0 Then Exit Sub '
текст не введен, или состоит из пробелов

Set ra = Range([A2], Range("A" & Rows.Count).End(xlUp))
' диапазон для поиска
Application.ScreenUpdating = False
ra.Font.Color = 0: ra.Font.Bold = 0 ' сброс цветового
выделения

For Each cell In ra.Cells ' перебираем все ячейки
pos = 1
If cell.Text Like "*" & txt & "*" Then
arr = Split(cell.Text, txt, , vbTextCompare) '
разбивает текст ячейки на части
If UBound(arr) > 0 Then ' если подстрока
найдена
For Each v In arr ' перебираем все
вхождения
pos = pos + Len(v) ' начальная позиция
With cell.Characters(pos, Len(txt))
.Font.ColorIndex = 3 ' выделяем
цветом
.Font.Bold = True ' и полужирным
начертанием
End With
pos = pos + Len(txt)
Next v
End If
End If
Next cell
End Sub

Но мне нужно выделение не текта, а самой ячейки.
К сообщению приложен файл: 456.xlsm (14.1 Kb)
 
Ответить
СообщениеЗдравствуйте уважаемые жители форума. Прошу помощи, может у кого есть готовое решение?! на Forms.TextBox.
1. ПОИСК/автофильтр с одним условием на несколько столбцов (с возможностью поиска типа текст*, текст?, чтобы искать примерное совпадение тоже)
2. подсветкой ячейки с заданным условием.
В примере файл: есть столбец "Фрукты А1", "Фрукты А2", Фрукты Б1, Фрукты Б2. Задаем поиск в текстбоксе и происходит автофильтрация данных. Фильтр получается срабатывает по условию, что текст есть хотябы в одной ячейке каждой строки. И подсвечивается ячейка, где был найден данный текст.

На форумах нашел поиск и выделение необходимых слов. это так:
Sub Find_n_Highlight()
On Error Resume Next: Err.Clear
Dim ra As Range, cell As Range, res, txt$, v, pos&
res = InputBox("Введите текст, который необходимо
подсветить в таблице", "Поиск и подсветка текста", "диз")
If VarType(res) = vbBoolean Then Exit Sub ' нажата
кнопка ОТМЕНА
txt$ = Trim(res): If Len(txt) = 0 Then Exit Sub '
текст не введен, или состоит из пробелов

Set ra = Range([A2], Range("A" & Rows.Count).End(xlUp))
' диапазон для поиска
Application.ScreenUpdating = False
ra.Font.Color = 0: ra.Font.Bold = 0 ' сброс цветового
выделения

For Each cell In ra.Cells ' перебираем все ячейки
pos = 1
If cell.Text Like "*" & txt & "*" Then
arr = Split(cell.Text, txt, , vbTextCompare) '
разбивает текст ячейки на части
If UBound(arr) > 0 Then ' если подстрока
найдена
For Each v In arr ' перебираем все
вхождения
pos = pos + Len(v) ' начальная позиция
With cell.Characters(pos, Len(txt))
.Font.ColorIndex = 3 ' выделяем
цветом
.Font.Bold = True ' и полужирным
начертанием
End With
pos = pos + Len(txt)
Next v
End If
End If
Next cell
End Sub

Но мне нужно выделение не текта, а самой ячейки.

Автор - UpFRONT
Дата добавления - 23.09.2018 в 08:40
Pelena Дата: Воскресенье, 23.09.2018, 08:49 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19603
Репутация: 4660 ±
Замечаний: ±

Excel 365 & Mac Excel
UpFRONT, оформите код тегами с помощью кнопки # в режиме правки поста


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеUpFRONT, оформите код тегами с помощью кнопки # в режиме правки поста

Автор - Pelena
Дата добавления - 23.09.2018 в 08:49
  • Страница 1 из 1
  • 1
Поиск:

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