Страницы: 1
RSS
Поиск и фильтрация всех данных которые совпадают с искомыми значениями и ComboBox1 и ComboBox2
 
Здравствуйте!

Ниже наведен код, который ищет данные в колонке А и выводит от 1 и более строк с совпадениями.

Когда ввожу данные с UserForm1  ComboBox1 фильтр подтягивает все числа там где они сами и там где они присутствуют с другими числами.
Когда ввожу данные с UserForm1  ComboBox1 и  ComboBox2 в одну ячейку фильтрация подтягивает диапазон там где эти числа присутствуют в месте а там где раздельно нет.

Нужно при вводе данных в колонку А2 с UserForm1  ComboBox1 и  ComboBox2 в одну ячейку А2 фильтр отфильтровывал все числа даже те которые присутствуют одни в строках и те которые присутствуют вместе с остальными.

Пример при выборе данных с ComboBox1 числа 12.14.01 и ComboBox2 числа 12.14.02 вводились данные в ячейке А2  *12.14.01** 12.14.02* после чего фильтр отфильтровал строки сданными *12.14.01* и *12.14.01*12.14.02* и *12.14.02*

Есть возможность это решить?

Код
Private Sub Worksheet_Change(ByVal Target As Range)
     If Not Intersect(Target, Range("A2:D2")) Is Nothing Then
         Application.EnableEvents = False
      On Error Resume Next
         ActiveSheet.ShowAllData
         Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("A1:D2")
         Application.EnableEvents = True
         End If
End Sub
Изменено: Ян Копко - 02.06.2021 11:41:17
 
вы прекрасно описали работу Вашего кода, а вопрос какой, что не получается? или что должно быть?

как вариант..
Код
Private Sub CommandButton1_Click()
Dim x1 As String, x3 As String, x4 As String, cell As Range
x1 = ComboBox1.Text
x2 = ComboBox2.Text
x3 = Replace(ComboBox1.Text & ComboBox2.Text, "**", "*")
x = Application.WorksheetFunction.CountIf(Columns(1), "<>" & "")
Range(Cells(3, 1), Cells(x + 2, 1)).EntireRow.Hidden = False
Range(Cells(3, 1), Cells(x + 2, 1)).EntireRow.AutoFit
Worksheets(1).Cells(2, 1).Value = x3
lr = Cells(Rows.Count, 1).End(xlUp).Row + 2
For i = 3 To lr
    If Cells(i, 1) <> x1 And Cells(i, 1) <> x2 And Cells(i, 1) <> x3 Then
    If cell Is Nothing Then
        Set cell = Cells(i, 1)
    Else
        Set cell = Union(cell, Cells(i, 1))
    End If
    End If
Next i
If Not cell Is Nothing Then cell.EntireRow.Hidden = True
Unload UserForm1
End Sub
Изменено: Mershik - 02.06.2021 12:58:38
Не бойтесь совершенства. Вам его не достичь.
 
Раз Вы используете автофильтр, так и используйте его правильно: 2 значения - 2 строки в фильтре
Я не волшебник, я только учусь.
 
Mershik благодарю за помощь
Wiss благодарю за помощь и напутствие
Страницы: 1
Наверх