établir un planning intelligent

Bonjour,

J'organise des ateliers,

J'ai 12 ateliers de AT01 à AT12;

J'ai trois salles et j'organise deux ateliers par salle et par jour du Samedi au jeudi se qui me fait 36 ateliers par semaine,

je peux par exemple avoir pour une semaine "10" ateliers "AT01", "5" ateliers "AT02", "1" atelier "AT03"et "20" ateliers "AT12".

Je cherche a faire un programme pour avoir une distribution uniforme des ateliers sur mon planning de la semaine qui comporte 36 séances 6 par jour 2 par salle un a 10H00 et le second 14H00.

Merci pour votre aide;

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. Que veux-tu exactement ?

    Tu recherches de l'aide pour programmer ton planning ?

    Tu recherches quelqu'un pour le programmer ?
    1. Non je cherche une méthode pour pouvoir distribué d'un manière uniforme mes atelier sur le planning d'une semaine pour la programmation je m'en occupe.
      1. Ok

        il faut que tu explique davantage, car là c'est pas clair du tout.

        distribué d'une manière uniforme ? cad ?
        1. si tu veux on part sur discution instantané ? gmail skype msn ?
          1. mon planning est du samedi au jeudi un une séance a 10h00 une autre a 14h00

            et j'ai 12 ateliers différents, on peut avoir un atelier qui n'est pas programmé pour cette semaine comme il peut l'être n fois, et s'est la même chose pour tous les atelier.

            voila un exemple :

            "10" séances pour l'ateliers "AT01",
            "5" séances pour l'ateliers "AT02",
            "1" une séance pour l'atelier "AT03"
            et "20" séances pour l'ateliers "AT12".

            se qui fais 36 séances pour la semaine

            je cherche un algorithme a implémenté de telle manière a ne pas avoir 10 séance du même atelier ensuite 20 séance d'un autre puis 5 d'un autre... etc.

            Merci
            1. Contributeur
              Bonjour,

              une proposition avec répartition aléatoire :
              Sub repartition()
                  Dim ateliers(36) As String, lig As Long, col As Long
                  Dim nb As Long, cpt As Long, tmp As String, i As Long
                  'recup ateliers
                  For lig = 2 To 13
                      If Cells(lig, 2) > 0 Then
                          For nb = 1 To Cells(lig, 2)
                              cpt = cpt + 1
                              ateliers(cpt) = Cells(lig, 1)
                          Next nb
                      End If
                  Next lig
                  ' mélanger
                  Randomize
                  For cpt = 1 To 36
                      i = Int(Rnd() * 36 + 1)
                      tmp = ateliers(cpt)
                      ateliers(cpt) = ateliers(i)
                      ateliers(i) = tmp
                  Next cpt
                  ' remplir
                  cpt = 0
                  For lig = 2 To 7
                      For col = 6 To 11
                          cpt = cpt + 1
                          Cells(lig, col) = ateliers(cpt)
                      Next col
                  Next lig
              End Sub

              fichier exemple

              eric

              1. Merci Eric pour votre réponse mais je ne connais pas se longane de programmation je travail en java pourrais tu le traduire en algorithmique ou m'expliqué le principe sur un petit paragraphe Merci.
              2. Contributeur
                tu ouvres le fichier excel joint, il fait tout tout seul.
                Sinon en structure il n'y a que des for next, c'est pareil pour tous les langages.
                Demande si une instruction t'échappe...

                eric
              3. la macro ne fonction pas
              4. Contributeur
                en résumé :
                phase 1 : la liste des ateliers choisis dans une variable tableau de chaines.
                phase 2 : je mélange en permutant 2 à 2 les éléments du tableau
                phase 3 : je rempli les cellules
              5. merci bcp eriic tres sympa je pourrais te demandé un peux plus si ca ne te dérange pas bien sure ?