Автоматическое формирование отчета по расписанию и сохранение его в эксель
Наверняка многие пользователи сталкивались с неприятной ситуацией, когда из-за зависшего компьютера, перебоя в электросети или других непредвиденных обстоятельств документ, на который было потрачено много сил и времени не сохранился. Как раз для таких случаев разработчики Excel специально предусмотрели автосохранение книги, которая поможет уберечь наши ценные труды. Давайте посмотрим, как работает эта функция, и как ее можно настроить.
Настройка автосохранения
В программе Excel по умолчанию документы сохраняются каждые 10 минут, однако мы можем скорректировать этот параметр на свое усмотрение.
Открытие настроек
Чтобы получить доступ к параметрам автосохранения, выполняем следующие шаги:
Настройка параметров
Время
Самая важная настройка – это “Автосохранение через каждые”. Здесь мы указываем количество времени, по истечении которого будет выполняться очередное автоматическое сохранение файла. Чаще всего, пользователи ставят не более 5 минут, так как за более продолжительный временной промежуток можно успеть внести достаточно много изменений в документ, которые в случае чего придется повторить заново. Допускается установка целых минут (от 1 до 120), а нужное значение мы можем ввести в специальном поле или “дойти” до него с помощью стрелок вверх/вниз рядом.
Формат
По умолчанию автосохранение выполняется в стандартном формате Эксель (“xlsx”). Но при желании и необходимости мы можем выбрать другое расширение.
Место хранения
Для назначения каталога, в котором будут храниться автосохраненные файлы, просто копируем полный путь к нужной папке (например, в Проводнике) и вставляем его в поле рядом с параметром “Каталог данных для автовосстановления”. Также мы можем прописать адрес вручную.
Параметр выше не стоит путать с “Расположением локальных файлов по умолчанию”. В указанной здесь папке программа будет предлагать сохранять файлы, когда мы сами решаем это сделать вручную.
Остальные параметры
Настройки других параметров редко нуждаются в пересмотре, и при прочих равных условиях лучше оставить их в первоначальном виде.
Отключение автосохранения
Если необходимости в выполнении автосохранения нет, функцию можно выключить. Делается это путем снятия галочки напротив соответствующего пункта.
Также у нас есть возможность оставить основную галочку, а отключить только автосохранение при закрытии документа.
Заключение
Итак, мы только что разобрали, как настроить основные параметры автосохранения в программе Excel, чтобы не потерять ценные данные, если вдруг по какой-то причине сохранение книги вручную не было выполнено. Крайне удобная и незаменимая функция, которая не раз выручит пользователей, постоянно работающих в программе.
Весьма частый случай на практике: вам нужно запускать один или несколько ваших макросов в заданное время или с определенной периодичностью. Например, у вас есть большой и тяжелый отчет, который обновляется полчаса и вы хотели бы запускать обновление за полчаса до вашего прихода на работу утром. Или у вас есть макрос, который должен делать автоматическую рассылку сотрудникам с заданной периодичностью. Или, работая со сводной таблицей, вы хотите, чтобы она обновлялась "на лету" каждые 10 секунд и т.д.
Давайте разберемся с тем, какие в Excel и Windows есть возможности для реализации подобного.
Запуск макроса с заданной частотой
Для этого проще всего использовать встроенный в VBA метод Application.OnTime, который запускает заданный макрос в указанный момент времени. Давайте разберемся с этим на практическом примере.
Откройте редактор Visual Basic одноименной кнопкой на вкладке Разработчик (Developer) или сочетанием клавиш Alt + F11 , вставьте новый модуль через меню Insert - Module и скопируйте туда следующий код:
Давайте разберемся что здесь что.
Для начала, нам нужна переменная, где будет храниться время следующего запуска нашего макроса - я назвал её TimeToRun. Обратите внимание, что содержимое этой переменной должно быть доступно всем нашим последующим макросам, поэтому её надо сделать глобальной, т.е. объявить в самом начале модуля до первого Sub.
Дальше идет наш главный макрос MyMacro, который будет выполнять основную задачу - пересчитывать книгу с помощью метода Application.Calculate. Чтобы было нагляднее, я добавил на лист в ячейку А1 формулу =ТДАТА(), которая выводит дату и время - при пересчете её содержимое будет обновляться прямо у нас на глазах (только включите отображение секунд в формате ячейки). Для дополнительного веселья я добавил в макрос еще и команду заливки ячейки А1 случайно выбранным цветом (код цвета - это целое числов в диапазоне 0..56, которое генерит функция Rnd и округляет до целого числа функция Int).
Макрос NextRun добавляет к предыдущему значению TimeToRun еще 3 секунды и затем назначает следующий запуск главного макроса MyMacro на это новое время. Само-собой, на практике можно использовать любые другие нужные вам временные интервалы, задавая аргументы функции TimeValue в формате "чч:мм:сс".
Ну и, наконец, просто для удобства добавлены еще макросы запуска последовательности Start и её завершения Finish. В последнем из них для прерывания последовательности используется четвёртый аргумент метода OnTime равный False.
Итого, если запустить макрос Start, то вся эта карусель завертится, и мы увидим на листе вот такую картину:
Остановить последовательность можно, запустив, соответственно макрос Finish. Для удобства можно обоим макросам назначить сочетания клавиш, используя команду Макросы - Параметры на вкладке Разработчик (Developer - Macros - Options) .
Запуск макроса по расписанию
Само-собой, всё описанное выше возможно только в том случае, если у вас запущен Microsoft Excel и в нём открыт наш файл. Теперь давайте рассмотрим более сложный случай: нужно по заданному расписанию, например, каждый день в 5:00 запускать Excel, открывать в нем большой и сложный отчет и обновлять в нем все связи и запросы, чтобы к нашему приходу на работу он был уже готов :)
В такой ситуации лучше воспользоваться Планировщиком Windows - специально встроенной в любую версию Windows программой, которая умеет по расписанию выполнять заданные действия. По факту, вы уже используете его, сами того не зная, ведь ваш ПК регулярно проверяет обновления, качает новые антивирусные базы, синхронизирует облачные папки и т.д. - это всё работа Планировщика. Так что наша задача сводится к тому, чтобы добавить к уже имеющимся задачам ещё одну, которая будет запускать Excel и открывать в нём заданный файл. А мы с вами повесим наш макрос на событие Workbook_Open этого файла - и задача решена.
Хочу сразу предупредить, что для работы с Планировщиком, возможно, потребуются расширенные пользовательские права, поэтому, если вы не можете найти описанных ниже команд и функций у себя на рабочем компьютере в офисе - обратитесь за помощью к вашим IT-специалистам.
Запускаем Планировщик
Итак, давайте запустим Планировщик. Для этого можно либо:
- Щелкнуть правой кнопкой мыши по кнопке Пуск и выбрать Управление компьютером (Computer management)
- Выбрать в Панели управления: Администрирование - Планировщик заданий (Control Panel - Administrative Tools - Task Scheduler )
- Выбрать в главном меню Пуск - Стандартные - Служебные - Планировщик заданий
- Нажать сочетание клавиш Win + R , ввести taskschd.msc и нажать Enter
На экране должно появиться примерно такое окно (у меня англоязычная версия, но у вас может быть и русскоязычная):
Создаем задачу
Чтобы создать новую задачу с помощью простого пошагового мастера нажмем на ссылку Создать простую задачу (Create Basic Task) в правой панели.
На первом шаге мастера нужно ввести название и описание создаваемой задачи:
Жмем на кнопку Далее (Next) и на следующем шаге выбираем триггер - частоту запуска или событие, которое будет запускать нашу задачу (например, включение компьютера):
Если вы выбрали Ежедневно (Daily) , то на следующем шаге нужно будет выбрать конкретное время, дату начала последовательности и шаг (каждый 2-й день, 5-й день и т.д.):
Следующий шаг - выбираем действие - Запуск программы (Start a program) :
И, наконец, самое интересное - что именно нужно открывать:
-
Щелкнуть правой кнопкой мыши по иконке (ярлычку) запуска Excel на рабочем столе или в панели задач и выбрать команду Свойства (Properties) , а затем в открывшемся окне скопировать путь из строки Target:
Когда всё ввели, то жмем Далее и затем Готово (Finish) . Задача должна добавиться в общий список:
Управление созданной задачей удобно осуществлять с помощью кнопок справа. Здесь можно протестировать задачу, запустив её немедленно (Run), не дожидаясь наступления заданного срока. Можно временно деактивировать задачу (Disable), чтобы она перестала выполняться на время, например, вашего отпуска. Ну, и изменить параметры (даты, время, имя файла) тоже всегда можно через кнопку Свойства (Properties) .
Добавляем макрос на открытие файла
Теперь осталось повесить в нашей книге запуск нужного нам макроса на событие открытия файла. Для этого откроем книгу и перейдем в редактор Visual Basic с помощью сочетания клавиш Alt + F11 или кнопки Visual Basic на вкладке Разработчик (Developer) . В открывшемся окне в левом верхнем углу нужно найти наш файл на дереве и двойным щелчком мыши открыть модуль ЭтаКнига (ThisWorkbook) .
Если у вас в редакторе Visual Basic не видно этого окна, то его можно открыть через меню View - Project Explorer.
В открывшемся окне модуля добавим обработчик события открытия книги, выбрав его из выпадающих списков в верхней части Workbook и Open, соответственно:
На экране должна появиться заготовка процедуры Workbook_Open, куда между строчками Private Sub и End Sub и нужно вставить те команды на VBA, которые должны автоматически выполняться при открытии этой книги Excel, когда её по расписанию откроет Планировщик. Вот несколько полезных вариантов для разгона:
-
ThisWorkbook.RefreshAll - обновление всех внешних запросов к данным, запросов Power Query и сводных таблиц. Самый универсальный вариант. Только не забудьте разрешить по умолчанию подключения к внешним данным и обновление связей через Файл - Параметры - Центр управления безопасностью - Параметры центра управления безопасностью - Внешнее содержимое, иначе при открытии книги появится стандартное предупреждение и Excel, ничего не обновляя, будет ждать от вас благословления в виде нажатия на кнопку Включить содержимое (Enable content) :
Если вы хотите, чтобы макрос выполнялся только при открытии файла Планировщиком в 5:00, а не каждый раз при открытии книги пользователем в течение рабочего дня, то имеет смысл добавить проверку на время, например:
Вот и всё. Не забудьте сохранить книгу в формате с поддержкой макросов (xlsm или xlsb) и можно смело закрывать Excel и отправляться домой, оставив компьютер включенным. В заданный момент (даже если ПК заблокирован) Планировщик запустит Excel и откроет в нём заданный файл, а наш макрос выполнит запрограммированные действия. А вы будете нежиться в постели, пока ваш тяжелый отчёт автоматически пересчитывается - красота! :)
В холдинге имеются файловые базы 1С на каждую отдельную компанию. Сейчас сбор отчетности производится следующим образом:
1) специалист фин отдела заходит в каждую базу и собирает необходимую информацию о движении денежных средств, карточку 20,25,26 счетов
2) копирует информацию в Excel
3) обрабатывает вручную в едином шаблоне в Excel, чтобы видеть консолидированную информацию по группе компаний.
Как хочется делать: нажимать кнопку в Excel и получать данные из 1С автоматически.
Базы 1С не на SQL, а с обычным файловым доступом.
1С: Консолидацию не пробовали, но она требует очень долгой настройки, потому что виды бизнеса разные и разные учетные политики у организаций.
По кнопке "Выгрузить в Excel" создаете ТабличныйДокумент и заполняете нужными данными. Потом вызываете у него метод Записать и указываете в параметрах путь для сохранения и формат в котором нужно сохранить.
За адекватную цену сделаю для вас эту задачу.
Поскольку баз много, лучше без кнопок.
Банальная обработка которая будет запускаться из батника поочередно в каждой базе выгружая информацию в нужные поля листа Excel.
АртемЪ: а как быть с тем, что базы могут быть закрыты? Точнее они итак закрыты. Хочется открыть файл Excel, нажать кнопку "Получить данные" и обработка сама вытащит из баз все данные. Как я понимаю, базы все равно нужно открывать.
Из батника вызываете 1cv8.exe указав в качестве параметров режим Enterprise и имя обработки.
Она откроется в фоновом режиме, выполнит обработку и закроется.
Очень неприятно, когда вследствие перебоя с электропитанием, зависания компьютера или другого сбоя, данные, которые вы набрали в таблицу, но не успели сохранить, утрачены. К тому же, постоянно вручную сберегать результаты своей работы – это означает отвлекаться от основного занятия и терять дополнительное время. К счастью, в программе Эксель имеется такой удобный инструмент, как автосохранение. Давайте разберемся, как им пользоваться.
Работа с настройками автосохранения
Для того, чтобы максимально обезопасить лично себя от потери данных в Экселе, рекомендуется выставить свои пользовательские настройки автосохранения, которые были бы ориентированы именно под ваши потребности и возможности системы.
Переход в настройки
Давайте выясним, как попасть в настройки автосохранения.
-
Открываем вкладку «Файл». Далее перемещаемся в подраздел «Параметры».
Изменение временных настроек
По умолчанию, автосохранение включено и производится каждые 10 минут. Не всех удовлетворяет такой период времени. Ведь за 10 минут можно набрать довольно большое количество данных и очень нежелательно терять их вместе с силами и временем, потраченными на заполнение таблицы. Поэтому многие пользователи предпочитают установить режим сохранения в 5 минут, а то и в 1 минуту.
Именно 1 минута – самый короткий срок, который можно установить. В то же время, не следует забывать, что в процессе сохранения расходуются ресурсы системы, и на слабых компьютерах слишком короткий срок установки может привести к значительным торможениям в скорости работы. Поэтому юзеры, которые имеют довольно старые аппараты, впадают в другую крайность – вообще отключают автосохранение. Конечно, это не желательно делать, но, тем не менее, мы чуть дальше тоже поговорим, как отключить данную функцию. На большинстве современных компьютерах, даже если вы установите период в 1 минуту – это не будет заметно сказываться на работоспособности системы.
Итак, чтобы изменить термин в поле «Автосохранение каждые» вписываем нужное число минут. Оно должно быть целым и находиться в диапазоне от 1 до 120.
Изменение других настроек
Кроме того, в разделе настроек можно изменить ещё ряд других параметров, хотя без лишней надобности их не советуют трогать. Прежде всего, можно определить в каком формате файлы будут сберегаться по умолчанию. Это делается путем выбора соответствующего наименования формата в поле параметра «Сохранять файлы в следующем формате». По умолчанию это Книга Excel (xlsx), но имеется возможность смены этого расширения на следующие:
- Книга Excel 1993 – 2003 (xlsx);
- Книга Excel с поддержкой макросов;
- Шаблон Excel;
- Веб-страница (html);
- Простой текст (txt);
- CSV и многие другие.
В поле «Каталог данных для автовосстановления» прописывается путь, где хранятся автосохраненные копии файлов. При желании этот путь можно изменить вручную.
В поле «Расположение файлов по умолчанию» указывается путь к директории, в которой программа предлагает хранить оригинальные файлы. Именно эта папка открывается, когда вы жмете на кнопку «Сохранить».
Отключение функции
Как уже было сказано выше, автоматическое сохранение копий фалов Excel можно отключить. Для этого достаточно снять галочку с пункта «Автосохранение каждые» и нажать на кнопку «OK».
Отдельно можно отключить сохранение последней автосохраненной версии при закрытии без сохранения. Для этого нужно снять галочку с соответствующего пункта настроек.
Как видим, в целом настройки автосохранения в программе Excel довольно просты, а действия с ними интуитивно понятны. Пользователь сам может с учетом своих потребностей и возможностей аппаратной части компьютера выставить периодичность автоматического сохранения файлов.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Читайте также: