Tirage au sort cadeaux de Noël Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
b
buvette1
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 31 octobre 2017
Version d'Excel : 2010 FR

Message par buvette1 » 31 octobre 2017, 12:07

bonjour à tous,

Cela fait quelques années que pour les Noëls familiaux, nous avons décidé d'éviter la surenchère de cadeau: chacun se voit attribué par tirage au sort une personne a qui il est chargé de faire un unique cadeau.
Nous sommes une petite quinzaine, certains sont en couple, d'autre non.
Je suis chargé de faire la tirage au sort .
Chaque année c'est un peu le casse tête, car en gros, il ne faut ni tomber sur son conjoint pour ceux qui en ont, ni sur la personne a qui l'on a déjà fait un cadeau l'année dernière.
Du coup, j'ai crée un tirage aléatoire de l'ordre de la liste de nom, ce qui permets d'éviter le doublon de se faire son propre cadeau (et en plus à la côté sympathique de ne faire qu'une seule boucle mais c'est accessoire) mais ne résout en rien le problème d'éviter de faire un cadeau à son conjoint ou à la personne a qui l'on faisait déjà un cadeau l'année précédente.
Je me retrouve donc alors à refaire sans cesse le tirage au sort, jusqu'à éviter tous les problèmes de conjoints et de doublons de l'année précédente. En gros la liste ne convient jamais et je suis presque toujours obligé au bout d'un 50aine d'essais de tricher et de finir ma liste à l'ancienne avec des noms dans un chapeau (au moins quand ca ne va pas, on remets le nom dans le chapeau et on retire).

Je souhaiterais donc une bonne fois pour toute arriver à faire ce fichier qui me calculerait tout cela automatiquement.
Le problème c'est que je n'ai aucune idée de la bonne méthode pour arriver à mes fins.

Si quelqu'un peut m'aider ou m'indiquer la bonne piste pour faire cela, je lui en serais fortement reconnaissant.

Bonne journée à tous
Avatar du membre
bernard22
Membre dévoué
Membre dévoué
Messages : 865
Appréciations reçues : 8
Inscrit le : 26 mars 2015
Version d'Excel : 2013FR

Message par bernard22 » 31 octobre 2017, 12:28

Bonjour,
Merci de joindre le fichier que tu utilises.
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'698
Appréciations reçues : 645
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 31 octobre 2017, 12:34

Bonjour,
Merci de joindre mon cadeau de Noël. :lol:
b
buvette1
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 31 octobre 2017
Version d'Excel : 2010 FR

Message par buvette1 » 31 octobre 2017, 14:41

merci bernard22 pour ton aide.

Actuellement, j'ai fait ma liste sous google sheet, car la formule est plus simple à faire je crois:
j'ai mes noms en B1 jusqu'à B15

et ma formule
=sort(B1:B15;arrayFormula(randbetween(sign(row(B1:B15));1000000));true)

Ce qui fait que ca me fait une liste de ces noms dans un ordre aléatoire.
Je n'ai plus qu'à dire le premier de la liste fait un cadeau au 2ieme, qui fait un cadeau au 3ieme, jusqu'au dernier qui fait un cadeau au premier.
Ca permets d'éviter de se faire un cadeau à soi même.

Bon c'est sur google sheet, mais je crois que sous excel, on trouve ici plein d'exemples avec des macros:
Option Explicit

Sub Tirage()
Randomize
Dim I As Integer
Dim Sortie As Byte
Dim Top As Byte
Dim flag() As Integer
Top = 15 'Nbre de valeurs différentes
ReDim flag(Top)

For I = 1 To Top
  flag(I) = 1
Next I
 
For I = 1 To Top

 Sortie = Int(Rnd() * Top) + 1
                    If flag(Sortie) = 1 Then
                            flag(Sortie) = 0
                     
                    Else
                    While flag(Sortie) = 0
                    Sortie = Int(Rnd() * Top) + 1
                    Wend
                             flag(Sortie) = 0
                    End If
 
Worksheets("feuil1").Cells(I, 1).Value = Sortie
Next I

Worksheets("feuil1").Range("A1:B15").Sort Key1:=Range("A1"), Order1:=xlAscending

End Sub
Le problème c'est que cela n'intègre pas les conditions restrictives qui me compliquent la vie:

par exemple, B1 est marié avec B2, et l'année dernière il a fait un cadeau à B8, il ne faut donc pas qu'il puisse tomber cette année sur B2 et sur B8 (et évidemment sur lui même).
Et cette liste se complique au fur et à mesure du tirage car les choix possibles s'amenuisent au fur et à mesure que les gens ont déja étés choisis.
J'imagine que cela implique que plein de fois la boucle ne trouve aucune résolution (si le dernier n'a plus comme choix que son conjoint par exemple) et que elle devra alors se refaire jusqu'à trouver une issue favorable.

Pas simple quoi et cela dépasse mes capacités. En tout cas je ne vois pas comment le faire.


@dhany, c'est à double tranchant, une fois qu'on est sur la liste, on recoit un cadeau mais on est obligé d'en faire un également :D
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'698
Appréciations reçues : 645
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 31 octobre 2017, 14:51

Alors en voici un d'avance :  :[]:  ... et merci de préparer ma longue commande (de 3 pages) au Père Noël !  :noel:
b
buvette1
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 31 octobre 2017
Version d'Excel : 2010 FR

Message par buvette1 » 31 octobre 2017, 15:10

dhany a écrit :Alors en voici un d'avance :  :[]:  ... et merci de préparer ma longue commande (de 3 pages) au Père Noël !  :noel:
ha oui 3 pages quand même!
Loin de moi l'idée de briser tous vos rêves bien sûr, je ne veux pas être brutal, mais il me semble avoir entendu dire que, peut-être, il se pourrait que le père Noël ne soit pas tout à fait totalement véridique et que ce soit un peu romancé... Voila, on ne serait pas tout à fait sûr à 100% de l'existence du père Noël...

Je suis désolé si l'annonce vous parait violente, c'est une information à prendre avec des pincettes évidemment, Mais on peut légitimement émettre des doutes ou tout au moins quelques petites réserves sur cette histoire qui parait un peu incroyable quand même.
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'698
Appréciations reçues : 645
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 31 octobre 2017, 15:47

buvette1 a écrit :il se pourrait que le père Noël ne soit pas tout à fait totalement véridique et que ce soit un peu romancé...
Voila, on ne serait pas tout à fait sûr à 100% de l'existence du père Noël...
:gné:  quelle terrible nouvelle !  :(  mais c'est :nul: ça !!!  :-b  du coup, le choc à été si violent que je suis allé faire :dodo:
je suis donc indisponible pour une durée indéterminée, alors maintenant, laisse-moi hiberner en paix !  :lol: :lol: :lol:
(je sortirai peut-être de ma cataplexie au printemps prochain)  :mrgreen:

Avis à tous les enfants qui liraient ces messages hautement incompréhensibles pour vous : je crois que buvette1 a un peu trop bu ! ++U
alors surtout, les enfants, ne pleurez pas ! :snif:  je vous affirme que si vous êtes bien sages, le Père Noël passera vous voir, même
si vous êtes tout petits ... surtout si vous êtes tout petits.
:bb:
 
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 7'793
Appréciations reçues : 215
Inscrit le : 16 juin 2013
Version d'Excel : 2013 UK Windows 10

Message par h2so4 » 31 octobre 2017, 15:54

bonjour,

une proposition
buvette1.xlsm
(17.86 Kio) Téléchargé 213 fois
b
buvette1
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 31 octobre 2017
Version d'Excel : 2010 FR

Message par buvette1 » 31 octobre 2017, 16:45

merci h2so4,

cela m'a l'air fabuleux tout ça!!!

Un immense merci!!!
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message