Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2018, 10:35   #1
Анатолий8383
Пользователь
 
Регистрация: 11.01.2018
Сообщений: 14
Радость Текущий квартал

Здравствуйте, подскажите пожалуйста с проблемой.

использую фильтр в макросе такого типа

Sub 1()
Range("AN31:AN1670").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, _
Criteria1:="<=" & CDbl(DateSerial(Year(Date), Month(Date), 14))
End Sub

Задача - фильтровать вторым критерием или вместе с этип, <= текущего квартала/следующего квартала . В офис 2010 есть конечно автофильтр по текущему и следующему квартолу но нужно (<= определенного числа текущего квартала/следующего квартала) и (от определенного числа текущего квартала до определенного числа следующего квартала).
Зарарнее спасибо
Анатолий8383 вне форума Ответить с цитированием
Старый 11.01.2018, 11:31   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

функции:
Код:
Function StartQuarter(Optional Dt As Date = Now)
  StartQuarter = DateSerial(Year(Dt), ((Month(Dt) - 1) \ 3) * 3 + 1, 1)
End Function
и
Function EndQuarter(Optional Dt As Date = Now)
  EndQuarter = DateSerial(Year(Dt), ((Month(Dt) - 1) \ 3) * 3 + 4, 0)
End Function
вызванные без параметра вернут начало и окончание текущего квартала, с параметром - начало и окончание квартала содержащего переданную в качестве параметра дату.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 11.01.2018, 11:41   #3
Анатолий8383
Пользователь
 
Регистрация: 11.01.2018
Сообщений: 14
По умолчанию

Спасибо за быстрый ответ, я в этой области любитель, подскажите подробнее куда вставлять эти функции, вместо критерия или в критерий?
Анатолий8383 вне форума Ответить с цитированием
Старый 11.01.2018, 11:56   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

попробовал, как работает... заодно пришлось чуть поправить код))
Код:
Function StartQuarter(Optional Dt As Date = 1)
  If Dt = 1 Then Dt = Now
  StartQuarter = DateSerial(Year(Dt), ((Month(Dt) - 1) \ 3) * 3 + 1, 1)
End Function

Function EndQuarter(Optional Dt As Date = 1)
  If Dt = 1 Then Dt = Now
  EndQuarter = DateSerial(Year(Dt), ((Month(Dt) - 1) \ 3) * 3 + 4, 0)
End Function
в файле есть пример использования на функций на листе
приметительно к Вашему примеру кода:
Код:
Criteria1:="<=" & CDbl(EndQuarter())
в фильтр попадет все, что меньше конца текущего квартала
Вложения
Тип файла: 7z Квартал.7z (59 байт, 20 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 11.01.2018, 12:03   #5
Анатолий8383
Пользователь
 
Регистрация: 11.01.2018
Сообщений: 14
По умолчанию

Спасибо огромное, завтра попробую
Анатолий8383 вне форума Ответить с цитированием
Старый 11.01.2018, 14:47   #6
Анатолий8383
Пользователь
 
Регистрация: 11.01.2018
Сообщений: 14
По умолчанию

Скачал зип (несколько раз) он пустой, а критерий поставлял в свой файл Эксель (в автофильтр который писал до этого) пишет что не распознал функцию. Может я что-то не понял. Загрузить пожалуйста зип ещё раз а я попробую на другом пк
Анатолий8383 вне форума Ответить с цитированием
Старый 11.01.2018, 15:02   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Анатолий8383 Посмотреть сообщение
Скачал зип (несколько раз) он пустой
подтверждаю. у меня тоже пустой файл!!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.01.2018, 21:05   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

см.вложение
Вложения
Тип файла: rar Квартал.rar (10.7 Кб, 9 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 12.01.2018, 11:24   #9
Анатолий8383
Пользователь
 
Регистрация: 11.01.2018
Сообщений: 14
По умолчанию

Пробовал, все работает, немного переделал под себя, спасибо огромное, узнал что такое функции))
Анатолий8383 вне форума Ответить с цитированием
Старый 15.01.2018, 06:49   #10
Анатолий8383
Пользователь
 
Регистрация: 11.01.2018
Сообщений: 14
По умолчанию

получилось вот что

макрос фильтр 1


Rows("31:31").AutoFilter
Range("AN31:AN1670").AutoFilter Field:=1, _
Criteria1:="<=" & CDbl(DateSerial(Year(Date), Month(Date) + 1, 1))
и

макрос фильтр 2


Rows("31:31").AutoFilter
Range("AO31:AO1670").AutoFilter Field:=1, _
Criteria1:=">=" & CDbl(DateSerial(Year(Date), Month(Date) + 1, 1)), Operator:=xlAnd, _
Criteria2:="<=" & CDbl(DateSerial(Year(Date), Month(Date) + 3, 0))


а как дополнить этот макрос поиском по нужному слову, так что бы наверно третьим критерием или сразу после этого выполнялся автофильтр по нужному слову (не вводимому а постоянному, уже забитому в кнопке с полным макросом). т.е. нажал кнопку к примеру с названием "трактор" и появились все тракторы (из общего списка техники) в соответствии с вышепреведенным фильтром (1 или 2) по дате.

Вставка дополнительного фильтра после "макрос фильтр 1" или "макрос фильтр 2" не помогает, выдает ошибку.

Заранее спасибо.
Анатолий8383 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить квартал и год Roleg Microsoft Office Excel 4 17.05.2012 00:37
Текущий юзер DLE Asterious WordPress и другие CMS 0 19.02.2012 07:40
Текущий url webbrowser... goofc Общие вопросы Delphi 13 18.12.2011 13:48
Квартал по текущей дате kuzjaca Microsoft Office Access 3 18.07.2011 14:36
Текущий уровень звука ! XuMuK Win Api 3 11.10.2007 10:25