Формирование резюме сотрудника

Формирование резюме сотрудника VBA ExcelФормирование резюме сотрудника в VBA Excel.

В статье мы создали базу для внесения и хранения данных о сотрудниках.

В этой поговорим о том, как сформировать резюме по какому-либо одному сотруднику из этой базы.

Формирование резюме сотрудника было бы чрезвычайно простым делом, если бы не пара нюансов, связанных с выводом данных об образовании и прежних местах работы.

Как вы понимаете, записей по этим двум параметрам может быть несколько, а, значит, мы не можем изначально определить количество строк в резюме под образование и прежние места работы.

Но, обо-всем по порядку.

Создание шаблона резюме

Для начала создадим шаблон резюме, в который и будет переносится информация о сотруднике. Как вы, вероятно, помните, в Excel есть хорошая возможность создать шаблон книги, который будет предлагать сохранять создаваемые из него файлы под новым именем (Об этом, например, можно почитать ). Макросы нам в этом шаблоне ни к чему, поэтому создаем файл с расширением обычного шаблона (xltx). Предусматриваем в нем те необходимые поля, которые мы закладывали в таблице учета персонала. У меня получилась такая форма:

Ячейкам, в которых предусмотрены одиночные данные, я присвоил имена. Это позволит вставлять значения не привязываясь к адресу ячейки, что, в свою очередь, позволяет нам изменять шаблон резюме без необходимости менять код макроса.

В блоках для информации об образовании и прежних местах работы, дадим имена не пустым ячейкам, а заголовкам. От них будем отталкиваться при вставке данных.

В резюме предусмотрим два вычисляемых поля – расчет возраста и расчет стажа работы в компании. В первом случае рассчитаем просто количество полных лет, используя функцию РАЗНДАТ. Формула будет выглядеть так: = РАЗНДАТ(ДР;СЕГОДНЯ();»Y»).

Второй вариант расчета несколько усложним. Нам понадобиться вычислить не только количество лет, но и количество месяцев. Формула здесь будет выглядеть следующим образом: =РАЗНДАТ(ДПрием;СЕГОДНЯ();»y»)&» лет «&РАЗНДАТ(ДПрием;СЕГОДНЯ();»ym»)&» мес.»

Разработка алгоритма

Итак, заложим следующую логику переноса данных:

  1. В таблице учета персонала добавим колонку, каждая ячейка которой будет запускать макрос переноса данных о сотруднике, к строке которого относится эта ячейка.
  2. При клике на ячейке должен открыться шаблон резюме с предложением сохранить резюме под новым именем.
  3. Одиночные данные будут переносится в файл резюме прямым переносом – каждой поименованной ячейке резюме должно быть присвоено соответствующее значение из таблицы.
  4. Данные об образовании и прежних местах работы будут переноситься на основании кода, которому соответствует порядковый номер строки сотрудника (как вы помните, этот код присваивался в строках таблиц об образовании и стаже. Таким образом мы обеспечивали связь между разными таблицами). Для переноса данных будем использовать цикл по счетчику, где конечное значение счетчика будет равно количеству строк в основной таблице (или, другими словами, количеству сотрудников).

Начнем программирование.

Разработка кода

Первым делом создадим переменные для наименований файлов. Они нам пригодятся, когда нужно будет активировать тот или иной файл. Для файла резюме я назвал переменную fil, а для файла со списком сотрудников — bas

Затем нам понадобятся переменная для хранения кода (порядкового номера) сотрудника, и номера строки, в которой расположены данные о сотруднике в основной таблице. Я их назвал kod и Arow.

Для хранения информации о количестве строк в таблицах с данными об образовании и стаже внесем переменные x и y.

И, наконец, нам понадобиться два счетчика. Дадим им имена i и ii.

Первый блок кода посвящен присвоению значений переменным и созданию файла резюме:

Ссылка на шаблон предусматривает, что он расположен в параллельной папке под названием «Первичка». То есть, файл со списком сотрудников размещается в папке «Базы», а в параллельной ей папке «Первичка» размещаются шаблон заявки на подбор сотрудника, о котором я писал ранее, и шаблон резюме сотрудника. Вне зависимости от того, где будут размещаться эти папки, относительные ссылки позволят не менять код при перемещении их в другое место. Главное не менять их размещение относительно друг друга.

Затем идет копирование одиночных данных. Здесь все просто – поименованным ячейкам файла резюме присваиваем соответствующие значения из списка сотрудников. Обратите внимание, используем два вида обозначения ячеек – Cells и Range. Мы еще поговорим на эту тему в одной из следующих статей.

И, наконец, два блока копирования данных об образовании и стаже.

Первым делом присвоим переменным значения количества строк в таблицах Образование и Стаж, соответственно, и количество строк, соответствующих сотруднику, чье резюме формируется:

Затем необходимо добавить соответствующее количество строк. Это сделаем с помощью цикла:

Вставку значений тоже осуществляем с помощью цикла. Причем, обратите внимание, внутри цикла мы используем еще один счетчик (ii), который будет определять номер строки для вставки значений:

Последним штрихом осуществим форматирование – объединим необходимые ячейки и нарисуем их границы:

Код по копированию данных о местах работы незначительно отличается от предыдущего:

Теперь нам необходимо обеспечить запуск макроса по нажатию на соответствующей ячейке. Добавим колонку в таблице со списком сотрудников, и назовем ее «Формирование резюме«. Войдем в редактор VBA и внесем макрос в код листа «База«:

Тем самым мы настроили запуск макроса «Создание_резюме» по клику в ячейке колонки «Формирование резюме«.

На этом макрос формирования резюме сотрудника можно завершить. Вот  с данными о сотрудниках с указанным кодом, а  файл шаблона резюме сотрудника.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *