Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 23.03.2018
Сообщений: 35

Фильтр по дате

28.04.2018, 10:19. Показов 4938. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите как сделать фильтр.Мне надо сделать фильтр по нажатию кнопки по датам... к примеру с 5 мая по 15 апреля.... я так понимаю в начале сделать фильтр по месяцам я понимаю... а вот как привязать число к месяцу первого значения фильтра и число к второму я не понимаю....
В файле на листе 1 фильтр устанавливаемый... на лист 2 таблица... надо согласно выбраному периоду сделать фильтр
Вложения
Тип файла: xlsx Книга1.xlsx (10.7 Кб, 8 просмотров)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.04.2018, 10:19
Ответы с готовыми решениями:

Фильтр по дате
Добрый день. Встроке где у меня, делается критерий по дате <= изадана дата, а как сделать привязку к ячейке или может тексбоксу, чтобы не...

Создать фильтр по дате и маршруту поезда
Здравствуйте. У меня проблема, есть определенное задание, не получается сделать фильтр, сначала хотел сделать простой фильтр по выбору из...

Как выставить фильтр по введённой в ячейку дате?
Ситуация такая, есть сводная таблица по которой строится диаграмма. Я хочу вводить дату в ячейку и смотреть какие показатели были конкретно...

16
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
28.04.2018, 14:30
Если хотите делать по уму, то не разбивайте дату на составляющие, тогда проблем с фильтрацией просто не будет. Если хотите идти своим путём, то в любом свободном столбце вводите формулу =ДАТАЗНАЧ(B2&"."&A2) и опять таки, фильтруете по дате.
0
0 / 0 / 0
Регистрация: 23.03.2018
Сообщений: 35
28.04.2018, 21:05  [ТС]
https://www.youtube.com/watch?v=xPalEw4xw1w
я так понимаю мне надо это сделать... вроде как
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
28.04.2018, 21:54
aastg2016, Скажите Вы действительно не видите, что автор ролика работает с датами, а не с тем бредом, что мы видим в выложенном файле ?
0
0 / 0 / 0
Регистрация: 23.03.2018
Сообщений: 35
28.04.2018, 23:33  [ТС]
я в файле показал что мне надо... обьяснил как мог... немогу найти инфу в инете как это сделать.... вот ролик нашел похожее но на англ все... как мне сделать я не понимаю... любой способ подойдет
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
28.04.2018, 23:37
Не можете в соседнем столбце создать столбец с датой и отфильтровать ?
0
0 / 0 / 0
Регистрация: 23.03.2018
Сообщений: 35
29.04.2018, 07:16  [ТС]
да я не понимаю как мне отфильтроовать с даты такой по дату такую.... по месяцу или числу могу....

Добавлено через 4 минуты
причем этой даты фильтра может и не быть в таблице
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
29.04.2018, 07:30
Дата это число дней, прошедших с 01.01.1900(или 02.01.1904 если установлена опция система дат 1904)

у Вас нет дат, а есть столбец с названием месяца в виде текста и днем, поэтому, чтобы иметь возможность фильтрации, нужно собрать из дня/месяца - дату. Это можно осуществить, если в любом свободном столбце ввести формулу =ДАТАЗНАЧ(B2&"."&A2) Разумеется, эта формула должна быть введена во все необходимые ячейки. И после этого, Вы можете спокойно установить фильтр по дате.

Если Вы хотите это осуществить программно, то кроме этого способа, Вы можете, сначала, скрыть все строки с "месяцем/днем", а затем пробежаться по этим ячейкам и отобразить строки, попадающие в указанный диапазон. Но даже в этом случае, дату придётся собирать, только сделает это макрос.
0
0 / 0 / 0
Регистрация: 23.03.2018
Сообщений: 35
29.04.2018, 07:33  [ТС]
как собрать я понял... а как команду фильтра прописать???

Добавлено через 55 секунд
и мне надо фильтр с и фильтр по....
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
29.04.2018, 08:03
Конкретно для Вашего файла, где в выпадающем списке перечислены не названия месяцев, а соответствующие даты, плюс формат, можно так (код необходимо разместить строго в модуле рабочего листа с именем Лист1)

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Worksheet_Change(ByVal Target As Range)
    If Application.Count([I3:L3]) = 4 Then
       Dim ws As Worksheet, d1 As Date, d2 As Date
       Set ws = Лист2 'Worksheets("Лист2")
      
       d1 = CDate([I3] & "." & [J3].Text)
       d2 = CDate([K3] & "." & [L3].Text)
       
       ws.[C1] = "Дата"
       With ws.Range(ws.[C2], ws.Cells(Rows.Count, "A").End(xlUp)).Columns(3)
            .Formula = "=DATEVALUE(B2&"".""&A2)"
            .Value = .Value 'Необязательно
            .AutoFilter 3, ">=" & CDbl(d1), xlAnd, "<" & CDbl(d2)
       End With
    End If
End Sub
0
0 / 0 / 0
Регистрация: 23.03.2018
Сообщений: 35
29.04.2018, 08:23  [ТС]
ещё маленькое уточнение... помоги пожалуйста... на листе 1 я создал даты фильтра с и по... мне надо чтоб по нажатию кнопки делался фильтр на листе 2... в выбраном диапазоне на листе 1.... или просто этот код вписать как функция кнопки???
Вложения
Тип файла: xlsx Книга1.xlsx (18.2 Кб, 14 просмотров)
0
0 / 0 / 0
Регистрация: 23.03.2018
Сообщений: 35
29.04.2018, 08:28  [ТС]
вообще так долго искать по датам... можно как бы сократить... чтоб месяц и дату выбирать отдельно... ну и в идеале я сделал чтоб в выпадающем списке нельзя было выбрать месяц "ПО" ранее месяца "С". а дату к каждому месяцу.... как я понимаю в данном примере так и реализовано...

Добавлено через 2 минуты
или я могу собрать по данным фильтрам в другую ячейку.... и назначать команду от этой собранной ячейки...
ну кароч смысл только в том чтобы по нажатию кнопки оно делало фильтр... так как у меня там оч много функций в этой кнопки до этой операции
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
29.04.2018, 08:29
Лучший ответ Сообщение было отмечено aastg2016 как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Кнопка1_Щелчок()
    If Application.Count([I3:J3]) = 2 Then
       Dim ws As Worksheet
       Set ws = Лист2 'Worksheets("Лист2")
      
       ws.[C1] = "Дата"
       With ws.Range(ws.[C2], ws.Cells(Rows.Count, "A").End(xlUp)).Columns(3)
            .Formula = "=DATEVALUE(B2&"".""&A2)"
            .Value = .Value 'Необязательно
            .AutoFilter 3, ">=" & [I3].Value2, xlAnd, "<" & [J3].Value2
       End With
    End If
End Sub
1
0 / 0 / 0
Регистрация: 23.03.2018
Сообщений: 35
29.04.2018, 08:30  [ТС]
просто не пойму как этот код вляпать в мой большой масив... файл на работе скопировать его не могу... у меня там идут команды по фильтрам свои...
Sub
поле команд
End sub

могу ли я этот код просто вляпать туда???
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
29.04.2018, 08:33
Вляпываются в .... а этот макрос просто назначают кнопке, разумеется имя макроса может быть и другим. В данном конкретном случае Кнопка1_Щелчок генерирует сам Excel.
0
0 / 0 / 0
Регистрация: 23.03.2018
Сообщений: 35
29.04.2018, 08:35  [ТС]
да не в имени дело.... у меня там большие масивы... после этих операция мне надо чтоб оно ещё и отфильтровало в данном периоде... могу ли я этот "приват" просто добавить к существующему???

Добавлено через 18 секунд
а вообще спасибо... работает как надо....

Добавлено через 26 секунд
единственная проблема что если не будет фильтра на таблице... ошибку бьет... но это я сам сделаю...
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
29.04.2018, 08:51
Это не проблема

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Кнопка1_Щелчок()
    If Application.Count([I3:J3]) = 2 Then
       Dim ws As Worksheet
       Set ws = Лист2 'Worksheets("Лист2")
      
       ws.[C1] = "Дата"
       With ws.Range(ws.[C2], ws.Cells(Rows.Count, "A").End(xlUp))
            .Rows(0).Font.Bold = True 'Необязательно
            With .Columns(3)
                 .Formula = "=DATEVALUE(B2&"".""&A2)"
                 .Value = .Value 'Необязательно
            End With
            .Offset(-1).AutoFilter 3, ">=" & [I3].Value2, xlAnd, "<" & [J3].Value2
       End With
    End If
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.04.2018, 08:51
Помогаю со студенческими работами здесь

Фильтр по дате (с и по)
datamodule2.ADOQuery4.Filtered:=false; datamodule2.ADOQuery4.Filter:='Дата_прибытия &gt;= ''''+dateToStr(DateTimePicker1.Date)+''''AND...

Фильтр по дате
Доброго времени суток! Такая задачка: элементарной формулой СУММЕСЛИ ищем (в листе all) и суммируем показатели людей по ФИО (на листе...

Фильтр по дате
Изпользую Paradox бд Data - в бд сохраняется как Date. DataModule1-&gt;TFirma-&gt;Filter = &quot;Data=&quot; + StrToDate(DateTimePicker2-&gt;Date);...

Фильтр по дате
Добрый день. Проект связал с базой Access, нужную таблицу вывел через DataGridView. По одному столбцу сделал фильтр по тексту:...

Фильтр по дате
Здравствуйте, на sql сервере нужно создать фильтр по определенному году. Чтобы все записи входящие в этот год отображались потом. Как это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru