Planning speed dating professionnel avec préférences

Bonjour à tous,

Je me permet de vous demander de l'aide car je dois créer algorithme de speed dating professionel et étant novice sur VBA je doute de la difficulté et de la faisabilité d'un tel code.

Le sujet plus clairement expliqué:

  • Un groupe de X personnes doit venir à un speed dating professionnel.
  • Elles auront chacune droit à Y rendez vous en face à face avec une autre personne du meme groupe.
  • Ces X personnes auront choisies au préalable les Y personnes avec qui elles aimeraient avoir un RDV.
  • L'algorithme devrait proposer la meilleure combinaison pour que :
- Chaque personne ait Y RDV

- Les choix soient respectés au mieux

Si ce n'est pas assez clair je tenterai d'éclaircir au mieux mais je doute réellement de la faisabilité d'un tel code. J'ai vu sur ce forum un post qui s'approchait de mon problème mais il ne prenait pas en compte les préferences et me semblait assez éloigné (https://forum.excel-pratique.com/excel/planning-speed-dating-business-t56005.html)

Merci d'avance à ceux qui pourront m'éclaircir sur ce sujet.

Très bonne soirée

Bonjour,

une proposition ...

Bonjour,

les X's et les Y's sont-ils dans des groupes distincts ? style postulants vs recruteurs ?

si oui, regarde si ceci peut t'aider.

https://forum.excel-pratique.com/viewtopic.php?f=2&t=116991&p=722003&hilit=planning+rendez+vous+professeurs#p722003

edit : je viens de voir que la demande date de 2017. Ce n'est sans doute plus d'actualité.

Bonjour,

ce sujet m'intéresse beaucoup... j'aimerais avoir quelques conseils, pas sur les avis speed dating bien-sûr mais sur la création d'algorithme sur VBA.

Bonjour,

ce n'est pas le plus simple des algorithmes !!

Function BERGER(p%, q%)
' auteur inconnu
Dim i%, j%, k%, r%
ReDim m(1 To p + p Mod 2 - 1, p + p Mod 2)
ReDim u%(p + p Mod 2)
    If p > 1 And p >= q And q > 0 Then
        r = 2 * ((q + 1) \ 2)
        For i = 1 To q
            If i < r Then m(i, 0) = i
            For j = 1 To q
                k = (((1 - ((i = r) Or (j = r))) * (i + j - 2)) Mod (r - 1) + 1) * ((i + j - (i > j)) Mod 2)
                If k Then
                    u(k) = u(k) + 2
                    m(k, u(k) - 1) = i
                    m(k, u(k)) = j
                End If
            Next j
        Next i
    End If
    BERGER = m
End Function

algorithme que j'ai repris et simplifié ici : https://www.excel-pratique.com/fr/telechargements/utilitaires/tables-berger-excel-no431

    Dim ba() As Variant, bs() As Variant, n() As Variant
    ReDim ba(1 To p / 2, 1 To 2 * (p - 1))
    ReDim bs(1 To p / 2, 1 To 2 * (p - 1))
    ReDim n(1 To p - 1)
    For i = 1 To p
        m = 2 * i - 1
        If m >= p Then m = m - p + 1
        For j = i + 1 To p
            If m = p Then m = 1
            If m = i - 1 Then m = 2 * (i - 1)
            If m >= p Then m = m - p + 1
            n(m) = n(m) + 1
            ba(n(m), 2 * m - 1) = t(i, 4): ba(n(m), 2 * m) = t(j, 4)
            bs(n(m), 2 * m - 1) = t(i, 1): bs(n(m), 2 * m) = t(j, 1)
            m = m + 1
        Next
    Next

Difficile de répondre à ta question assez générale ... que cherches-tu exactement ?

Rechercher des sujets similaires à "planning speed dating professionnel preferences"