Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

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

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

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, 12:31   #2
IgorGO
МегаМодератор
СуперМодератор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Адрес: УКРАЇНА, Київ
Сообщений: 8,909
Репутация: 1648

icq: 7934250
skype: i2x0,5
По умолчанию

функции:
Код:

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

вызванные без параметра вернут начало и окончание текущего квартала, с параметром - начало и окончание квартала содержащего переданную в качестве параметра дату.
__________________
41001804815208 - Яндекс-деньги благодарности за удачные советы и решения можно отправлять прямо сюда)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO на форуме   Ответить с цитированием
Старый 11.01.2018, 12:41   #3
Анатолий8383
Пользователь
 
Регистрация: 11.01.2018
Сообщений: 14
Репутация: 10
По умолчанию

Спасибо за быстрый ответ, я в этой области любитель, подскажите подробнее куда вставлять эти функции, вместо критерия или в критерий?
Анатолий8383 вне форума   Ответить с цитированием
Старый 11.01.2018, 12:56   #4
IgorGO
МегаМодератор
СуперМодератор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Адрес: УКРАЇНА, Київ
Сообщений: 8,909
Репутация: 1648

icq: 7934250
skype: i2x0,5
По умолчанию

попробовал, как работает... заодно пришлось чуть поправить код))
Код:

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 байт, 16 просмотров)
__________________
41001804815208 - Яндекс-деньги благодарности за удачные советы и решения можно отправлять прямо сюда)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO на форуме   Ответить с цитированием
Старый 11.01.2018, 13:03   #5
Анатолий8383
Пользователь
 
Регистрация: 11.01.2018
Сообщений: 14
Репутация: 10
По умолчанию

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

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

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

icq: 7934250
skype: i2x0,5
По умолчанию

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

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

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

макрос фильтр 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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить квартал и год 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


14:28.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru