formateur informatique

Affectation des postes de travail par roulements

Accueil  >  Bureautique  >  Excel  >  Excel Avancé  >  Affectation des postes de travail par roulements
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :


Inscription Newsletter    Abonner à Youtube    Vidéos astuces Instagram
Sujets que vous pourriez aussi aimer :


Affectation des équipes de travail par roulements

L'enjeu de cette formation Excel est de parvenir à automatiser l'affectation des salariés sur différents postes de travail. Mais contrairement à une formation précédente, il ne s'agit pas de réaliser une distribution aléatoire mais une affectation par roulement.

Dans l'exemple de l'application finalisée, illustrée ci-dessous, 5 salariés sont à affecter sur les 5 postesde travail pour les 52 semaines qui constituent une année. Le point de départ pour le poste 1 en semaine 1 doit être aléatoire. A partir du salarié ainsi positionné, un roulement naturel doit s'opérer sur les 52 semaines. En fonction de l'employé ainsi désigné, les affectations se produisent naturellement sur les autres postes. L'enjeu est qu'un salarié ne soit pas affecté sur deux postes différents pendant la même semaine.

Planning des affectations de postes de travail par roulements par calculs Excel

En cliquant sur le bouton Regénérer, l'affectation par roulement prend effet, à partir du premier employé généré aléatoirement. Comme vous le constatez, en haut à gauche du tableau, il est possible de sélectionner l'un des employés à mettre en valeur, par le biais d'une liste déroulante. C'est une mise en forme conditionnelle qui permet de repérer ses affectations de façon évidente. Tout d'abord, nous constatons que le roulement s'effectue parfaitement puisque l'employé est missionné une fois sur cinq pour un même poste. De même, la distribution s'opère dans les règles. Le salarié n'est pas affecté sur deux postes à la fois pour une même semaine.

Une mise en valeur dynamique orange, active sur certains salariés, attire l'attention. Il s'agit d'une alerte visuelle prévenant le responsable que ces personnes sont indisponibles aux dates prévues. C'est un tableau des indisponibilités situé dans une feuille annexe qui en réfère. Le responsable a donc tout le loisir de prendre les mesures afin de prévoir des solutions de remplacement.

Source et présentation de la problématique
Pour ne pas avoir à tout construire et pour disposer de données à manipuler, nous proposons de débuter les travaux depuis un classeur source. Ce classeur est donc constitué de deux feuilles. La première est nommée Affectations. Elle propose la structure du tableau dans lequel les salariés doivent être ventilés, au clic sur le bouton Regénérer. Pour réaliser ces affectations d'équipes par roulement, nous avons besoin de calculs intermédiaires. Ils serviront de base d'extraction pour remplir le tableau.

Ces calculs, pour la plupart, existent déjà dans la feuille Indisponibilités. Vous notez la présence d'un petit tableau référençant les salariés en colonne D. Il doit servir de base au tri aléatoire pour définir le point de départ de l'affectation par roulement.

Tableau Excel des salariés à trier aléatoirement pour affectations de poste aléatoirement

Juste en-dessous, toutes les absences sont listées dans une table à deux entrées, selon la semaine et le salarié. Elles pourront être mises à jour au fil du temps. Nos règles dynamiques de mise en valeur les intègreront à la volée.

Tableau Excel à deux entrées référançant les absences et indisponibilités des employés

Enfin, les calculs intermédiaires interviennent dans le tableau qui commence à partir de la colonne I. Ils produisent déjà les opérations permettant de simuler le roulement, mais sur des chiffres variant de 1 à 5 pour l'instant. Chacun de ces chiffres doit être associé à un salarié.

La formule est simple, en ligne comme en colonne. Vous pouvez la consulter en sélectionnant par exemple la cellule J7 :

=SI(J6+1<=5;J6+1;$J$2)

Si le chiffre précédent incrémenté d'une unité ne dépasse pas 5 (J6+1<=5), nous l'incrémentons (J6+1). Donc nous désignons numériquement le prochain salarié pour l'affectation au poste. Dans le cas contraire, nous repartons du chiffre 1, soit du premier salarié ($J$2). C'est ainsi que nous réalisons le roulement.

Bien sûr, il convient de transposer ce raisonnement sur les salariés. C'est pourquoi, à partir de la colonne O, nous effectuons l'extraction des noms des salariés. Cette extraction est produite par la fonction Excel RechercheV. En cherchant le numéro précédemment généré dans le petit tableau situé entre les colonnes C et D, nous restituons l'employé en toutes lettres :

=SIERREUR(RECHERCHEV(J2; $C$2:$D$6; 2; FAUX); '')

Extraire les employés à affecter par poste et par roulement grâce à une fonction Excel RechercheV

Point de départ aléatoire
L'affectation par roulement doit donc débuter à partir d'un salarié choisi au hasard. Nous proposons de trier aléatoirement le petit tableau des salariés, placé entre les colonnes D et E.
  • Sur la feuille Indisponibilités, sélectionner la plage de cellules B2:B6,
  • Taper la formule suivante : =Alea(),
  • Puis, valider le calcul par le raccourci clavier CTRL + Entrée,
Il s'agit d'une technique enseignée notamment par le livre pour débuter les calculs avec Excel. Elle permet de répliquer la logique d'un calcul sur une plage de cellules présélectionnées.

Générer des nombres aléatoires uniques avec la fonction Excel Alea

Contrairement à la fonction Excel Alea.Entre.Bornes, la fonction Alea génère des valeurs nécessairement uniques. Elles ne présentent donc aucune redondance. Mais comme vous le constatez, il s'agit de nombres réels, donc avec décimales. Qu'à cela ne tienne, nous souhaitons seulement les exploiter pour organiser un tri aléatoire des salariés. Ainsi nous laisserons le hasard définir le point de départ pour l'affectation par roulement.

Mais ce tri doit intervenir au clic sur le bouton de la feuille Affectations. Nous devons donc créer une macro. Cette dernière doit coller les valeurs détachées de leurs formules en colonne E puis réaliser le tri sur cette base. Comme pour toute fonction Excel, Alea est dynamique et le recalcul s'opère à chaque événement sur la feuille. Il est donc nécessaire de détacher ces nombres de leurs formules pour enclencher le tri sur ordre seulement.

Il est important de débuter la simulation des actions à enregistrer depuis la feuille Affectations.
  • Cliquer sur l'onglet Affectations en bas de la fenêtre Excel pour activer sa feuille,
  • Dans la section Code du ruban Développeur, cliquer sur le bouton Enregistrer une macro,
S'il n'est pas présent sur votre interface, la formation pour débuter la programmation en VBA Excel rappelle comment afficher ce ruban.
  • Dans la boîte de dialogue qui suit, la nommer : tri_alea (Sans espace),
  • Puis, cliquer sur le bouton Ok pour démarrer l'enregistrement,
  • Cliquer sur l'onglet Indisponibilités en bas de la fenêtre Excel pour activer sa feuille,
  • Sélectionner les nombres aléatoires, soit la plage de cellules B2:B6,
  • Les copier à l'aide du raccourci clavier CTRL + C par exemple,
  • Sélectionner la cellule de départ pour la destination, soit E2,
  • Cliquer sur l'onglet Accueil en haut de la fenêtre Excel pour activer son ruban,
  • Dans la section Presse-papiers, Cliquer sur la flèche du bouton Coller,
  • Dans la section Coller des valeurs de la liste, cliquer sur le bouton Valeurs,
Coller seulement les valeurs des nombres aléatoires détachés de leur formule

Nous devons exploiter ces nombres désormais détachés de leurs formules pour trier aléatoirement les salariés.
  • Sélectionner le tableau à trier, soit la plage de cellules D2:E6,
  • Cliquer sur l'onglet Données en haut de la fenêtre Excel pour activer son ruban,
  • Dans la section Trier et filtrer, cliquer sur le bouton Trier,
  • Dans la boîte de dialogue qui suit, choisir un Tri sur la colonne E grâce à la première liste déroulante,
  • Conserver l'ordre proposé par défaut,
  • Puis valider en cliquant sur le bouton Ok,
Le tri est désormais défini sur la colonne des valeurs aléatoires. A chaque clic sur le bouton, elles seront regénérées. Donc les salariés seront complètement réorganisés.
  • Cliquer sur l'onglet Affectations en bas de la fenêtre Excel pour afficher sa feuille,
  • Puis, sélectionner la cellule A1,
Ainsi, au clic sur le bouton depuis la feuille Affectations, le traitement s'effectue premièrement sur la feuille Indisponibilités. Une fois les actions terminées, le focus est rendu sur la première cellule de la feuille de départ. En conséquence, le changement de feuille est transparent pour l'utilisateur.
  • Cliquer sur l'onglet Développeur en haut de la fenêtre Excel pour activer son ruban,
  • Dans la section Code du ruban, cliquer sur le bouton Arrêter l'enregistrement,
La macro existe, mais à l'état virtuel pour l'instant, c'est-à-dire sous forme de code VBA. Nous devons l'attacher au bouton pour qu'elle s'exécute au clic sur ce dernier.
  • Sur la feuille Affectations, cliquer avec le bouton droit de la souris sur le bouton Regénérer,
  • Dans le menu contextuel, choisir Affecter une macro,
  • Dans la liste de la boîte de dialogue qui suit, sélectionner la macro tri_alea,
Déclencher une macro VBA pour organiser les données aléatoirement au clic sur un bouton de feuille Excel
  • Puis, cliquer sur le bouton Ok pour établir le lien,
  • Cliquer ensuite sur une cellule vide de la feuille pour désactiver la sélection du bouton,
  • Cliquer enfin sur le bouton Regénérer pour exécuter le traitement,
Les actions s'enchainent à la vitesse du processeur. A l'issue du processus, le focus est bien rendu à la cellule A1 de la feuille Affectations. Si vous consultez le tableau des salariés sur la feuille Indisponibilités, vous constatez qu'il a en effet été réorganisé.

Affectations des salariés par formules d'extraction
Il est temps de reproduire le raisonnement des affectations par roulement, pour les cinq postes du tableau de la feuille Affectations. Nous devons importer les noms des salariés inscrits entre les colonnes O et S de la feuille Indisponibilités. Cette importation doit être effectuée sur la correspondance des numéros de semaine. Il s'agit donc de l'élément à chercher. Nous choisissons d'exploiter une fois encore la précieuse fonction RechercheV.
  • Sélectionner la première cellule du calcul sur la feuille Affectations, soit C5,
  • Taper le symbole = pour débuter la formule,
  • Saisir le nom de la fonction d'extraction suivi d'une parenthèse, soit RechercheV(,
  • Désigner le numéro de semaine à chercher en cliquant sur la cellule B5,
  • Enfoncer trois fois de suite la touche F4 du clavier pour la figer seulement en colonne, ce qui donne : $B5,
Nous souhaitons répliquer ce calcul sur les colonnes des cinq postes. Mais pour chacun d'entre eux, la recherche doit continuer de se faire sur le numéro de semaine situé en colonne B. La colonne ne doit donc pas bouger. Par contre, pour les lignes du dessous, l'affectation par roulement doit considérer les numéros de semaine qui progressent. L'indice de ligne doit donc suivre le déplacement de la formule.
  • Taper un point-virgule (;) pour passer dans l'argument du tableau de recherche,
  • Cliquer sur l'onglet Indisponibilités en bas de la fenêtre Excel pour afficher sa feuille,
  • Sélectionner l'intégralité du tableau par ses étiquettes de colonne (De I à S), ou bien saisir ses références, ce qui donne : Indisponibilités!I:S,
  • Enfoncer la touche F4 du clavier pour figer ses bornes, soit : Indisponibilités!$I:$S,
  • Taper un point-virgule (;) pour passer dans l'argument du numéro de colonne de retour,
  • Saisir le chiffre 7,
En effet, les premiers salariés à extraire sont placés dans la colonne O. Cette dernière est la septième colonne de la sélection qui débute en colonne I. Le premier salarié est fidèlement restitué. La formule que nous avons bâtie est la suivante :

=RECHERCHEV($B5; Indisponibilités!$I:$S; 7; FAUX)
  • Tirer la poignée de la cellule C5 sur la droite jusqu'en G5,
Le calcul est répliqué mais restitue toujours le même salarié. C'est tout à fait logique. Même si nous avons judicieusement figé les cellules dans la formule, l'un des paramètres est une constante à adapter. Il s'agit du numéro de colonne qui ne suit pas le déplacement imposé.
  • Dans la formule en D5, remplacer le chiffre 7 par le 8, puis valider,
  • Dans la formule en E5, remplacer le chiffre 7 par le 9, puis valider,
  • Dans la formule en F5, remplacer le chiffre 7 par le 10, puis valider,
  • Dans la formule en G5, remplacer le chiffre 7 par le 11, puis valider,
Cette fois, chaque salarié est parfaitement réparti sur un poste indépendant.
  • Sélectionner l'ensemble de ces résultats, soit la plage de cellules C5:G5,
  • Puis, double cliquer sur la poignée située en bas à droite de la sélection,
De cette manière, nous répliquons le calcul sur la hauteur du tableau pour toutes les colonnes.

Comme vous le constatez, le roulement est parfaitement orchestré. De plus, aucune incohérence n'est détectée. Aucun salarié n'est affecté sur plusieurs postes à la fois pour une même semaine. C'est encore une fois la précieuse fonction d'extraction RechercheV qui a permis d'importer les données reproduisant la logique de ce fameux roulement.

Rappelons néanmoins sa contrainte fondamentale. Pour produire l'extraction, l'élément cherché doit nécessairement se trouver en première colonne du tableau de recherche. C'est bien le cas ici. La semaine cherchée est située en colonne I, soit la première colonne de la sélection.

Affecter automatiquement les employés sur les postes par roulements grâce à la fonction Excel Recherchev

Repérer les affectations d'un salarié
Pour simplifier la lecture et l'exploitation de ce tableau, nous devons faire ressortir dynamiquement un salarié, au choix de son nom par le biais de la liste déroulante située en B4. Il s'agit de répliquer la technique que nous avions mise en oeuvre dans la formation pour repérer une donnée dans un tableau. Une règle de mise en forme conditionnelle doit être bâtie sur l'ensemble des cellules du tableau. Cette règle consiste à vérifier l'égalité entre le nom du salarié et celui choisi dans la liste.
  • Sélectionner l'ensemble des cellules du tableau, soit la plage C5:G56,
  • Dans le ruban Accueil, cliquer sur le bouton Mise en forme conditionnelle,
  • Dans la liste, choisir Nouvelle règle,
  • Dans la boîte de dialogue qui suit, sélectionner le type : Utiliser une formule pour...,
  • Puis, cliquer dans la zone de saisie située juste en-dessous pour l'activer,
  • Taper le symbole = pour débuter la syntaxe de la règle,
  • Cliquer sur la cellule de la liste déroulante, soit B4,
  • Taper le symbole = pour l'égalité à vérifier,
  • Sélectionner le premier salarié du tableau, soit la cellule C5,
  • Enfoncer trois fois de suite la touche F4 du clavier pour la libérer dans son déplacement,
Le critère que nous venons de construire est le suivant :

=$B$4=C5

Chaque salarié doit être comparé au choix de l'utilisateur en B4. B4 est donc une cellule de référence que nous conservons figée ($B$4). Les salariés quant à eux doivent tous être passés en revue, c'est pourquoi nous défigeons C5. Si l'égalité est vérifiée, une mise en forme dynamique doit se déclencher.
  • Cliquer sur le bouton Format en bas de la boîte de dialogue,
  • Dans la boîte de dialogue qui suit, activer l'onglet Remplissage,
  • Dans la palette de couleurs, choisir un vert pâle,
  • Activer ensuite l'onglet Police de la boîte de dialogue,
  • Avec la liste déroulante des couleurs, choisir un Violet,
  • Puis cliquer sur le bouton Ok pour valider ces réglages de format dynamique,
Repérage dynamique des salariés répartis automatiquement par roulements dans un tableau Excel

Nous sommes de retour sur la première boîte de dialogue. Elle donne un aperçu des réglages de mise en forme qui seront déclenchés à chaque fois que le critère sera vérifié.
  • Valider de nouveau par le bouton Ok,
Vous remarquez que l'employé choisi est parfaitement repéré dans chacune de ses affectations. Au passage, nous validons ainsi le bon fonctionnement de l'affectation par roulement. Une même couleur n'est jamais présente deux fois sur une même ligne. De plus, l'employé est bien affecté sur un poste chaque semaine.

Si vous choisissez un autre salarié en B4, les couleurs se déplacent pour le repérer instantanément dans l'intégralité du tableau.

Alertes dynamiques sur les absences
Nous devons parfaire l'application pour alerter le responsable sur les incohérences des affections. Elles se produisent par roulement. Mais elles ne tiennent pas compte des indisponibilités des uns et des autres. Il s'agit donc de bâtir une nouvelle règle de mise en forme conditionnelle. Son critère doit recouper les informations du tableau des affectations avec celles du tableau des indisponibilités. Si pour une semaine donnée, le salarié est marqué comme indisponible, il doit ressortir dans une couleur attirant l'oeil immédiatement. Le responsable aura ainsi tout le loisir de prendre les dispositions qui s'imposent pour combler l'absence.

Pour établir cette correspondance dans le critère, nous devons exploiter les fonctions Index et Equiv. Comme vous le savez, elles permettent d'extraire de l'information d'un tableau, au croisement d'une ligne et d'une colonne. Ces variables de ligne et colonne seront évaluées par la fonction Equiv. Leurs syntaxes sont les suivantes :

=Index(Tableau_de_recherche ; Indice_de_ligne ; Indice_de_colonne)
=Equiv(Valeur_cherchée ; Rangée_de_recherche ; 0)


Pour l'indice de ligne, la fonction Equiv doit chercher le numéro de semaine en cours d'analyse par la mise en forme conditionnelle, dans la colonne de titre du tableau des indisponibilités. Pour l'indice de colonne, la fonction Equiv doit chercher le nom du salarié dans la ligne de titre du tableau des indisponibilités. Il s'agit donc d'une recherche dans une table à deux entrées. Si au croisement de ces deux indices, la fonction Index décèle la présence d'une information, nous en déduisons que l'employé est absent. En conséquence, nous devons déclencher des réglages de mise en forme.
  • Sélectionner de nouveau toutes les cellules du tableau des affectations, soit la plage C5:G56,
  • Dans le ruban Accueil, cliquer sur le bouton Mise en forme conditionnelle,
  • Dans la liste, choisir Nouvelle règle,
  • Dans la boîte de dialogue qui suit, sélectionner le type : Utiliser une formule pour...,
  • Cliquer dans la zone de saisie située juste en dessous pour l'activer,
  • Taper le symbole = pour débuter la syntaxe de la règle de mise en forme conditionnelle,
  • Saisir le nom de la fonction d'extraction suivi d'une parenthèse, soit Index(,
  • Cliquer sur l'onglet Indisponibilités en bas de la fenêtre Excel pour afficher sa feuille,
  • Sélectionner toutes les cellules du tableau des absences, soit la plage B9:G61,
  • Taper un point-virgule (;) pour passer dans l'argument de l'indice de ligne à trouver,
  • Saisir la fonction donnant la position d'un élément cherché suivie d'une parenthèse, soit Equiv(,
  • Cliquer sur l'onglet Affectations en bas de la fenêtre Excel pour activer sa feuille,
  • Sélectionner la première semaine à chercher, soit la cellule B5,
  • Enfoncer deux fois la touche F4 du clavier pour la libérer en ligne, ce qui donne : $B5,
Pour une même ligne du tableau des affectations, le repérage doit être réalisé sur le même numéro de semaine situé dans sa colonne qui ne bouge pas. Mais pour chaque ligne suivante, le numéro de semaine à considérer est bien le suivant. Il doit donc suivre le déplacement en ligne.
  • Taper un point-virgule (;) pour passer dans l'argument de la rangée de recherche,
  • Cliquer sur l'onglet Indisponibilités pour revenir sur sa feuille,
  • Sélectionner la colonne des semaines, soit la plage de cellules B9:B61,
  • Taper un point-virgule suivi du chiffre 0, soit : ;0 pour une correspondance exacte,
  • Fermer la parenthèse de la fonction Equiv,
A ce stade, la fonction Equiv est susceptible d'avoir retourné le numéro dynamique de ligne, dépendant de la semaine en cours d'analyse. Nous devons croiser cette recherche avec le numéro de colonne dynamique, dépendant du salarié en cours d'analyse.
  • Taper un point-virgule (;) pour passer dans l'argument de la colonne de la fonction Index,
  • Saisir de nouveau la fonction donnant la position d'un élément, suivie d'une parenthèse, soit Equiv(,
  • Cliquer sur l'onglet Affectations pour revenir sur sa feuille,
  • Sélectionner le tout premier salarié, soit la cellule C5,
  • Enfoncer trois fois la touche F4 du clavier pour la libérer totalement,
En effet, chaque salarié doit être passé en revue dans la recherche. La cellule doit donc se déplacer en ligne comme en colonne.
  • Taper un point-virgule (;) pour passer dans l'argument de la rangée de recherche,
  • Cliquer sur l'onglet Indisponibilités pour afficher sa feuille,
  • Sélectionner la ligne des salariés, soit la plage de cellules B9:G9,
  • Taper un point-virgule suivi du chiffre 0, soit : ;0 pour une correspondance exacte,
  • Fermer la parenthèse de la fonction Equiv,
A ce stade, les deux fonctions Equiv sont censées avoir retourné les variables sur l'indice de ligne et l'indice de colonne. La fonction Index peut donc effectuer le croisement des informations et extraire la donnée qui s'y trouve. Mais il s'agit d'un critère à vérifier. Il consiste à savoir si l'information trouvée est vide ou non.
  • Fermer la parenthèse de la fonction Index,
  • Taper le symbole inférieur suivi du symbole supérieur et de deux guillemets, soit <>'',
Cette inégalité consiste à vérifier que l'extraction n'est pas vide et donc, que le salarié est absent. Dans ce cas, nous devons lui appliquer une mise en valeur sans équivoque.
  • Cliquer sur le bouton Format situé en bas de la boîte de dialogue,
  • Dans l'onglet Remplissage, choisir un jaune-orangé,
  • Dans l'onglet Police, choisir un rouge rubis,
  • Valider ces réglages en cliquant sur le bouton Ok,
Repérer automatiquement les indisponibilités et absences des salariés dans tableau Excel par mise en forme conditionnelle

Comme précédemment, nous sommes de retour sur la boîte de dialogue pour la mise en forme conditionnelle. L'aperçu confirme la mise en valeur qui doit se déclencher dynamiquement si un salarié est repéré comme absent, la semaine de son affectation.
  • Valider de nouveau par Ok,
Comme vous le constatez, les couleurs de remplissage se déclenchent instantanément. Vous pouvez vérifier la cohérence de ces alertes avec les absences référencées dans le tableau des indisponibilités. Il n'y a aucune faille. Le responsable en est averti dynamiquement et instantanément. Il peut prendre les dispositions qui s'imposent. Il bénéficie désormais d'un outil lui permettant de répartir les salariés par roulement, tout en identifiant les remplacements à envisager. Si vous cliquez sur le bouton Générer, vous réorganisez les affectations. De fait, les couleurs dynamiques changent de position.

 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn