Если вы работаете в отделе кадров, скорее всего, вам часто приходится выполнять множество задач одновременно. Ваши обязанности могут быть очень разнообразными и включать в себя не только поиск и привлечение лучших талантов, но и развитие мотивации сотрудников и управление тренингами и обучением.
Для тех, кто выполняет так много задач одновременно, очень важно построить систему, которая бы позволяла оставаться организованными и не упускать из виду ни одной детали. Для этого можно использовать шаблоны Excel. Но как найти и выбрать самые лучшие шаблоны Excel, которые соответствовали бы вашим целям? Мы просмотрели и изучили ключевые шаблоны Excel для отдела кадров и предлагаем вам небольшое описание каждого из шаблонов, а также ссылку для скачивания.
Мы также расскажем, как использовать шаблоны для отдела кадров в Smartsheet, инструменте для совместной работы на основе электронных таблиц, с помощью которого можно, сотрудничая с коллегами, ещё больше, чем в Excel, упростить процессы управления персоналом.
Средство отбора кандидатов на вакантную должность
Специалисты по управлению персоналом должны отслеживать и держать под контролем многочисленные получаемые резюме, сопроводительные письма, заявления и сведения о лицах, претендующих на открытые вакансии. В зависимости от размера компании и текущего плана привлечения новых сотрудников, это может означать огромный объём работы. Использование средства отбора кандидатов на вакантную должность поможет вам держать ключевые сведения о кандидатах и документацию в порядке, а также обеспечить положительный опыт для кандидатов и других сотрудников, участвующих в процессе найма. С помощью этого шаблона вы можете отслеживать контактные данные кандидатов, указывать заданные им вопросы и полученные ответы телефонных интервью, добавлять текущий статус найма, комментарии, дальнейшие шаги и многое другое.
Загрузить шаблон средства отбора кандидатов на вакантную должность в Excel
Создать средство отбора кандидатов на вакантную должность в Smartsheet
Keep your employees connected, informed, and engaged with Smartsheet
Smartsheet is a cloud-based platform that enables HR teams to easily manage everything from job applicant tracking to new hire onboarding and employee performance reviews. Watch this demo video to see why HR teams around the world rely on Smartsheet.
Start your free 30-day trial today
Учёт посещаемости сотрудников
Большинство компаний имеют свою собственную политику относительно графиков работы сотрудников. Например, компания может предоставлять оплачиваемые отпуска или больничные дни. В любом случае важно отслеживать график посещаемости сотрудников, так как информация о посещаемости может быть полезной при оценке эффективности работы во время проведения ежегодных оценок эффективности сотрудников. Используйте этот простой шаблон учёта посещаемости сотрудников, чтобы документировать, работал ли сотрудник или брал отпуск, отсутствовал по личным причинам или болел. Можно также добавлять вкладки для каждого месяца года и таким образом вести постоянный учёт посещаемости сотрудников.
Загрузить шаблон учёта посещаемости сотрудников в Excel
Создать шаблон учёта посещаемости сотрудников в Smartsheet
Анализ целей и эффективности работы сотрудников
Иметь хорошо продуманный процесс рассмотрения и оценки работы ваших сотрудников важно, чтобы гарантировать отличный уровень работы вашей компании. Сотрудники должны знать, что они правильно и эффективно выполняют свои обязанности, а также, что именно они могут улучшить в своей работы. Такую оценку полезно проводить каждый год, а лучше – два раза в год. Использование шаблона анализа целей и эффективности работы персонала поможет управлять процессом такой оценки. Используйте этот шаблон для документирования результатов работы сотрудника, анализа достижения поставленных целей, оценки сотрудников менеджерами, а также для создания планов профессионального развития на будущий год.
Загрузить шаблон анализа целей и эффективности работы сотрудников в Excel
Создать шаблон анализа целей и эффективности работы сотрудников в Smartsheet
Рабочее расписание сотрудника
Существует множество программных средств для планирования рабочего графика сотрудников, но иногда приятно иметь расписание работы сотрудника в виде простого графика. Отслеживание рабочих расписаний сотрудников гарантирует, что у вас всегда будет нужное соотношение работы и работников для каждого конкретного дня или для целой недели. Вы можете использовать этот шаблон для составления списка расписаний сотрудника в едином месте с удобным доступом, чтобы обеспечивать быстрый визуальный охват и вносить коррективы по мере необходимости.
Загрузить шаблон рабочего расписания сотрудников в Excel
Создать ваше рабочее расписание сотрудника в Smartsheet
Учёт рабочего времени сотрудника
Прошли те дни, когда сотрудники вручную вносили время начала и окончания своей работы. Вот почему наличие у вас системы учёта рабочего времени сотрудника полезно для отслеживания количества отработанных ими часов в течение недели, двух недель или целого месяца. Вы можете ссылаться на имеющиеся у вас данные учёта рабочего времени при начислении заработной платы. Кроме того, вы можете попросить сотрудников вести ежедневный журнал отработанного времени, что может быть полезным для отслеживания их повседневной деятельности. Этот шаблон учёта рабочего времени сотрудника позволит вам создать и использовать один файл для каждого из ваших сотрудников и отслеживать время, отработанное этим сотрудником в течение недели, двух недель или целого месяца. Более того, встроенные формулы позволяют быстро рассчитать общее количество часов, что упрощает процесс начисления заработной платы сотрудников.
Загрузить шаблон учёта рабочего времени сотрудника в Excel
Создать шаблон учёта рабочего времени сотрудника в Smartsheet
План адаптации нового сотрудника
Количество часов, затрачиваемых на обучение новых сотрудников, тесно связано с тем, насколько успешным будет работа нового сотрудника в вашей компании. Хотя время и усилия, необходимые для обучения, могут варьироваться в зависимости от типа и размера компании, иметь план обучения нового персонала в целях обеспечения быстрого и эффективного периода адаптации, — всегда хорошая идея. С помощью шаблона расписания обучения сотрудников вы можете создавать списки учебных мероприятий, добавлять сведения о том, с кем сотрудник должен работать для выполнения каждой задачи, указывать статус каждой задачи и добавлять комментарии, полученные от нового сотрудника и его менеджера.
Загрузить шаблон плана адаптации нового сотрудника в Excel
Создать план адаптации нового сотрудника в Smartsheet
Рабочее расписание по месяцам
Отслеживание важных дат, таких как праздники, запланированные закрытия офиса, сроки выплаты заработной платы и других выплат, позволит вам оставаться максимально организованными. Кроме того, создав рабочее расписание по месяцам в начале года, вы будете иметь полноценное представление о том, что ожидать в течение года и сможете распланировать свои действия. В этом простом шаблоне рабочего расписания вы можете настроить отдельные вкладки для каждого месяца, указывать важные события в календаре, а также добавлять заметки, предоставляющие подробные сведения о каждом событии.
Загрузить шаблон рабочего расписания по месяцам на 2016 год в Excel
Создать шаблон рабочего расписания по месяцам на 2016 год в Smartsheet
Список документов для приёма на работу
После того, как кандидат принимает предложение на работу, начинается процесс его адаптации. Количество необходимой документации, необходимой для окончательного приёма нового сотрудника в компанию может быть просто огромным. Именно поэтому использование списка документов для приёма на работу поможет убедиться, что все действия были предприняты вовремя. Применяйте этот шаблон для создания списка документов, необходимых для отслеживания процесса сбора и систематизации всех данных. Шаблон также поможет держать менеджеров по найму в курсе происходящего.
Загрузить список документов для приёма на работу в Excel
Создать список документов для приёма на работу в Smartsheet
Расчётная ведомость
Предоставление сотрудникам расчётной ведомости, в электронном виде или бумажной, даёт неоспоримые преимущества как для работника, так и для работодателя. Работнику расчётная ведомость помогает отслеживать размер компенсаций и вычетов, в то время как для работодателя расчётная ведомость важна, так как выступает доказательством правильного начисления заработной платы. Используйте этот шаблон, чтобы ускорить процесс выдачи расчётных ведомостей сотрудникам и сделать учёт выплат более аккуратным. Так как шаблон содержит встроенные формулы, вам достаточно только ввести данные о ставке работника и его вычетах, после чего общая сумма к оплате будет рассчитана автоматически.
Загрузить шаблон расчётной ведомости в Excel
Создать шаблон расчётной ведомости в Smartsheet
Справка о заработной плате
В зависимости от того, сколько сотрудников работает в вашей компании, оформление справок о заработной плате может быть очень трудной задачей. С помощью этого простого в использовании шаблона вы сможете быстро и без труда добавлять данные сотрудника, включая данные о его зарплате, сверхурочных часах, положенных ему льготах и т.д., для каждого периода начисления заработной платы. Кроме того, создавая вкладки для каждого периода начисления заработной платы, вы сможете сохранить обновляющуюся историю выплаты заработной платы на месяц, квартал и год.
Скачать шаблон справки о заработной плате в Excel
Создать шаблон справки о заработной плате в Smartsheet
План привлечения новых сотрудников
Привлечение новых сотрудников является одной из главных обязанностей любого отдела кадров. Поиск, проверка и найм профессионала, подходящего для вашей команды, – крайне важные действия для обеспечения успешной работы всей вашей организации. Именно поэтому наличие проработанного плана привлечения новых сотрудников даст вашему отделу кадров необходимые знания о доступных источниках, целях и типах найма. Этот шаблон плана привлечения новых сотрудников организовать весь процесс с помощью имеющихся столбцов для бюджета, целей найма, статуса и комментариев.
Загрузить шаблон плана привлечения новых сотрудников в Excel
Создать план привлечения новых сотрудников в Smartsheet
План переходного периода
Иногда в компании возникает необходимость перевода сотрудника с одной должности на другую или с одного проекта на другой, в зависимости от имеющихся ресурсов. Тем не менее, даже найдя нового сотрудника для первоначальной должности, скорее всего, вы не хотите потерять знания и информацию, которые накопил предыдущий сотрудник. План переходного периода при переходе сотрудника с одной должности на другую внутри компании помогает уменьшить объём утерянной информации. Используйте этот шаблон плана переходного периода, чтобы помочь сотруднику, ранее занимавшему должность, обучить и передать знания новому сотруднику. Шаблон позволяет указывать задачи, цели, предположения, даты начала, сроки выполнения и многое другое.
Загрузить шаблон плана переходного периода в Excel
Создать шаблон плана переходного периода в Smartsheet
Расписание отпусков сотрудников
На протяжении всего года вашим сотрудникам понадобятся отпускные дни, чтобы восстановить силы и оставаться продуктивными. Однако, как же вам убедиться, что все ваши задачи продолжают выполняться, даже когда кто-то из сотрудников находится вне офиса? Используйте простой шаблон расписания отпусков, чтобы отслеживать, когда сотрудники будут находится в отпуске, сколько отпускных дней они будут брать, а также иметь под рукой подробные сведения о том, будут ли эти сотрудники доступны во время отпуска.
Загрузить шаблон расписания отпусков сотрудников в Excel
Создать шаблон графика расписания отпусков сотрудников в Smartsheet
Рабочее расписание на неделю
Независимо от размера или направления вашего бизнеса, имея еженедельный график работы, вы сможете способствовать тому, чтобы ваши сотрудники всегда были в курсе задач на ближайшую неделю и представляли, какое количество времени необходимо для завершения каждой задачи. Составление рабочего расписания поможет вашей команде не упускать из виду важные текущие задачи и гарантирует, что работа будет завершена вовремя. Используйте шаблон рабочего расписания на неделю, чтобы указывать еженедельные задачи и систематизировать их по дням недели и времени суток.
Загрузить шаблон рабочего расписания на неделю в Excel
Создать шаблон рабочего расписания на неделю в Smartsheet
Рабочее расписание
Создание рабочего расписания для вашей команды способствует прозрачности рабочего процесса, так как сотрудники всего в курсе происходящего. Расписание позволит вам убедиться, что у вас есть запасной вариант, когда это необходимо, и задачи продолжают выполняться. Кроме того, члены вашей команды будет знать, когда они должны работать. Кроме того, если сотрудник не может работать в определённый день из-за конфликта расписаний, он или она может быстро получить доступ к рабочему расписанию всей команды и назначить себе замену. Предлагаемый шаблон рабочего расписания упорядочивает этот процесс и всегда доступен для всей команды. Указывайте имена сотрудников для часов и дней, когда они будут работать, и создавайте непрерывную историю предыдущих недель путем добавления новой вкладки для каждой недели.
Загрузить шаблон рабочего расписания в Excel
Создать шаблон рабочего расписания в Smartsheet
Узнайте, как работают шаблоны для отдела кадров в Smartsheet
Smartsheet представляет собой надёжный инструмент на основе электронных таблиц для совместной работы и сотрудничества. Заранее отформатированные шаблоны Smartsheet для управления персоналом позволяют быстрее создавать расписания, отслеживать прогресс, управлять документацией и систематизировать детали. Кроме того, шаблоны Smartsheet очень надёжны, поэтому с их помощью легко и просто выполнять работу и предоставлять доступ к данным всей вашей команде.
Диаграммы Ганта автоматически создаются и изменяются, когда вы вносите изменения в данные, поэтому вам не требуется выполнять особую настройку каждый раз, когда вы хотите визуально отобразить процесс выполнения задач. Вы можете легко переключаться между представлением сети, диаграммы Ганта и календаря, предоставляя доступ членам команды или внешним сотрудникам без необходимости отправлять письма по электронной почте со сложными статическими таблицами.
Мощные функции Smartsheet для совместной работы позволяют вам начинать обсуждения, прикреплять вложения, настраивать напоминания и предоставлять доступ к документам заинтересованным лицам, чтобы они могли без труда просматривать их и вносить изменения.
Найдите лучший шаблон для отдела кадров в Smartsheet
Выбор правильного шаблона для управления персоналом имеет крайне важное значение, так как именно эти шаблоны помогут вам оптимизировать процессы и гарантировать, что вы не упустите из виду ни одной детали. С помощью заранее отформатированного шаблона вы можете повторно использовать одни и те же процессы для следующего проекта, что существенно упростит планирование управления персоналом и создаст журнал предыдущих проектов.
Узнайте, как без труда использовать шаблон для отдела кадров. Попробуйте бесплатную 30-дневную версию Smartsheet.
Попробуйте SmartSheet бесплатно
В этой статье мы рассмотрим создание автоматизированной книги, которая позволит организовать участок работы, связанный с кадровым учетом в организации. На рис. 3.23 показан один из листов этой книги, содержащий штатное расписание. Здесь каждая строка информирует сотрудника кадровой службы о конкретной должности в определенном подразделении. Например, в пятой строке указана должность одного переводчика в административном отделе. Третий столбец на листе содержит информацию о количестве ставок.
Учитывая постановку задачи, нам в дальнейшем понадобится учитывать уже занятые ставки, чтобы отличить их от вакантных. Для этого мы воспользуемся шестым столбцом на листе Штатное расписание. Его мы будем программно использовать для фиксации занятости ставок. Скажем, если на место секретаря в административный отдел будет принят один человек, то в шестом столбце данной строки это будет отмечено цифрой 1. Наоборот, при переводе или увольнении сотрудника единица будет вычитаться из соответствующей ячейки. Разумеется, нам в процессе работы понадобится справочный лист, который представлен на рис. 3.24. Видно, что здесь в каждом столбце листа содержится перечень данных, который будет программно использоваться для подстановки в различные списки для исключения неоднозначности выбора.
Рис. 3.23. Лист Штатное расписание
Лист Основной (рис. 3.25) будет играть роль регистра текущих данных. На этом листе мы будем фиксировать всю информацию о конкретных сотрудниках. Все данные на рис. 3.25 не видны, поэтому приведем названия тех столбцов, которые скрыты:
- приказ о приеме №;
- дата приказа о приеме;
- оклад;
- приказ об увольнении №;
- дата приказа об увольнении.
Разумеется, ручное заполнение листа Основной не предусматривается (или не является основным в процессе работы), и мы специально разработаем удобный интерфейс, который позволит с листа Управление (рис. 3.26) воспользоваться специально разработанными формами ввода.
Рис. 3.24. Содержание справочного листа книги
Рис. 3.25. Организация листа с информацией по сотрудникам
На листе Управление три кнопки, каждая из которых реализует определенное функциональное действие. Значения свойства Name у этих элементов управления относительно варианта «по умолчанию» мы изменим, и они (слева направо) выглядят следующим образом:
- Add_People
- Del_People
- Tr_People
Рис. 3.26. Организация листа Управление
Наша задача заключается в том, чтобы последовательно рассмотреть функциональные действия, связанные с каждой из трех данных кнопок. Первая цель — обеспечить зачисление нового сотрудника щелчком на кнопке Принять. В этом случае будет открываться форма, показанная на рис. 3.27.
Рис. 3.27. Форма Включение нового сотрудника
В плане программирования первая процедура, которая нам понадобится, вызывается щелчком на кнопке Принять на листе Управление. Ее программный код состоит из единственной строки (листинг 3.19).
1 2 3 4 |
' Листинг 3.19. Процедура, выполняемая при щелчке на кнопке Принять Private Sub Add_People_Click() AddNewSotr.Show End Sub |
Таким образом, перед пользователем открывается форма, представленная на рис. 3.27. После ее заполнения щелчком на кнопке Записать информация переносится на лист с названием Основной. Перед дальнейшими программными процедурами приведем в табл. 3.2 значения свойства Name элементов управления.
Таблица 3.2. Элементы управления на форме AddNewSotr
Тип элемента управления | Подпись | Name |
---|---|---|
TextBox | Табельный номер | TabNum |
TextBox | Дата приема | DatePriem |
TextBox | Фамилия | Fam |
TextBox | Имя | Ima |
TextBox | Отчество | Otch |
ComboBox | Подразделение | Podrazdel |
ComboBox | Должность | Dolznost |
ComboBox | Вид работы | VidRab |
ComboBox | Пол | Pol |
ComboBox | Вид договора | VidDog |
TextBox | Дата приказа | DatePrikaz |
TextBox | Номер приказа | NumPrikaz |
TextBox | Оклад | Oklad |
CommandButton | Записать | OK |
Пять полей со списками должны при открытии формы должны быть заполнены данными с листа Справочный. Для этого процедуру UserForm_Activate необходимо оформить в соответствии с листингом 3.20.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
' Листинг 3.20. Процедура, выполняемая при активизации формы AddNewSotr Private Sub Userform_Activate() ' Подсчет и заполнение списка подразделений N = 0 While Worksheets("SPRAV").Cells(N + 2, 4).Value <> "" N = N + 1 Wend Podrazdel.Clear For i = 1 To N Podrazdel.AddItem Worksheets("SPRAV").Cells(i + 1, 4).Value Next ' Очистка списка должностей Dolznost.Clear ' Подсчет и заполнение списка вариантов работы N = 0 While Worksheets("Справочный").Cells(N + 2, 2).Value <> "" N = N + 1 Wend VidRab.Clear For i = 1 To N VidRab.AddItem Worksheets("Справочный").Cells(i + 1, 2).Value Next N = 0 While Worksheets("Справочный").Cells(N + 2, 1).Value <> "" N = N + 1 Wend ' Заполнение списка указания пола Pol.Clear For i = 1 To N Pol.AddItem Worksheets("Справочный").Cells(i + 1, 1).Value Next N = 0 While Worksheets("Справочный").Cells(N + 2, 3).Value <> "" N = N + 1 Wend ' Подсчет и заполнение списка вариантов договора VidDog.Clear For i = 1 To N VidDog.AddItem Worksheets("Справочный").Cells(i + 1, 3).Value Next ' Подсчет числа сотрудников на основном листе N = 0 While Worksheets("Основной").Cells(N + 2, 1).Value <> "" N = N + 1 Wend ' Извлечение табельного номера последней записи Kod = Worksheets("Основной").Cells(N + 1, 1).Value If N <> 0 Then ' Внесение значения нового табельного номера TabNum.Text = Kod + 1 End If End Sub |
Кроме заполнения полей со списками, процедура, представленная в листинге 3.20, позволяет выполнить еще одно функциональное действие. Поле Табельный номер на рис. 3.27, разумеется, должно быть при открытии формы автоматически заполнено исходя из табельного номера предыдущего сотрудника. Для этого мы в строке Kod = Worksheets("Основной").Cells(N + 1, 1).Value
извлекли значение из первого столбца последней заполненной строки. После этого увеличили на единицу извлеченное значение и внесли результат в текстовое окно TabNum.
Наоборот, при увольнении единица вычитается (тем самым показывается освобождение ставки).
Перейдем теперь к рассмотрению действий пользователя при работе с формой. Так, после выбора подразделения в элементе управления Podrazdel элемент управления Dolznost должен заполняться только должностями из штатного расписания (для каждого подразделения они свои). В листинге 3.21 показана необходимая для этого процедура.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
' Листинг 3.21. Обработка щелчка на поле со списком подразделений Private Sub Podrazdel_Click() Dolznost.Clear ' Подсчет числа записей в штатном расписании N = 0 While Worksheets("Штатное расписание").Cells(N + 2, 1).Value <> "" N = N + 1 Wend Next For i = 1 To N If Podrazdel.Text = Worksheets("Штатное расписание").Cells(i + 1, 1).Value Then ' Если подразделение совпадает с указанным, то ' должность заносится в список Dolznost.AddItem Worksheets("Штатное расписание").Cells(i + 1, 2).Value End If Next End Sub |
Заполнив остальные поля на рис. 3.27, пользователь может щелчком на кнопке Записать внести информацию на лист Основной. Текст необходимой для этого программной процедуры представлен в листинге 3.22.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
' Листинг 3.22. Обработка щелчка на кнопке Записать на форме Private Sub OK_Click() ' Подсчет числа записей на листе Основной N = 0 While Worksheets("Основной").Cells(N + 2, 1).Value <> "" N = N + 1 Wend Worksheets("Основной").Cells(N + 2, 1).Value = TabNum.Text Worksheets("Основной").Cells(N + 2, 2).Value = Fam.Text Worksheets("Основной").Cells(N + 2, 3).Value = Ima.Text Worksheets("Основной").Cells(N + 2, 4).Value = Otch.Text Worksheets("Основной").Cells(N + 2, 5).Value = DatePriem.Text Worksheets("Основной").Cells(N + 2, 6).Value = Dolznost.Text Worksheets("Основной").Cells(N + 2, 7).Value = Podrazdel.Text Worksheets("Основной").Cells(N + 2, 8).Value = Pol.Text Worksheets("Основной").Cells(N + 2, 9).Value = VidRab.Text Worksheets("Основной").Cells(N + 2, 10).Value = NumPrikaz.Text Worksheets("Основной").Cells(N + 2, 11).Value = DatePrikaz.Text Worksheets("Основной").Cells(N + 2, 12).Value = Oklad.Text ' Фрагмент коррекции штатного расписания N = 0 While Worksheets("Штатное расписание").Cells(N + 2, 1).Value <> "" N = N + 1 Wend For i = 1 To N If Podrazdel.Text = Worksheets("Штатное расписание").Cells(i + 1, 1).Value _ And Worksheets("Штатное расписание").Cells(i + 1, 2).Value = _ Dolznost.Text Then ' Шестой столбец листа используется для учета занятых должностей Worksheets("Штатное расписание").Cells(i + 1, 6).Value = _ CInt(Worksheets("Штатное расписание").Cells(i + 1, 6).Value) + 1 End If Next MsgBox ("Информация внесена") Hide End Sub |
Кроме внесения новой информации на лист Основной, процедура, представленная в листинге 3.22, отмечает заполнение ставки на листе Штатное расписание. Для этого используется шестой столбец листа Штатное расписание. И при принятии нового человека на конкретную должность в определенной строке шестого столбца производится добавление единицы. Результат продемонстрирован на рис. 3.28.
Рис. 3.28. Отметка занятых должностей
Учитывая рассмотренную возможность учета занятых ставок, следует скорректировать процедуру (см. листинг 3.21), выполняемую по щелчку на поле со списком подразделений. Этот модернизированный вариант представлен в листинге 3.23, и он позволяет исключать уже занятые должности (в списке остаются только вакантные ставки).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
' Листинг 3.23. Обработка щелчка на списке подразделений на форме (вариант 2) Private Sub Podrazdel_Click() Dolznost.Clear N = 0 While Worksheets("Штатное расписание").Cells(N + 2, 1).Value <> "" N = N + 1 Wend For i = 1 To N If Podrazdel.Text = Worksheets("Штатное расписание").Cells(i + 1, 1).Value _ And (Worksheets("Штатное расписание").Cells(i + 1, 3).Value) - _ CInt(Worksheets("Штатное расписание").Cells(i + 1, 6)) > 0 Then Dolznost.AddItem Worksheets("Штатное расписание").Cells(i + 1, 2).Value End If Next End Sub |
Здесь вместе с проверкой подразделения еще проверяется условие наличия ставки в указанном подразделении:
1 2 |
(Worksheets("Штатное расписание").Cells(i + 1, 3).Value) - _ CInt(Worksheets("Штатное расписание").Cells(i + 1, 6)) > 0 |
Таким образом, необходимый «функционал» для внесения новых сотрудников обеспечен; перейдем к другой форме, Yvolnenie (рис. 3.29), которая позволит производить необходимые технические действия для увольнения сотрудников.
Рис. 3.29. Форма для реализации удаления сотрудников
Технически форма для увольнения открывается по щелчку на кнопке Уволить, расположенной на листе Управление. В этом случае необходимо оформить процедуру Del_People_Click() в виде, представленном в листинге 8.24.
1 2 3 4 |
' Листинг 3.24. Обработка щелчка на кнопке Уволить на листе Управление Private Sub Del_People_Click() Yvolnenie.Show End Sub |
На форме (рис. 3.29) расположено семь элементов управления, при этом два из них являются чисто пояснительными и представляют надписи (Label). В верхней части формы расположено поле со списком (Name — Spk), в которое заносятся все имеющиеся сотрудники. Пользователю после выбора конкретного специалиста требуется указать в текстовых окнах номер приказа на увольнение (Name — NumPrikaz) и его дату (Name — DatePrikaz). После этого щелчком на кнопке Внести информацию (Name — OK) на листе Основной фиксируется факт увольнения. Также изменения производятся и на листе Штатное расписание — одна из должностей переходит в категорию вакантных. В плане рассмотрения описанных функциональных действий первая процедура, которая нам понадобится, выполняется при активизации формы (листинг 3.25).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
' Листинг 3.25. Процедура, выполняемая при активизации формы на рис. 3.29 Private Sub UserForm_Activate() N = 0 While Worksheets("Основной").Cells(N + 2, 1).Value <> "" N = N + 1 Wend Spk.Clear For i = 1 To N ' Извлечение фамилии, имени и отчества сотрудника a = Worksheets("Основной").Cells(i + 1, 2).Value + " " + _ Worksheets("Основной").Cells(i + 1, 3).Value + " " + _ Worksheets("Основной").Cells(i + 1, 4).Value ' Добавление ФИО в список Spk.AddItem a Next End Sub |
Теперь сотрудник, работающий с данной разработкой, может щелчком на поле со списком выбрать одного из сотрудников и далее внести номер и дату приказа.
Технический момент связан с тем, что мы можем таким образом выбрать уже ранее уволенного сотрудника (его данные не пропадают из базы). Здесь можно предложить несколько вариантов программной реализации для исключения подобной ситуации. Мы используем один из наиболее несложных. Так, мы обеспечим, чтобы при выборе фамилии сотрудника в поле со списком в текстовые поля NumPrikaz и DatePrikaz заносилась информация из 13-го и 14-го столбцов листа Основной. В этих столбцах и размещается информация об увольнении. В листинге 3.26 приведена процедура, необходимая для выполнения данного функционального действия.
1 2 3 4 5 |
' Листинг 3.26. Обработка щелчка на поле со списком на рис. 3.29 Private Sub Spk_Click() NumPrikaz.Text = Worksheets("Основной").Cells(Spk.ListIndex + 2, 13).Value DatePrikaz.Text = Worksheets("Основной").Cells(Spk.ListIndex + 2, 14).Value End Sub |
Теперь при попытке повторного увольнения сотрудника мы это увидим — увидим номер и дату приказа об увольнении. На данном листе осталось разработать процедуру, которая позволила бы вносить информацию об увольнении на лист Основной, а также корректировать штатное расписание (листинг 3.27).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
' Листинг 3.27. Обработка щелчка на кнопке Внести информацию Private Sub OK_Click() ' Вычисляется номер строки, где расположена информация о сотруднике NomStr = Spk.ListIndex + 2 ' Внесение информации о номере приказа и дате увольнения Worksheets("Основной").Cells(NomStr, 14).Value = DatePrikaz.Text Worksheets("Основной").Cells(NomStr, 13).Value = NumPrikaz.Text ' Извлечение информации о подразделении и должности сотрудника Podrazdelenie = Worksheets("Основной").Cells(NomStr, 7).Value Dolznost = Worksheets("Основной").Cells(NomStr, 6).Value ' Подсчет числа записей в штатном расписании N = 0 While Worksheets("Штатное расписание").Cells(N + 2, 1).Value <> "" N = N + 1 Wend For i = 1 To N If Podrazdelenie = Worksheets("Штатное расписание").Cells(i + 1, 1).Value _ And Worksheets("Штатное расписание").Cells(i + 1, 2).Value = _ Dolznost Then ' Коррекция штатного расписания Worksheets("Штатное расписание").Cells(i + 1, 6).Value = _ CInt(Worksheets("Штатное расписание").Cells(i + 1, 6).Value) - 1 End If Next MsgBox ("Информация введена") End Sub |
Во второй части процедуры OK_Click() производится коррекция штатного расписания. На рис. 3.28 это отражено в уменьшении на единицу количества занятых должностей.
Рис. 3.30. Форма Perevod для перевода сотрудников
Таким образом, мы обеспечили прием и увольнение с работы. На листе Управление последним нерассмотренным сервисом является перевод сотрудников с одной должности на другую. Для этого мы разработаем форму, представленную на рис. 3.30. Отображение ее на экране обеспечивает процедура (листинг 3.28) обработки щелчка на кнопке Перевод на листе Управление.
1 2 3 4 |
' Листинг 3.28. Обработка щелчка на кнопке Перевод листа Управление Private Sub Tr_People_Click() Perevod.Show End Sub |
На форме Perevod три элемента управления типа ComboBox (поле со списком) с соответствующими надписями (элементы Label). Два элемента управления типа Label используются в дальнейших программных процедурах. Они выделены более светлым оттенком и снабжены соответствующими надписями (которые также представляют элементы типа Label). И еще один элемент управления — CommandButton. В табл. 3.3 приведены значения свойства Name данных элементов на форме. Первая процедура, которую мы рассмотрим, выполняется при активизации формы. Ее действия сводятся к заполнению полей со списками, а сам текст приведен в листинге 3.29.
Таблица 3.3. Элементы управления на форме Perevod
Тип элемента управления | Подпись | Name |
---|---|---|
ComboBox | ФИО | Spk |
ComboBox | Новое подразделение | NewPodrazdel |
ComboBox | Новая должность | NewDolznost |
Label | Подразделение | StPodr |
Label | Должность | StDolznost |
CommandButton | Перевести | OK |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
' Листинг 3.29. Процедура, выполняемая при активизации формы Private Sub UserForm_Activate() ' Подсчет числа сотрудников N = 0 While Worksheets("Основной").Cells(N + 2, 1).Value <> "" N = N + 1 Wend ' Очистка и последующее заполнение списка сотрудников Spk.Clear For i = 1 To N a = Worksheets("Основной").Cells(i + 1, 2).Value + " " + _ Worksheets("Основной").Cells(i + 1, 3).Value + " " + _ Worksheets("Основной").Cells(i + 1, 4).Value Spk.AddItem a Next ' Заполнение списка подразделений N = 0 While Worksheets("Справочный").Cells(N + 2, 4).Value <> "" N = N + 1 Wend NewPodrazdel.Clear For i = 1 To N NewPodrazdel.AddItem Worksheets("Справочный").Cells(i + 1, 4).Value Next ' Заполнение списка должностей While Worksheets("Справочный").Cells(N + 2, 5).Value <> "" N = N + 1 Wend NewDolznost.Clear For i = 1 To N NewDolznost.AddItem Worksheets("Справочный").Cells(i + 1, 5).Value Next End Sub |
Таким образом, при открытии формы перевода элементы управления «Поле со списком» заполнены. Пользователь, работающий с данной книгой, должен выбрать в поле со списком интересующего его сотрудника. Выполняемая при этом процедура осуществляет внесение информации о подразделении и должности сотрудника в элементы управления на форме. Если же сотрудник уволен, то сообщение об этом факте выводится в надпись, предназначенную для подразделения. Необходимый программный код данной процедуры представлен в листинге 3.30.
1 2 3 4 5 6 7 8 9 10 11 |
' Листинг 3.30. Обработка щелчка на поле со списком сотрудников Private Sub Spk_Click() If Worksheets("Основной").Cells(Spk.ListIndex + 2, 14).Value = "" Then ' Внесение информации о старом подразделении StPodr.Caption = Worksheets("Основной").Cells(ListIndex + 2, 7).Value ' Внесение информации о старой должности StDolznost.Caption = Worksheets("Основной").Cells(Spk.ListIndex + 2, 6).Value Else StPodr.Caption = "Уволен" End If End Sub |
Следующая процедура (листинг 3.31) позволяет внести в поле со списком NewDolznost только вакантные должности в указанном подразделении.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
' Листинг 3.31. Обработка щелчка на поле со списком подразделений Private Sub NewPodrazdel_Click() ' Очистка поля со списком должностей NewDolznost.Clear ' podschet N = 0 While Worksheets("Штатное расписание").Cells(N + 2, 1).Value <> "" N = N + 1 Wend For i = 1 To N If NewPodrazdel.Text = Worksheets("Штатное расписание").Cells(i + 1, 1).Value _ And (Worksheets("Штатное расписание").Cells(i + 1, 3).Value - _ CInt(Worksheets("Штатное расписание").Cells(i + 1, 6).Value)) > 0 Then ' Добавление в список вакантной должности NewDolznost.AddItem Worksheets("Штатное расписание").Cells(i + 1, 2).Value End If Next End Sub |
На рис. 3.31 продемонстрирован вариант заполнения формы благодаря разработанным процедурам.
Рис. 3.31. Заполненная форма перевода сотрудника
Теперь ключевая процедура (листинг 3.32), которая выполняется по щелчку на кнопке Перевести. Она производит изменения на листах Основной и Штатное расписание.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
' Листинг 3.32. Обработка щелчка на кнопке Перевести на рис. 3.31 Private Sub OK_Click() ' Вычисление номера строки, где располагается информация по сотруднику Nom = Spk.ListIndex + 2 ' Подсчет числа записей на листе Основной N = 0 While Worksheets("Основной").Cells(N + 2, 1).Value <> "" N = N + 1 Wend ' Внесение информации о новых должности и подразделении Worksheets("Основной").Cells(Nom, 6).Value = NewDolznost.Text Worksheets("Основной").Cells(Nom + 2, 7).Value = NewPodrazdel.Text ' Подсчет числа строк в штатном расписании NN = 0 While Worksheets("Штатное расписание").Cells(NN + 2, 1).Value <> "" NN = NN + 1 Wend For i = 1 To NN If StPodr.Caption = Worksheets("Штатное расписание").Cells(i + 1, 1).Value _ And Worksheets("Штатное расписание").Cells(i + 1, 2).Value = _ StDolznost.Caption Then ' Фиксирование освобождаемой должности Worksheets("Штатное расписание").Cells(i + 1, 6).Value = _ CInt(Worksheets("Штатное расписание").Cells(i + 1, 6).Value) - 1 Exit For End If Next For i = 1 To NN If NewPodrazdel.Text = Worksheets("Штатное расписание").Cells(i + 1, 1).Value _ And Worksheets("SHTAT").Cells(i + 1, 2).Value = NewDolznost.Text Then ' Фиксирование занимаемой должности Worksheets("Штатное расписание").Cells(i + 1, 6).Value = _ CInt(Worksheets("Штатное расписание").Cells(i + 1, 6).Value) + 1 Oklad = Worksheets("Штатное расписание").Cells(i + 1, 4).Value Worksheets("Основной").Cells(Nom, 12).Value = Oklad Exit For End If Next MsgBox ("Перевод выполнен") End Sub |
Результат работы рассмотренных процедур показан на рис. 3.32.
Рис. 3.32. Результат изменений в штатном расписании
Табель в режиме бета-тестирования: если будут обнаружены ошибки, то они будут исправлены и каждому будет выслан исправленный вариант.
Табель позволяет быстро работать со списком всех сотрудников и отслеживать их параметры:
- уровень образования и ученые степени;
- возраст, стаж на определенную дату;
- сроки с последнего прохождения курсов повышения квалификации;
- текущая квалификационная категория;
- работает ли с детьми ОВЗ.
Также табель позволяет делать отчеты (например, для ОО1 2019 года — отчеты № 3.1, 3.2, 3.3.1, 3.3.2, 3.4, 3.5):
- разбивку по возрастам и полу сотрудников;
- по образованию;
- по работе с ОВЗ;
- прибывшие и выбывшие, выпускники и другие отчеты.
Смотрите, как работает табель
Табель работает по принципу: вы вводите данные по каждому сотруднику, отчеты составляются автоматически. Пароли не предоставляются.
Купить полную версию табеля >>>
Спасибо за Вашу оценку. Если хотите, чтобы Ваше имя
стало известно автору, войдите на сайт как пользователь
и нажмите Спасибо еще раз. Ваше имя появится на этой стрнице.
As a human resources professional, you are required to juggle a variety of tasks. Your responsibilities could include everything from acquiring the best talent to motivating employees to managing training programs.
With so many different duties, it is important to have a system in place to stay organized and ensure that no detail is left undone. One way to keep track of all the details is by using an Excel template. But how do you find the best Excel templates to fit your needs? We’ve researched the top Excel templates for human resources and have included them here for you to download, along with a description of when to use each.
We’ve also included human resources templates in Smartsheet, a spreadsheet-inspired work management tool that makes HR processes even easier and more collaborative than Excel.
Employee Attendance Tracker
Most companies have policies around employee work schedules. Whether or not a company offers paid vacation or sick time, it is important to track the attendance schedule of your employees. Attendance information could be helpful when assessing job performance during yearly evaluations. Use this simple employee attendance tracker template to document whether each employee worked or took vacation, personal or sick days. You can also add tabs for each month of the year to keep a running history of employee attendance throughout.
Download Employee Attendance Excel Template
Create Your Employee Attendance Tracker with Smartsheet
Candidate Screening Tracker
Human resources professionals typically have to track and manage the many incoming resumes, cover letters, applications and details of individuals applying for job openings. This can be a lot of work depending on the size of the company and current hiring plan. Using a candidate tracker template will help you keep candidate details and documentation in order, and ensure you provide a positive experience for the candidates and those involved in the interview process. In this template you can track candidate contact information, phone interview questions and answers, status, comments, next steps, and more.
Download Candidate Tracker Excel Template
Create Your Candidate Tracker with Smartsheet
Vacation Schedule
Throughout the year, your employees will need to take vacations to rejuvenate and remain productive. But how do you ensure that you have the proper coverage when employees are out of office? Use a simple vacation schedule template to track when employees will be off, how many vacations days they are taking and details around whether they will be reachable when away.
Download Vacation Schedule Excel Template
Create Your Vacation Schedule with Smartsheet
Employee Training Plan
The amount of training new hires receive is strongly connected to how successful that new employee will be in his or her new role. Though the time and effort needed for training may vary from company to company, it’s always a good idea to have an employee training plan in place to ensure a quick and efficient ramp-up period. With an employee training schedule template, you can create a list of training activities, add details around who the new employee needs to work with to complete each task, enter activity status, and include feedback for the new employee and his or her manager.
Download Employee Training Excel Template
Create Your Employee Training with Smartsheet
Employee Evaluation
Having a well thought-out employee performance review process is important to ensure that the business is operating at its peak. Employees need to know what they are doing right and what they can improve on, on a yearly if not bi-yearly basis. Using an employee evaluation template will help to manage the review process. Use this template to document the employee performance against set goals, the employee evaluation of their manager, and professional development plans for the upcoming year.
Download Employee Evaluation Excel Template
Create Your Employee Evaluation with Smartsheet
New Hire Checklist
Once a candidate accepts an employment offer, the on-boarding process begins. The amount of documentation required when on-boarding a newly hired employee can be daunting. That’s why using a new hire checklist template is helpful to ensure no step is left undone. Use this template to list the documentation needed, track the progress of collecting and organizing the documents, and keep hiring managers in the loop.
Download New Hire Checklist Excel Template
Create Your New Hire Checklist with Smartsheet
Staffing or Recruiting Plan
Recruitment is one of the top responsibilities of any human resources team. Searching for, vetting, and finding the right talent to join your team is crucial to ensure the success of your organization. Having a staffing plan in place makes your team aware of the available recruitment sources, hiring goals and more. This staffing plan template will help you to organize all of the details with columns for budgets, hiring goals, status, and comments.
Download Staffing Plan Excel Template
Create Your Staffing Plan with Smartsheet
Employee Timesheet
Gone are the days where employees would manually clock in and out. That’s why creating an employee timecard process is helpful to track the amount of time worked on a weekly, biweekly and monthly basis to reference when completing the payroll process. Additionally, asking employees to keep a daily timesheet log can be helpful to track daily activities. This employee timesheet template will enable you to create one file for each of your employees and track his or her time on a daily, weekly, bi-weekly, and monthly basis. Additionally, the pre-built formulas included quickly calculate totals to help streamline employee payroll processing.
Download Employee Timesheet Excel Template
Create Your Employee Timesheet with Smartsheet
Employee Work Schedule
There are many employee scheduling softwares out there, but sometimes it’s nice to have a simple employee schedule. Keeping track of employee schedules ensures that you have the right amount of coverage on a daily and weekly basis. You can use this employee schedule template to list employee schedules in one location, to provide a quick visual of coverage and make adjustments as needed.
Download Employee Schedule Excel Template
Create Your Employee Schedule with Smartsheet
Monthly Work Schedule
Keeping a monthly schedule of important dates like holidays, scheduled office closures, timesheet due dates, and payroll cut offs can be helpful to keep you organized. Additionally, by creating the monthly work schedules at the beginning of each year, you will have a comprehensive view of the year and be able to anticipate what is coming down the line. With this simple monthly work schedule template, you can set up individual tabs for each month, input important events into the calendar, and add notes to provide details for each events.
Download Monthly Work Schedule Excel Template
Create Your Monthly Work Schedule with Smartsheet
Weekly Work Schedule
No matter the size or nature of your business, having a weekly work schedule will help keep your employees aware of the weekly tasks and time associated with completing each task. Keeping a schedule of these items will help your team remain on track and ensure that the work is completed on time. Use a weekly work schedule template to input weekly tasks and organize them by day of week and time of day.
Download Weekly Work Schedule Excel Template
Create Your Weekly Work Schedule with Smartsheet
Hourly Work Schedule
Creating a work schedule for your team keeps everyone on the same page. It will allow you to ensure that you have coverage when needed, and let your team know when they are scheduled to work. Additionally, if an employee has a conflict and can’t work on a specific day, he or she can quickly access the work schedule to coordinate coverage. This work schedule template streamlines this process and provides a consistent view for your team. Input employee names for the times and dates they will work, and create a rolling history of previous weeks by adding a new tab for each week.
Download Hourly Work Schedule Excel Template
Create Your Hourly Work Schedule with Smartsheet
Transition Plan
Sometimes within an organization, it is necessary to move team members around to fill different roles depending on resources. However, when backfilling the initial role, you don’t want to lose the knowledge and information the previous person gained in that position. An employee transition plan reduces the amount of information lost. Use this transition plan template to help the person previously in the role connect with and train the new employee. Input tasks, goals, assumptions, start and end dates, and more.
Download Transition Plan Excel Template
Create Your Transition Plan with Smartsheet
Payroll Tracker
Depending on how many employees you have, payroll processing can be an arduous task. With a simple payroll template, you can easily add employee details, salaries, overtime, exemptions and more, for each payroll period. Also, by creating a tab for each payroll period, you can keep a rolling history of payroll throughout the month, quarter and year.
Download Payroll Excel Template
Create Your Payroll Template with Smartsheet
Pay Stub
Providing employees a pay stub, whether it is electronic or physical, benefits both the employee and the employer. For the employee, a pay stub is helpful to track compensation and deductions, while for the employer a pay stub is important to offer proof that employees are paid correctly. Use this pay stub template to help you quickly produce pay stubs for your employees and your records. With pre-built formulas, you can simply input the employee’s earnings and deductions and totals will automatically be calculated.
Download Pay Stub Excel Template
Manage Your Pay Stubs with Smartsheet
Smartsheet Empowers HR Leaders to Work Better
Smartsheet is a spreadsheet-inspired work management tool with robust collaboration and communication features. Its pre-built human resources templates make it even easier to create schedules, track progress, manage documentation, and quickly organize the details. And, Smartsheet offers robust templates that makes it simple to get started right away and share status with your team.
Gantt charts are automatically created and auto-adjust every time you change task information, so there is little setup required when you want to visually show progress. You can easily switch between Spreadsheet, Gantt, Calendar, and Card view with team members or external collaborators, without emailing static spreadsheets back and forth.
And, with Smartsheet’s powerful collaboration features like discussions, reminders, and attachments, you can store all documentation in one place for everyone to view, access, and make changes in real time.
Finding the Best Human Resources Templates
Finding the right human resources template is important to help you streamline processes and ensure no detail is missed. With a pre-built template, you can reuse the same processes for each new project, helping to streamline the planning process and provide a history of the previous projects.
See how easy it can be to manage all of your human resources processes with Smartsheet.
Learn More about Smartsheet for Human Resources
Содержание
- Microsoft Excel
- Организация кадрового учета средствами VBA Excel
- Таблица 3.2. Элементы управления на форме AddNewSotr
- Таблица 3.3. Элементы управления на форме Perevod
Microsoft Excel
трюки • приёмы • решения
Организация кадрового учета средствами VBA Excel
В этой статье мы рассмотрим создание автоматизированной книги, которая позволит организовать участок работы, связанный с кадровым учетом в организации. На рис. 3.23 показан один из листов этой книги, содержащий штатное расписание. Здесь каждая строка информирует сотрудника кадровой службы о конкретной должности в определенном подразделении. Например, в пятой строке указана должность одного переводчика в административном отделе. Третий столбец на листе содержит информацию о количестве ставок.
Учитывая постановку задачи, нам в дальнейшем понадобится учитывать уже занятые ставки, чтобы отличить их от вакантных. Для этого мы воспользуемся шестым столбцом на листе Штатное расписание. Его мы будем программно использовать для фиксации занятости ставок. Скажем, если на место секретаря в административный отдел будет принят один человек, то в шестом столбце данной строки это будет отмечено цифрой 1. Наоборот, при переводе или увольнении сотрудника единица будет вычитаться из соответствующей ячейки. Разумеется, нам в процессе работы понадобится справочный лист, который представлен на рис. 3.24. Видно, что здесь в каждом столбце листа содержится перечень данных, который будет программно использоваться для подстановки в различные списки для исключения неоднозначности выбора.
Рис. 3.23. Лист Штатное расписание
Лист Основной (рис. 3.25) будет играть роль регистра текущих данных. На этом листе мы будем фиксировать всю информацию о конкретных сотрудниках. Все данные на рис. 3.25 не видны, поэтому приведем названия тех столбцов, которые скрыты:
- приказ о приеме №;
- дата приказа о приеме;
- оклад;
- приказ об увольнении №;
- дата приказа об увольнении.
Разумеется, ручное заполнение листа Основной не предусматривается (или не является основным в процессе работы), и мы специально разработаем удобный интерфейс, который позволит с листа Управление (рис. 3.26) воспользоваться специально разработанными формами ввода.
Рис. 3.24. Содержание справочного листа книги
Рис. 3.25. Организация листа с информацией по сотрудникам
На листе Управление три кнопки, каждая из которых реализует определенное функциональное действие. Значения свойства Name у этих элементов управления относительно варианта «по умолчанию» мы изменим, и они (слева направо) выглядят следующим образом:
Рис. 3.26. Организация листа Управление
Наша задача заключается в том, чтобы последовательно рассмотреть функциональные действия, связанные с каждой из трех данных кнопок. Первая цель — обеспечить зачисление нового сотрудника щелчком на кнопке Принять. В этом случае будет открываться форма, показанная на рис. 3.27.
Рис. 3.27. Форма Включение нового сотрудника
В плане программирования первая процедура, которая нам понадобится, вызывается щелчком на кнопке Принять на листе Управление. Ее программный код состоит из единственной строки (листинг 3.19).
‘ Листинг 3.19. Процедура, выполняемая при щелчке на кнопке Принять Private Sub Add_People_Click() AddNewSotr.Show End Sub
Таким образом, перед пользователем открывается форма, представленная на рис. 3.27. После ее заполнения щелчком на кнопке Записать информация переносится на лист с названием Основной. Перед дальнейшими программными процедурами приведем в табл. 3.2 значения свойства Name элементов управления.
Таблица 3.2. Элементы управления на форме AddNewSotr
Тип элемента управления | Подпись | Name |
---|---|---|
TextBox | Табельный номер | TabNum |
TextBox | Дата приема | DatePriem |
TextBox | Фамилия | Fam |
TextBox | Имя | Ima |
TextBox | Отчество | Otch |
ComboBox | Подразделение | Podrazdel |
ComboBox | Должность | Dolznost |
ComboBox | Вид работы | VidRab |
ComboBox | Пол | Pol |
ComboBox | Вид договора | VidDog |
TextBox | Дата приказа | DatePrikaz |
TextBox | Номер приказа | NumPrikaz |
TextBox | Оклад | Oklad |
CommandButton | Записать | OK |
Пять полей со списками должны при открытии формы должны быть заполнены данными с листа Справочный. Для этого процедуру UserForm_Activate необходимо оформить в соответствии с листингом 3.20.
‘ Листинг 3.20. Процедура, выполняемая при активизации формы AddNewSotr Private Sub Userform_Activate() ‘ Подсчет и заполнение списка подразделений N = 0 While Worksheets(«SPRAV»).Cells(N + 2, 4).Value <> «» N = N + 1 Wend Podrazdel.Clear For i = 1 To N Podrazdel.AddItem Worksheets(«SPRAV»).Cells(i + 1, 4).Value Next ‘ Очистка списка должностей Dolznost.Clear ‘ Подсчет и заполнение списка вариантов работы N = 0 While Worksheets(«Справочный»).Cells(N + 2, 2).Value <> «» N = N + 1 Wend VidRab.Clear For i = 1 To N VidRab.AddItem Worksheets(«Справочный»).Cells(i + 1, 2).Value Next N = 0 While Worksheets(«Справочный»).Cells(N + 2, 1).Value <> «» N = N + 1 Wend ‘ Заполнение списка указания пола Pol.Clear For i = 1 To N Pol.AddItem Worksheets(«Справочный»).Cells(i + 1, 1).Value Next N = 0 While Worksheets(«Справочный»).Cells(N + 2, 3).Value <> «» N = N + 1 Wend ‘ Подсчет и заполнение списка вариантов договора VidDog.Clear For i = 1 To N VidDog.AddItem Worksheets(«Справочный»).Cells(i + 1, 3).Value Next ‘ Подсчет числа сотрудников на основном листе N = 0 While Worksheets(«Основной»).Cells(N + 2, 1).Value <> «» N = N + 1 Wend ‘ Извлечение табельного номера последней записи Kod = Worksheets(«Основной»).Cells(N + 1, 1).Value If N <> 0 Then ‘ Внесение значения нового табельного номера TabNum.Text = Kod + 1 End If End Sub
Кроме заполнения полей со списками, процедура, представленная в листинге 3.20, позволяет выполнить еще одно функциональное действие. Поле Табельный номер на рис. 3.27, разумеется, должно быть при открытии формы автоматически заполнено исходя из табельного номера предыдущего сотрудника. Для этого мы в строке Kod = Worksheets(«Основной»).Cells(N + 1, 1).Value извлекли значение из первого столбца последней заполненной строки. После этого увеличили на единицу извлеченное значение и внесли результат в текстовое окно TabNum.
Наоборот, при увольнении единица вычитается (тем самым показывается освобождение ставки).
Перейдем теперь к рассмотрению действий пользователя при работе с формой. Так, после выбора подразделения в элементе управления Podrazdel элемент управления Dolznost должен заполняться только должностями из штатного расписания (для каждого подразделения они свои). В листинге 3.21 показана необходимая для этого процедура.
‘ Листинг 3.21. Обработка щелчка на поле со списком подразделений Private Sub Podrazdel_Click() Dolznost.Clear ‘ Подсчет числа записей в штатном расписании N = 0 While Worksheets(«Штатное расписание»).Cells(N + 2, 1).Value <> «» N = N + 1 Wend Next For i = 1 To N If Podrazdel.Text = Worksheets(«Штатное расписание»).Cells(i + 1, 1).Value Then ‘ Если подразделение совпадает с указанным, то ‘ должность заносится в список Dolznost.AddItem Worksheets(«Штатное расписание»).Cells(i + 1, 2).Value End If Next End Sub
Заполнив остальные поля на рис. 3.27, пользователь может щелчком на кнопке Записать внести информацию на лист Основной. Текст необходимой для этого программной процедуры представлен в листинге 3.22.
‘ Листинг 3.22. Обработка щелчка на кнопке Записать на форме Private Sub OK_Click() ‘ Подсчет числа записей на листе Основной N = 0 While Worksheets(«Основной»).Cells(N + 2, 1).Value <> «» N = N + 1 Wend Worksheets(«Основной»).Cells(N + 2, 1).Value = TabNum.Text Worksheets(«Основной»).Cells(N + 2, 2).Value = Fam.Text Worksheets(«Основной»).Cells(N + 2, 3).Value = Ima.Text Worksheets(«Основной»).Cells(N + 2, 4).Value = Otch.Text Worksheets(«Основной»).Cells(N + 2, 5).Value = DatePriem.Text Worksheets(«Основной»).Cells(N + 2, 6).Value = Dolznost.Text Worksheets(«Основной»).Cells(N + 2, 7).Value = Podrazdel.Text Worksheets(«Основной»).Cells(N + 2, 8).Value = Pol.Text Worksheets(«Основной»).Cells(N + 2, 9).Value = VidRab.Text Worksheets(«Основной»).Cells(N + 2, 10).Value = NumPrikaz.Text Worksheets(«Основной»).Cells(N + 2, 11).Value = DatePrikaz.Text Worksheets(«Основной»).Cells(N + 2, 12).Value = Oklad.Text ‘ Фрагмент коррекции штатного расписания N = 0 While Worksheets(«Штатное расписание»).Cells(N + 2, 1).Value <> «» N = N + 1 Wend For i = 1 To N If Podrazdel.Text = Worksheets(«Штатное расписание»).Cells(i + 1, 1).Value _ And Worksheets(«Штатное расписание»).Cells(i + 1, 2).Value = _ Dolznost.Text Then ‘ Шестой столбец листа используется для учета занятых должностей Worksheets(«Штатное расписание»).Cells(i + 1, 6).Value = _ CInt(Worksheets(«Штатное расписание»).Cells(i + 1, 6).Value) + 1 End If Next MsgBox («Информация внесена») Hide End Sub
Кроме внесения новой информации на лист Основной, процедура, представленная в листинге 3.22, отмечает заполнение ставки на листе Штатное расписание. Для этого используется шестой столбец листа Штатное расписание. И при принятии нового человека на конкретную должность в определенной строке шестого столбца производится добавление единицы. Результат продемонстрирован на рис. 3.28.
Рис. 3.28. Отметка занятых должностей
Учитывая рассмотренную возможность учета занятых ставок, следует скорректировать процедуру (см. листинг 3.21), выполняемую по щелчку на поле со списком подразделений. Этот модернизированный вариант представлен в листинге 3.23, и он позволяет исключать уже занятые должности (в списке остаются только вакантные ставки).
‘ Листинг 3.23. Обработка щелчка на списке подразделений на форме (вариант 2) Private Sub Podrazdel_Click() Dolznost.Clear N = 0 While Worksheets(«Штатное расписание»).Cells(N + 2, 1).Value <> «» N = N + 1 Wend For i = 1 To N If Podrazdel.Text = Worksheets(«Штатное расписание»).Cells(i + 1, 1).Value _ And (Worksheets(«Штатное расписание»).Cells(i + 1, 3).Value) — _ CInt(Worksheets(«Штатное расписание»).Cells(i + 1, 6)) > 0 Then Dolznost.AddItem Worksheets(«Штатное расписание»).Cells(i + 1, 2).Value End If Next End Sub
Здесь вместе с проверкой подразделения еще проверяется условие наличия ставки в указанном подразделении:
(Worksheets(«Штатное расписание»).Cells(i + 1, 3).Value) — _ CInt(Worksheets(«Штатное расписание»).Cells(i + 1, 6)) > 0
Таким образом, необходимый «функционал» для внесения новых сотрудников обеспечен; перейдем к другой форме, Yvolnenie (рис. 3.29), которая позволит производить необходимые технические действия для увольнения сотрудников.
Рис. 3.29. Форма для реализации удаления сотрудников
Технически форма для увольнения открывается по щелчку на кнопке Уволить, расположенной на листе Управление. В этом случае необходимо оформить процедуру Del_People_Click() в виде, представленном в листинге 8.24.
‘ Листинг 3.24. Обработка щелчка на кнопке Уволить на листе Управление Private Sub Del_People_Click() Yvolnenie.Show End Sub
На форме (рис. 3.29) расположено семь элементов управления, при этом два из них являются чисто пояснительными и представляют надписи (Label). В верхней части формы расположено поле со списком (Name — Spk), в которое заносятся все имеющиеся сотрудники. Пользователю после выбора конкретного специалиста требуется указать в текстовых окнах номер приказа на увольнение (Name — NumPrikaz) и его дату (Name — DatePrikaz). После этого щелчком на кнопке Внести информацию (Name — OK) на листе Основной фиксируется факт увольнения. Также изменения производятся и на листе Штатное расписание — одна из должностей переходит в категорию вакантных. В плане рассмотрения описанных функциональных действий первая процедура, которая нам понадобится, выполняется при активизации формы (листинг 3.25).
‘ Листинг 3.25. Процедура, выполняемая при активизации формы на рис. 3.29 Private Sub UserForm_Activate() N = 0 While Worksheets(«Основной»).Cells(N + 2, 1).Value <> «» N = N + 1 Wend Spk.Clear For i = 1 To N ‘ Извлечение фамилии, имени и отчества сотрудника a = Worksheets(«Основной»).Cells(i + 1, 2).Value + » » + _ Worksheets(«Основной»).Cells(i + 1, 3).Value + » » + _ Worksheets(«Основной»).Cells(i + 1, 4).Value ‘ Добавление ФИО в список Spk.AddItem a Next End Sub
Теперь сотрудник, работающий с данной разработкой, может щелчком на поле со списком выбрать одного из сотрудников и далее внести номер и дату приказа.
Технический момент связан с тем, что мы можем таким образом выбрать уже ранее уволенного сотрудника (его данные не пропадают из базы). Здесь можно предложить несколько вариантов программной реализации для исключения подобной ситуации. Мы используем один из наиболее несложных. Так, мы обеспечим, чтобы при выборе фамилии сотрудника в поле со списком в текстовые поля NumPrikaz и DatePrikaz заносилась информация из 13-го и 14-го столбцов листа Основной. В этих столбцах и размещается информация об увольнении. В листинге 3.26 приведена процедура, необходимая для выполнения данного функционального действия.
‘ Листинг 3.26. Обработка щелчка на поле со списком на рис. 3.29 Private Sub Spk_Click() NumPrikaz.Text = Worksheets(«Основной»).Cells(Spk.ListIndex + 2, 13).Value DatePrikaz.Text = Worksheets(«Основной»).Cells(Spk.ListIndex + 2, 14).Value End Sub
Теперь при попытке повторного увольнения сотрудника мы это увидим — увидим номер и дату приказа об увольнении. На данном листе осталось разработать процедуру, которая позволила бы вносить информацию об увольнении на лист Основной, а также корректировать штатное расписание (листинг 3.27).
‘ Листинг 3.27. Обработка щелчка на кнопке Внести информацию Private Sub OK_Click() ‘ Вычисляется номер строки, где расположена информация о сотруднике NomStr = Spk.ListIndex + 2 ‘ Внесение информации о номере приказа и дате увольнения Worksheets(«Основной»).Cells(NomStr, 14).Value = DatePrikaz.Text Worksheets(«Основной»).Cells(NomStr, 13).Value = NumPrikaz.Text ‘ Извлечение информации о подразделении и должности сотрудника Podrazdelenie = Worksheets(«Основной»).Cells(NomStr, 7).Value Dolznost = Worksheets(«Основной»).Cells(NomStr, 6).Value ‘ Подсчет числа записей в штатном расписании N = 0 While Worksheets(«Штатное расписание»).Cells(N + 2, 1).Value <> «» N = N + 1 Wend For i = 1 To N If Podrazdelenie = Worksheets(«Штатное расписание»).Cells(i + 1, 1).Value _ And Worksheets(«Штатное расписание»).Cells(i + 1, 2).Value = _ Dolznost Then ‘ Коррекция штатного расписания Worksheets(«Штатное расписание»).Cells(i + 1, 6).Value = _ CInt(Worksheets(«Штатное расписание»).Cells(i + 1, 6).Value) — 1 End If Next MsgBox («Информация введена») End Sub
Во второй части процедуры OK_Click() производится коррекция штатного расписания. На рис. 3.28 это отражено в уменьшении на единицу количества занятых должностей.
Рис. 3.30. Форма Perevod для перевода сотрудников
Таким образом, мы обеспечили прием и увольнение с работы. На листе Управление последним нерассмотренным сервисом является перевод сотрудников с одной должности на другую. Для этого мы разработаем форму, представленную на рис. 3.30. Отображение ее на экране обеспечивает процедура (листинг 3.28) обработки щелчка на кнопке Перевод на листе Управление.
‘ Листинг 3.28. Обработка щелчка на кнопке Перевод листа Управление Private Sub Tr_People_Click() Perevod.Show End Sub
На форме Perevod три элемента управления типа ComboBox (поле со списком) с соответствующими надписями (элементы Label). Два элемента управления типа Label используются в дальнейших программных процедурах. Они выделены более светлым оттенком и снабжены соответствующими надписями (которые также представляют элементы типа Label). И еще один элемент управления — CommandButton. В табл. 3.3 приведены значения свойства Name данных элементов на форме. Первая процедура, которую мы рассмотрим, выполняется при активизации формы. Ее действия сводятся к заполнению полей со списками, а сам текст приведен в листинге 3.29.
Таблица 3.3. Элементы управления на форме Perevod
Тип элемента управления | Подпись | Name |
---|---|---|
ComboBox | ФИО | Spk |
ComboBox | Новое подразделение | NewPodrazdel |
ComboBox | Новая должность | NewDolznost |
Label | Подразделение | StPodr |
Label | Должность | StDolznost |
CommandButton | Перевести | OK |
‘ Листинг 3.29. Процедура, выполняемая при активизации формы Private Sub UserForm_Activate() ‘ Подсчет числа сотрудников N = 0 While Worksheets(«Основной»).Cells(N + 2, 1).Value <> «» N = N + 1 Wend ‘ Очистка и последующее заполнение списка сотрудников Spk.Clear For i = 1 To N a = Worksheets(«Основной»).Cells(i + 1, 2).Value + » » + _ Worksheets(«Основной»).Cells(i + 1, 3).Value + » » + _ Worksheets(«Основной»).Cells(i + 1, 4).Value Spk.AddItem a Next ‘ Заполнение списка подразделений N = 0 While Worksheets(«Справочный»).Cells(N + 2, 4).Value <> «» N = N + 1 Wend NewPodrazdel.Clear For i = 1 To N NewPodrazdel.AddItem Worksheets(«Справочный»).Cells(i + 1, 4).Value Next ‘ Заполнение списка должностей While Worksheets(«Справочный»).Cells(N + 2, 5).Value <> «» N = N + 1 Wend NewDolznost.Clear For i = 1 To N NewDolznost.AddItem Worksheets(«Справочный»).Cells(i + 1, 5).Value Next End Sub
Таким образом, при открытии формы перевода элементы управления «Поле со списком» заполнены. Пользователь, работающий с данной книгой, должен выбрать в поле со списком интересующего его сотрудника. Выполняемая при этом процедура осуществляет внесение информации о подразделении и должности сотрудника в элементы управления на форме. Если же сотрудник уволен, то сообщение об этом факте выводится в надпись, предназначенную для подразделения. Необходимый программный код данной процедуры представлен в листинге 3.30.
‘ Листинг 3.30. Обработка щелчка на поле со списком сотрудников Private Sub Spk_Click() If Worksheets(«Основной»).Cells(Spk.ListIndex + 2, 14).Value = «» Then ‘ Внесение информации о старом подразделении StPodr.Caption = Worksheets(«Основной»).Cells(ListIndex + 2, 7).Value ‘ Внесение информации о старой должности StDolznost.Caption = Worksheets(«Основной»).Cells(Spk.ListIndex + 2, 6).Value Else StPodr.Caption = «Уволен» End If End Sub
Следующая процедура (листинг 3.31) позволяет внести в поле со списком NewDolznost только вакантные должности в указанном подразделении.
‘ Листинг 3.31. Обработка щелчка на поле со списком подразделений Private Sub NewPodrazdel_Click() ‘ Очистка поля со списком должностей NewDolznost.Clear ‘ podschet N = 0 While Worksheets(«Штатное расписание»).Cells(N + 2, 1).Value <> «» N = N + 1 Wend For i = 1 To N If NewPodrazdel.Text = Worksheets(«Штатное расписание»).Cells(i + 1, 1).Value _ And (Worksheets(«Штатное расписание»).Cells(i + 1, 3).Value — _ CInt(Worksheets(«Штатное расписание»).Cells(i + 1, 6).Value)) > 0 Then ‘ Добавление в список вакантной должности NewDolznost.AddItem Worksheets(«Штатное расписание»).Cells(i + 1, 2).Value End If Next End Sub
На рис. 3.31 продемонстрирован вариант заполнения формы благодаря разработанным процедурам.
Рис. 3.31. Заполненная форма перевода сотрудника
Теперь ключевая процедура (листинг 3.32), которая выполняется по щелчку на кнопке Перевести. Она производит изменения на листах Основной и Штатное расписание.
‘ Листинг 3.32. Обработка щелчка на кнопке Перевести на рис. 3.31 Private Sub OK_Click() ‘ Вычисление номера строки, где располагается информация по сотруднику Nom = Spk.ListIndex + 2 ‘ Подсчет числа записей на листе Основной N = 0 While Worksheets(«Основной»).Cells(N + 2, 1).Value <> «» N = N + 1 Wend ‘ Внесение информации о новых должности и подразделении Worksheets(«Основной»).Cells(Nom, 6).Value = NewDolznost.Text Worksheets(«Основной»).Cells(Nom + 2, 7).Value = NewPodrazdel.Text ‘ Подсчет числа строк в штатном расписании NN = 0 While Worksheets(«Штатное расписание»).Cells(NN + 2, 1).Value <> «» NN = NN + 1 Wend For i = 1 To NN If StPodr.Caption = Worksheets(«Штатное расписание»).Cells(i + 1, 1).Value _ And Worksheets(«Штатное расписание»).Cells(i + 1, 2).Value = _ StDolznost.Caption Then ‘ Фиксирование освобождаемой должности Worksheets(«Штатное расписание»).Cells(i + 1, 6).Value = _ CInt(Worksheets(«Штатное расписание»).Cells(i + 1, 6).Value) — 1 Exit For End If Next For i = 1 To NN If NewPodrazdel.Text = Worksheets(«Штатное расписание»).Cells(i + 1, 1).Value _ And Worksheets(«SHTAT»).Cells(i + 1, 2).Value = NewDolznost.Text Then ‘ Фиксирование занимаемой должности Worksheets(«Штатное расписание»).Cells(i + 1, 6).Value = _ CInt(Worksheets(«Штатное расписание»).Cells(i + 1, 6).Value) + 1 Oklad = Worksheets(«Штатное расписание»).Cells(i + 1, 4).Value Worksheets(«Основной»).Cells(Nom, 12).Value = Oklad Exit For End If Next MsgBox («Перевод выполнен») End Sub
Результат работы рассмотренных процедур показан на рис. 3.32.
Рис. 3.32. Результат изменений в штатном расписании
Источник