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

Вход

Регистрация

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

 

= Мир MS Excel/Фильтр по дате: выбрать все даты ДО прошлого месяца - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Фильтр по дате: выбрать все даты ДО прошлого месяца (Макросы/Sub)
Фильтр по дате: выбрать все даты ДО прошлого месяца
iilfat Дата: Пятница, 24.07.2015, 14:25 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
Здравствуйте.

Я отфильтровал список, чтобы отобразились данные только за прошлый месяц. Код макроса вышел таким:
[vba]
Код
ActiveSheet.Range("$A$1:$U$3473").AutoFilter Field:=18, Criteria1:= _
          xlFilterLastMonth, Operator:=xlFilterDynamic
[/vba]
Мне нужно, чтобы выбрались все даты ДО прошлого месяца. То есть все кроме прошлого месяца и нынешнего месяца. Каким тогда будет код?

Если запущу макрос сегодня, остаться должны все месяцы до июня (не включительно).
Если запущу макрос в августе, остаться должны все месяцы до июля (не включительно).

Это возможно?

Спасибо.
Пример приводить, думаю, нет смысла.


Сообщение отредактировал Manyasha - Пятница, 24.07.2015, 14:46
 
Ответить
СообщениеЗдравствуйте.

Я отфильтровал список, чтобы отобразились данные только за прошлый месяц. Код макроса вышел таким:
[vba]
Код
ActiveSheet.Range("$A$1:$U$3473").AutoFilter Field:=18, Criteria1:= _
          xlFilterLastMonth, Operator:=xlFilterDynamic
[/vba]
Мне нужно, чтобы выбрались все даты ДО прошлого месяца. То есть все кроме прошлого месяца и нынешнего месяца. Каким тогда будет код?

Если запущу макрос сегодня, остаться должны все месяцы до июня (не включительно).
Если запущу макрос в августе, остаться должны все месяцы до июля (не включительно).

Это возможно?

Спасибо.
Пример приводить, думаю, нет смысла.

Автор - iilfat
Дата добавления - 24.07.2015 в 14:25
Manyasha Дата: Пятница, 24.07.2015, 15:09 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Можно так:
[vba]
Код
Sub filter_by_date()
     lr = Cells(Rows.Count, 1).End(xlUp).Row
     With CreateObject("Scripting.Dictionary"): .CompareMode = vbTextCompare
         For Each elem In Range("a2:a" & lr)
             If IsDate(elem) Then If Month(elem) < Month(Now) - 1 Then .Item(elem) = .Item(elem) + 1
         Next elem
         arrDate = .keys()
         ActiveSheet.Range("$A$1:$X$100").AutoFilter Field:=1, Operator:= _
         xlFilterValues, Criteria1:=arrDate
     End With
End Sub
[/vba]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеМожно так:
[vba]
Код
Sub filter_by_date()
     lr = Cells(Rows.Count, 1).End(xlUp).Row
     With CreateObject("Scripting.Dictionary"): .CompareMode = vbTextCompare
         For Each elem In Range("a2:a" & lr)
             If IsDate(elem) Then If Month(elem) < Month(Now) - 1 Then .Item(elem) = .Item(elem) + 1
         Next elem
         arrDate = .keys()
         ActiveSheet.Range("$A$1:$X$100").AutoFilter Field:=1, Operator:= _
         xlFilterValues, Criteria1:=arrDate
     End With
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 24.07.2015 в 15:09
iilfat Дата: Пятница, 24.07.2015, 15:12 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
удалил


Сообщение отредактировал iilfat - Пятница, 24.07.2015, 15:12
 
Ответить
Сообщениеудалил

Автор - iilfat
Дата добавления - 24.07.2015 в 15:12
krosav4ig Дата: Пятница, 24.07.2015, 15:17 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
ActiveSheet.Range("$A$1:$U$3473").AutoFilter 18, "<=" & Application.EoMonth(Date, -2)
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение[vba]
Код
ActiveSheet.Range("$A$1:$U$3473").AutoFilter 18, "<=" & Application.EoMonth(Date, -2)
[/vba]

Автор - krosav4ig
Дата добавления - 24.07.2015 в 15:17
iilfat Дата: Пятница, 24.07.2015, 15:20 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
Manyasha, я не силён в VBA, поэтому, к сожалению, с вашим кодом не разобрался(

krosav4ig, я сейчас просто ну очень порадовался. Большое спасибо :)


Сообщение отредактировал iilfat - Пятница, 24.07.2015, 15:21
 
Ответить
СообщениеManyasha, я не силён в VBA, поэтому, к сожалению, с вашим кодом не разобрался(

krosav4ig, я сейчас просто ну очень порадовался. Большое спасибо :)

Автор - iilfat
Дата добавления - 24.07.2015 в 15:20
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Фильтр по дате: выбрать все даты ДО прошлого месяца (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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