Affectation de créneaux en fonction de disponibilités

Bonjour,

Je travaille dans une association en charge d'une boutique dont j'assure la logistique. Chaque semaine je dois m'assurer que des membres tiennent la caisse aux horaires d'ouverture. Pour cela je dois prendre les disponibilités ( sur toute la semaine ) de chaque membre et affecter, à chaque créneau de la semaine deux personnes pour assurer le service. Pour cela j'utilise Doodle, un site qui me permet de créer un événement ( staff boutique semaine x ) avec plusieurs choix de dates et de créneau et je partage le lien aux membres de mon association pour qu'ils cochent tous les créneaux ou ils sont disponibles. Je reçois les résultats et une fois que je les ai tous, je répartis manuellement les membres en fonction de leur disponibilités. Je publie ensuite un post facebook sur le groupe de mon association pour indiquer la répartition des créneaux.

Problème : C'est long et fastidieux. Il est possible d'exporter les résultats du sondage sous forme de fichier excel. Je me demandais si à partir de là il ne serait pas possible de générer automatiquement un planning avec deux personnes pour chaque créneaux. Je vous met un en pièce jointe un fichier type que je reçois. Les créneaux sont fixes, ce sont toujours les mêmes.

26excel-type.zip (7.65 Ko)

Je suis certain que des personnes ont déjà été confronté à ce problème avant moi et ont trouvé un moyen de l'automatiser ! Cela me ferait gagner énormément de temps dans mon travail.

Merci d'avance

Salut,

Je te propose la petite macro ci-dessous. L'idée est de parcourir chaque colonne et de remplacer les "OK" par "Remplaçant" tant que le nombre de "OK" est supérieur à 2. Et pour que les "OK" ne sautent pas toujours chez les mêmes personnes (les premières lignes), j'utilise des nombres aléatoires pour mélanger les participants.

Important: le tableau doit toujours être structuré à l'identique (les participants commencent toujours à la ligne 7, les heures vont de la colonne B à la colonne P etc.), sans quoi il faudra adapter le code.

Sub Macro1()

'Déterminer le nombre de participants en repérant la ligne "Nombre", et en enlevant 7 (les 6 lignes d'en-tête + la ligne avec "Nombre")

nbpart = Application.WorksheetFunction.Match("Nombre", Columns(1), 0) - 7

For i = 2 To 16

'Ajouter un nombre aléatoire dans la 17e colonne

For j = 7 To (nbpart + 6)
Cells(j, 17).Value = Rnd
Next j

'Trier le tableau selon ce nombre aléatoire

Range(Cells(7, 1), Cells(nbpart + 6, 17)).Sort Key1:=Range("Q7")

'Replacer les valeurs OK par "Remplaçant" dans la colonne i jusqu'à ce que le nombre de OK ne soit plus supérieur à 2 et mettre les cellules concernées en orange.

Cells(7, i).Select

While Application.CountIf(Columns(i), "OK") > 2

If ActiveCell.Value = "OK" Then
ActiveCell.Value = "Remplaçant"
Selection.Interior.ColorIndex = 45
End If

Cells(nbpart + 7, i).Value = Application.CountIf(Columns(i), "OK")

ActiveCell.Offset(1, 0).Select

Wend

'Afficher en rouge les dates où il y a moins de 2 personnes
Cells(nbpart + 7, i).Select

If ActiveCell.Value < 2 Then
Selection.Interior.Color = 255
End If

Next i

End Sub

J'ai finalement trouvé mon bonheur sur un autre topic

En voici le lien :

https://forum.excel-pratique.com/viewtopic.php?f=3&t=52363

Merci tout de même de votre réponse !

Rechercher des sujets similaires à "affectation creneaux fonction disponibilites"