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

Вход

Регистрация

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

 

= Мир MS Excel/Создание формы поиска по году - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Создание формы поиска по году
DKeT Дата: Вторник, 09.04.2019, 15:23 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 52
Репутация: 3 ±
Замечаний: 20% ±

Excel 2007
Здравствуйте, скажите пожалуйста,как сделать форму в эксель для вывода информации по списку. Т.е. есть заполненная таблица, в которой могут повторятся года, нужно при нажатии на кнопку и когда вводим например 2019 чтоб выводилась вся информации из этой таблицы за 2019г и т.п
К сообщению приложен файл: 5707786.xlsm (19.3 Kb)
 
Ответить
СообщениеЗдравствуйте, скажите пожалуйста,как сделать форму в эксель для вывода информации по списку. Т.е. есть заполненная таблица, в которой могут повторятся года, нужно при нажатии на кнопку и когда вводим например 2019 чтоб выводилась вся информации из этой таблицы за 2019г и т.п

Автор - DKeT
Дата добавления - 09.04.2019 в 15:23
skais Дата: Вторник, 09.04.2019, 15:35 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 236
Репутация: 29 ±
Замечаний: 20% ±

Excel 2010
Может сводной устроит?
К сообщению приложен файл: 1754625.xlsm (25.8 Kb)
 
Ответить
СообщениеМожет сводной устроит?

Автор - skais
Дата добавления - 09.04.2019 в 15:35
DKeT Дата: Среда, 10.04.2019, 13:24 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 52
Репутация: 3 ±
Замечаний: 20% ±

Excel 2007
Спасибо, за вариант, но нет, в том то и проблема нужно именно через кнопку
 
Ответить
СообщениеСпасибо, за вариант, но нет, в том то и проблема нужно именно через кнопку

Автор - DKeT
Дата добавления - 10.04.2019 в 13:24
and_evg Дата: Среда, 10.04.2019, 13:41 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 465
Репутация: 79 ±
Замечаний: 0% ±

Excel 2007
Доброго времени
Может так?
[vba]
Код
Sub qwerty()
    God = InputBox("Выбор года")
    Range("A2:E9").AutoFilter Field:=5, Criteria1:="=*" & God & "*"
End Sub
[/vba]
К сообщению приложен файл: 1168879.xlsm (20.5 Kb)


Сообщение отредактировал and_evg - Среда, 10.04.2019, 13:49
 
Ответить
СообщениеДоброго времени
Может так?
[vba]
Код
Sub qwerty()
    God = InputBox("Выбор года")
    Range("A2:E9").AutoFilter Field:=5, Criteria1:="=*" & God & "*"
End Sub
[/vba]

Автор - and_evg
Дата добавления - 10.04.2019 в 13:41
DKeT Дата: Среда, 10.04.2019, 15:45 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 52
Репутация: 3 ±
Замечаний: 20% ±

Excel 2007
Тут он получается через Автофильтр работает? А можете подсказать как этот код изменить, предложили, а как изменить не могу понять. получается что когда я ввожу 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

End Sub

Автор - DKeT
Дата добавления - 10.04.2019 в 15:45
_Boroda_ Дата: Среда, 10.04.2019, 15:56 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16718
Репутация: 6505 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
DKeT, последнее китайское предупреждение - прочитайте Правила форума. И поправьте свой предыдущий пост


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеDKeT, последнее китайское предупреждение - прочитайте Правила форума. И поправьте свой предыдущий пост

Автор - _Boroda_
Дата добавления - 10.04.2019 в 15:56
  • Страница 1 из 1
  • 1
Поиск:

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