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

Вход

Регистрация

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

 

= Мир MS Excel/Поиск одновременно нескольких значений в таблице - Мир MS Excel

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

Excel 2010
Здравствуйте ! Есть таблица с артикулами.Их порядка 4 000. В таблице нужно как-то отфильтровать 300-400 артикулов . Делать это ручками проблематично, т.к. они раз в неделю меняются. Пробовал написать макрос по поиску и окраске нужной ячейки в определенный цвет, чтобы потом отфильтровать всё это, да ничего не вышло. :( Помогите плиз !!!
[moder]Файл с примером приложите[/moder]
В примере - на первом листе то, что имеем, на втором - то , что хочется получить, чтобы потом отфильтровать ячейки по цвету.
К сообщению приложен файл: 5305279.xls (28.5 Kb)


Сообщение отредактировал Jazzman - Суббота, 19.09.2015, 17:22
 
Ответить
СообщениеЗдравствуйте ! Есть таблица с артикулами.Их порядка 4 000. В таблице нужно как-то отфильтровать 300-400 артикулов . Делать это ручками проблематично, т.к. они раз в неделю меняются. Пробовал написать макрос по поиску и окраске нужной ячейки в определенный цвет, чтобы потом отфильтровать всё это, да ничего не вышло. :( Помогите плиз !!!
[moder]Файл с примером приложите[/moder]
В примере - на первом листе то, что имеем, на втором - то , что хочется получить, чтобы потом отфильтровать ячейки по цвету.

Автор - Jazzman
Дата добавления - 19.09.2015 в 15:14
Roman777 Дата: Суббота, 19.09.2015, 23:06 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Jazzman, Вы уверены, что Вам нужно просто окрасить определённые позиции цветом? мб что-то более удобное? Не понятна просто пока цель...
Если хотите окрасить, то можно так:
[vba]
Код
Sub okras()
Dim art() As String
Dim i As Long, j As Long
Dim Ish1 As Range
Dim art1 As Range
Set Ish1 = Application.InputBox("Выделите любую ячейку столбца, в котором нужно выделить", _
"Столбец товара", Type:=8)
Set art1 = Application.InputBox("Выделите любую ячейку искомых артикулов", _
"Столбец артикулов", Type:=8)
i_n = Worksheets(Ish1.Parent.Name).Cells(Rows.Count, Ish1.Column).End(xlUp).Row
j_n = Worksheets(art1.Parent.Name).Cells(Rows.Count, art1.Column).End(xlUp).Row
ReDim art(j_n)
For j = 1 To j_n
   art(j) = Worksheets(art1.Parent.Name).Cells(j, art1.Column)
Next j
For j = 1 To j_n
   For i = 1 To i_n
     If Worksheets(Ish1.Parent.Name).Cells(i, Ish1.Column) = art(j) Then
        Worksheets(Ish1.Parent.Name).Cells(i, Ish1.Column).Interior.Color = 65535
     End If
   Next i
Next j
End Sub
[/vba]
Если хотите без инпутбоксов, и файлик будет именно тем, что у Вас показан, можно так:
[vba]
Код
Sub okras2()
Dim art() As String
Dim i As Long, j As Long
i_n = Cells(Rows.Count, 1).End(xlUp).Row
j_n = Cells(Rows.Count, 2).End(xlUp).Row
ReDim art(j_n)
For j = 1 To j_n
   art(j) = Cells(j, 2)
Next j
For j = 1 To j_n
   For i = 1 To i_n
    If art(j) <> "" Then
     If Cells(i, 1) = art(j) Then
        Cells(i, 1).Interior.Color = 65535
     End If
    End If
   Next i
Next j
End Sub
[/vba]


Много чего не знаю!!!!
 
Ответить
СообщениеJazzman, Вы уверены, что Вам нужно просто окрасить определённые позиции цветом? мб что-то более удобное? Не понятна просто пока цель...
Если хотите окрасить, то можно так:
[vba]
Код
Sub okras()
Dim art() As String
Dim i As Long, j As Long
Dim Ish1 As Range
Dim art1 As Range
Set Ish1 = Application.InputBox("Выделите любую ячейку столбца, в котором нужно выделить", _
"Столбец товара", Type:=8)
Set art1 = Application.InputBox("Выделите любую ячейку искомых артикулов", _
"Столбец артикулов", Type:=8)
i_n = Worksheets(Ish1.Parent.Name).Cells(Rows.Count, Ish1.Column).End(xlUp).Row
j_n = Worksheets(art1.Parent.Name).Cells(Rows.Count, art1.Column).End(xlUp).Row
ReDim art(j_n)
For j = 1 To j_n
   art(j) = Worksheets(art1.Parent.Name).Cells(j, art1.Column)
Next j
For j = 1 To j_n
   For i = 1 To i_n
     If Worksheets(Ish1.Parent.Name).Cells(i, Ish1.Column) = art(j) Then
        Worksheets(Ish1.Parent.Name).Cells(i, Ish1.Column).Interior.Color = 65535
     End If
   Next i
Next j
End Sub
[/vba]
Если хотите без инпутбоксов, и файлик будет именно тем, что у Вас показан, можно так:
[vba]
Код
Sub okras2()
Dim art() As String
Dim i As Long, j As Long
i_n = Cells(Rows.Count, 1).End(xlUp).Row
j_n = Cells(Rows.Count, 2).End(xlUp).Row
ReDim art(j_n)
For j = 1 To j_n
   art(j) = Cells(j, 2)
Next j
For j = 1 To j_n
   For i = 1 To i_n
    If art(j) <> "" Then
     If Cells(i, 1) = art(j) Then
        Cells(i, 1).Interior.Color = 65535
     End If
    End If
   Next i
Next j
End Sub
[/vba]

Автор - Roman777
Дата добавления - 19.09.2015 в 23:06
AlexM Дата: Воскресенье, 20.09.2015, 09:10 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4509
Репутация: 1128 ±
Замечаний: 0% ±

Excel 2003
Окрасить можно просто УФ с формулой
Код
=ИЛИ(A2=$B$2:$B$4)

Для фильтра столбец с формулой
Код
=--ИЛИ(A2=$C$2:$C$4)
К сообщению приложен файл: 5305279_1.xls (33.5 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Воскресенье, 20.09.2015, 09:59
 
Ответить
СообщениеОкрасить можно просто УФ с формулой
Код
=ИЛИ(A2=$B$2:$B$4)

Для фильтра столбец с формулой
Код
=--ИЛИ(A2=$C$2:$C$4)

Автор - AlexM
Дата добавления - 20.09.2015 в 09:10
Karataev Дата: Воскресенье, 20.09.2015, 11:56 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
Вариант с использованием расширенного фильтра:
1) на листе Данные щелкните в ячейке A1 - вкладка Данные - группа Сортировка и фильтр - Дополнительно
2) появится окно - щелкните в поле Дипазон условий - перейдите на лист Условия - выделите ячейки A1:A4 - OK
Данные будут отфильтрованы.

P.S. на листе Условия заголовок должен быть такой же, как и на листе данные. Сейчас это заголовок "product_sku".
Чтобы снять фильтр: вкладка Данные - группа Сортировка и фильтр - Очистить
К сообщению приложен файл: AdditFilter.xls (27.5 Kb)
 
Ответить
СообщениеВариант с использованием расширенного фильтра:
1) на листе Данные щелкните в ячейке A1 - вкладка Данные - группа Сортировка и фильтр - Дополнительно
2) появится окно - щелкните в поле Дипазон условий - перейдите на лист Условия - выделите ячейки A1:A4 - OK
Данные будут отфильтрованы.

P.S. на листе Условия заголовок должен быть такой же, как и на листе данные. Сейчас это заголовок "product_sku".
Чтобы снять фильтр: вкладка Данные - группа Сортировка и фильтр - Очистить

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

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