Planning pour tâches de collaborateurs

Bonjour à tout le monde,

Je suis en train de faire sur excel un planning pour les tâches à affecter aux collaborateurs. Les tâches ont des durées variables, pour chacune d'entre elles, on renseigne heure début et heure de fin.

les colonne de mon fichier (Feuille F.Planning):

42planning.xlsm (102.17 Ko)
  • Une colonne pour renseigner le dossier pour lequel on programme une tâche
  • Une colonne pour le nom des personnes ( une personne peut être présente plusieurs fois dans la colonne)
  • Une colonne pour renseigner la heure de début
  • Une colonne pour renseigner la heure de fin
A ces colonnes-là d'autres colonnes se rajoutent; à savoir celles qui représentent les jours du mois (chaque jour du mois est matérialisé par une colonne, par exemple pour le mois août, j'aurai 31 colonnes.

Mes demandes

1- Comme une personne peut être présente plusieurs fois dans la colonne (donc à des ligne différentes), si je programme la personne pour une tâche le 1er août à une plage horaire précise, je ne dois plus pouvoir programmer la même personne pour la même plage horaire ( ou juste si chevauchement) et pour le même jour.

2- Griser au fur et à mesure que je renseigne les personnes et les plages horaires, griser les cellules du mois (de la colonne) devenues impossibles à programmer parce que j'ai déjà utilisé la plage horaire dans une autre tâche.

3- Est-il possible, avant de commencer le planning, de gérer les congés des personnes (un calendrier pour chaque personne) si bien que, dès que l'on positionne la personne, tous les jours où il est en congés, soient grisés.

4- Pour chaque dossier on alloue un certain nombre d'heures que l'on renseigne dans la feuille F.Dossier, Est-il possible de rajouter un code VBA pour contrôler si on ne dépasse pas le nombre d'heures allouées

Les autres feuilles sont pour créer des listes déroulantes (des tâches, des heures; des personnes et des dossiers)

Je vous serais reconnaissante si vous pouviez m'aider.

Cordialement

Rebonjour,

J'ai fait une première macro pour tester si pour une personne j'ai une tâche qui se chevauche avec une autre pour le jour. il me faut l'adapter pour chaque colonne (chaque jour aussi) et mettre des champs grisés

J'ai aussi un souci dans la boucle qui tourne sans fin si la condition if se réalise.

code à placer dans un module du classeur, on exécuté le code après avoir sélectionné l'heure de début dune tâche.

Sub test2()

If ActiveCell.Offset(0, -1).Value = ActiveCell.Offset(-1, -1).Value Then

Do While ActiveCell.Value = ActiveCell.Offset(-1, 0).Value

ActiveCell.Font.Color = vbRed

Loop

End If

End Sub

MErci

Rebonjour,

J'ai fait une première macro pour tester si pour une personne j'ai une tâche qui se chevauche avec une autre pour le jour. il me faut l'adapter pour chaque colonne (chaque jour aussi) et mettre des champs grisés

J'ai aussi un souci dans la boucle qui tourne sans fin si la condition if se réalise.

code à placer dans un module du classeur, on exécuté le code après avoir sélectionné l'heure de début dune tâche.

Sub test2()

If ActiveCell.Offset(0, -1).Value = ActiveCell.Offset(-1, -1).Value Then

Do While ActiveCell.Value = ActiveCell.Offset(-1, 0).Value

ActiveCell.Font.Color = vbRed

Loop

End If

End Sub

MErci

J'ai rajouté un exit Do pour sortir :

Juste un petit problème, après corrections , le rouge ne disparait

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Range("F9:G17")) Is Nothing Then

If ActiveCell.Offset(0, -1).Value = ActiveCell.Offset(-1, -1).Value Then

Do While ActiveCell.Value = ActiveCell.Offset(-1, 0).Value

ActiveCell.Interior.Color = vbRed

Exit Do

Loop

Else

ActiveCell.Interior.Color = xlAutomatic

End If

End If

End Sub

Rebonjour,

Je précise une des demandes :

NB:

Comme pour Bravo (1ere Ligne) j'ai mis une tâche au 1er août de 10h45 à 12h45, pour la deuxième ligne je ne peux pas mettre une autre tâche de 11h à 11h45 pour le 1er août (Mettre la cellule en rouge) mais pour le 2 août ou jours suivants,

Je dois donc tester pour toutes les lignes précédentes si je ne suis pas en train de programmer sur les mêmes plages horaires d'un même jour

Merci

Rebonjour,

J'ai fait une première macro pour tester si pour une personne j'ai une tâche qui se chevauche avec une autre pour le jour. il me faut l'adapter pour chaque colonne (chaque jour aussi) et mettre des champs grisés

J'ai aussi un souci dans la boucle qui tourne sans fin si la condition if se réalise.

code à placer dans un module du classeur, on exécuté le code après avoir sélectionné l'heure de début dune tâche.

Sub test2()

If ActiveCell.Offset(0, -1).Value = ActiveCell.Offset(-1, -1).Value Then

Do While ActiveCell.Value = ActiveCell.Offset(-1, 0).Value

ActiveCell.Font.Color = vbRed

Loop

End If

End Sub

MErci

J'ai rajouté un exit Do pour sortir :

Planning avec code dans la feuil 1 .xlsm

Juste un petit problème, après corrections , le rouge ne disparait

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Range("F9:G17")) Is Nothing Then

If ActiveCell.Offset(0, -1).Value = ActiveCell.Offset(-1, -1).Value Then

Do While ActiveCell.Value = ActiveCell.Offset(-1, 0).Value

ActiveCell.Interior.Color = vbRed

Exit Do

Loop

Else

ActiveCell.Interior.Color = xlAutomatic

End If

End If

End Sub

Rechercher des sujets similaires à "planning taches collaborateurs"