Здравствуйте, скажите пожалуйста,как сделать форму в эксель для вывода информации по списку. Т.е. есть заполненная таблица, в которой могут повторятся года, нужно при нажатии на кнопку и когда вводим например 2019 чтоб выводилась вся информации из этой таблицы за 2019г и т.п
Здравствуйте, скажите пожалуйста,как сделать форму в эксель для вывода информации по списку. Т.е. есть заполненная таблица, в которой могут повторятся года, нужно при нажатии на кнопку и когда вводим например 2019 чтоб выводилась вся информации из этой таблицы за 2019г и т.пDKeT
Тут он получается через Автофильтр работает? А можете подсказать как этот код изменить, предложили, а как изменить не могу понять. получается что когда я ввожу 2 раз значение где информация по 1 значению у меня выводит на это значение разные года Sub Кнопка1_Щелчок() god = InputBox("Введите год!", "") If Len(god) = 0 Then Exit Sub ' нажали отмена
With Лист1 'работаем с листом исходных данных lLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row ' сколько трок занято в 1 колонке m = .Cells(1, 1).Resize(lLastRow, 5).Value ' грузим всё в массив End With
With Лист2 'работаем с листом приёма данных lLastRow = Cells(Rows.Count, 1).End(xlUp).Row - 1 ' сколько трок занято в 1 колонке If lLastRow > 1 Then .Cells(2, 1).Resize(lLastRow, 5).ClearContents ' если есть занятые строки - чистим For r = 2 To UBound(m) ' идйм по массиву If InStr(1, m(r, 5), god) > 0 Then ' если есть год lLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 ' первая пустая For c = 1 To UBound(m, 2) 'по строке с совпадением .Cells(lLastRow, c) = m(r, c) Next c End If Next r End With
End Sub
Тут он получается через Автофильтр работает? А можете подсказать как этот код изменить, предложили, а как изменить не могу понять. получается что когда я ввожу 2 раз значение где информация по 1 значению у меня выводит на это значение разные года Sub Кнопка1_Щелчок() god = InputBox("Введите год!", "") If Len(god) = 0 Then Exit Sub ' нажали отмена
With Лист1 'работаем с листом исходных данных lLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row ' сколько трок занято в 1 колонке m = .Cells(1, 1).Resize(lLastRow, 5).Value ' грузим всё в массив End With
With Лист2 'работаем с листом приёма данных lLastRow = Cells(Rows.Count, 1).End(xlUp).Row - 1 ' сколько трок занято в 1 колонке If lLastRow > 1 Then .Cells(2, 1).Resize(lLastRow, 5).ClearContents ' если есть занятые строки - чистим For r = 2 To UBound(m) ' идйм по массиву If InStr(1, m(r, 5), god) > 0 Then ' если есть год lLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 ' первая пустая For c = 1 To UBound(m, 2) 'по строке с совпадением .Cells(lLastRow, c) = m(r, c) Next c End If Next r End With