Страницы: 1
RSS
VBA - Макрос фильтра по датам
 
Доброго времени суток!
Прошу помочь мне с макросом. Суть проблемы в следующем.

Есть разные даты (в столбце G), по разным критериям нужно будет делать сводные таблицы. Конкретно данный макрос должен фильтровать даты, т.е. в ячейка J3 и K3 пользователь выбирает нужные даты, макрос оставляет в таблицы значения с этим датами (далее по оставшимся данным строится pivot, но сейчас не об этом). Я попытался написать код, но проблема возникает при фильтровке - выдает ошибку, уже битый час не могу разобраться в чем дело.
Сам код и файл прикрепляю. Помогите, пожалуйста, кто может. Спасибо!

PS. Также может кто посоветует, как лучше реализовать выпадающийся список имеющихся дат в ячейках U3 и V3? В данном файле я его составлял вручную с помощью фильтра. Хотелось бы, чтобы он автоматически обновлялся при появлении новых дат, например, марта 2014 года.
Код
Sub дата()
Application.ScreenUpdating = False

If Range("J3").Value = 0 Or Range("K3").Value = 0 Then
 MsgBox "Выберите дату", vbCritical, "Предупреждение"
 Exit Sub
End If

With Sheets("TR_REPORT")
 .Select
 .Copy After:=Sheets(Sheets.Count)
End With

c1 = ">=" & Range("J3").Value2
c2 = "<=" & Range("K3").Value2

Range("G:G").AutoFilter Criteria1:=c1, Operator:=xlAnd, Criteria2:=c2
Application.ScreenUpdating = True
End Sub
Изменено: spawnloko - 20.03.2014 22:39:02
 
почему-то не прикрепляется файл( "возникла ошибка при загрузке файла"
 
Цитата
spawnloko пишет:
почему-то не прикрепляется файл
Загляните в Правила.
 
Цитата
чтобы он автоматически обновлялся при появлении новых дат
Почитайте здесь. В автофильтре должен указываться номер столбушка по которому надо фильтровать, у Вас в коде его нет. А лучше файл выложите будет понятней. Если объем у файла не большой выложите его в новом сообщении, при изменении сообщения у меня тоже бывало файл не грузился, компутер писал что его не находит и выдавал ошибку.
Изменено: gling - 20.03.2014 00:11:42
 
прикрепляю файл, спасибо!
 
И коды следует оформлять тегом.
 
c1 = ">=" & CDbl(Range("U3"))
C2 = "<=" & CDbl(Range("V3"))
 
спасибо!
только выдает ошибку "type mismatch"
 
Здравствуйте.
1. На листе "TR_REPORT" в ячейках "U3" и "V3" дат нет.
Цитата
spawnloko пишет:
в ячейках U3 и V3 пользователь выбирает нужные даты, макрос оставляет в таблицы значения с этой датой
2. Или макрос должен оставлять в таблицЕ значения в интервале указанных дат?
Цитата
spawnloko пишет:
Range("R:R").AutoFilter
3. В столбе "R" нет данных.
 
Цитата
k61 пишет:
На листе "TR_REPORT" в ячейках "U3" и "V3" дат нет.
приношу извинения, удалил часть столбцов, чтобы файл смог загрузиться,  и забыл внести правку в ячейки

данные должны быть в ячейках J3 и K3 в данном файле. фильтр по столбцу G
 
На другом форуме мне ответили, что проблема в том,  что "данные и критерии не являются переменными типа "дата", а являются текстом, и соответственно сравниваются по критериям простого текста, по коду символов, а не как даты".

Подскажите, пожалуйста, как это можно исправить. Как изменить данные в таблице, чтобы можно было сравнивать их как даты?
 
Файл покажите в формате Excel 2003
 
прикрепляю
 
Сделал сортировку по столбцуС,
по этому же столбцу и фильтр,
Начальная дата в I1 должна быть
раньше  конечной даты в K1
 
Kuzmich,

Спасибо большое!
А я что-то и не догадывался попытаться сделать это по другому столбцу.

Спасибо еще раз  :)
 
Посмотрите файл может под свои нужды переделаете.
 
Цитата
gling пишет:
Посмотрите файл может под свои нужды переделаете.
Спасибо большое!
Страницы: 1
Наверх