Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 06:15

При создании обработки на выгрузку данных в Эксель не удается сделать фильтр по дате.

Автор Я_Сергей, 10 авг 2022, 12:07

0 Пользователей и 1 гость просматривают эту тему.

antoneus

Ну а разбивать инфу на порции в 1С и из 1С добавлять листы в файл excel через com, на каждый лист заливать соответствующую порцию инфы?

Я_Сергей


antoneus

Ну это уж я не знаю как там у вас задача поставлена. Если каждый день надо на отдельный лист - то да, почему нет.

Я_Сергей


LexaK

Я_Сергей, а какой у вас ексель?
мой (2016) создает такой макрос для отбора за период С... ПО... (по первой колонке листа Екселя)
    ActiveSheet.Range("A1").AutoFilter Field:=1, Criteria1:=">=1/3/2022", Operator:=xlAnd, Criteria2:="<=2/5/2022"
попробуйте такую конструкцию из 1С в ексель передать
(только даты свои подставьте, именно в таком виде: месяц/день/год    без лидирующих нулей)
((ну уж очень давно с вордом и екселем из 1С не работал))
если помогло нажмите: Спасибо!

LexaK

Я_Сергей, ну что, получилось установить фильтр по Дате?

у меня получилось, только что-то с сохранением, все время норовит новую копию создать...

пробовал
лкЛист.Range("A1").AutoFilter(1,">=1/3/2022",1,"<=2/5/2022");
было установлено что 1С честно превращает этот текст "1/3/2022" именно в дату но 01.03.2022 (переворачивает)
что не подходит для формата Автофильтра, но... на полях интернета был найден "ход конем"
колонка с форматом Дата, понимает отбор по числу!!!
Просто ставите фильтр по нужному интервалу чисел, и вуаля!!! настройка автофильтра из 1С работает!!!

вот рабочая команда
лкЛист.Range("A1").AutoFilter(1,">=44564",1,"<=44574");

где 03.01.2022 = 44564 и т.д. (посмотрел в екселе, при смене формата с Дата на Число)
 





если помогло нажмите: Спасибо!

Я_Сергей

LexaK, Я так понимаю, из 1С в Эксель параметр Criteria2 никак не передать.Если я не прав, и вы смогли это сделать, очень прошу выложить код сюда, Т.к. галочки в фильтре Эксель наше всё!
А, если я прав, то это печально, т.к. именно этот параметр отвечает за фильтрацию данных в формате дата.
Но, огромная благодарность за предложенный вариант с числами вместо дат. Он работает на 99,9%. 0,1% на отсутствие галочек оставляю. B)

LexaK

Я_Сергей, только что выше был ответ! там все подробно записано
(просто надо читать ответы, смысл в форуме если вы не читаете ответы?)

автофильтр в екселе по колонке с форматом Дата МОЖНО установить из 1С!!!
если помогло нажмите: Спасибо!

LexaK

для особо одаренных, пояснение
просто дату надо задавать не так
">=1/3/2022"
а вот так
">=44564"

просто немного другой формат Даты!!! (ну что здесь не понятного?  :dfbbdrfb:  )
если помогло нажмите: Спасибо!

Я_Сергей

LexaK, Я вас уже отблагодарил за совет использования числовой интерпретации даты Эксель.
Цитироватьвот рабочая команда
лкЛист.Range("A1").AutoFilter(1,">=44564",1,"<=44574");
Это я уже реализовал. И очень этому рад и вам благодарен(и не скрываю этого)
Я же пишу, про то, что в Эксель в фильтре нельзя настроить фильтр по дате с массивом разных(непересекающихся) дат.

Похожие темы (5)

Рейтинг@Mail.ru

Поиск