Bonjour Dominique,
Qu'est ce qu' "ne pige de cadeau de Noël " ?
Ou encore "En tenant compte des couples." ?
N'étant ni devin, ni omniscience, fournissez un petit fichier test, avec de plus amples informations sur ce que vous attendez.
Donc si je comprends bien, on met tout le monde dans un chapeau, on tire au sort des paires de noms et ils ou elles repartent ensemble. Pour tenir compte des couples, on refuse ceux qui le sont déjà dans la vie. En gros, c'est l'échangisme généralisé à n couples (au lieu de deux). Bon, je sors...
Je crois que ce veut dire Dominique, c'est qu'il y a une liste cadeaux. A partir de là, on fait un tirage aléatoire des cadeaux qui seront remis à un couple qui lui aussi sera tiré au hasard. De cette façon, c'est le sort qui désigne le couple (personnes déjà en couple) et qui repart avec le cadeau.
Il faut créer une liste de noms dans une feuille et utiliser ce code vba que j'avais en réserve (non testé)
VB:
Private noms As Collection
Sub InitialiserListe()
Dim ws As Worksheet
Dim rng As Range
Dim nom As Range
' Définir la feuille et la plage de la liste de noms
Set ws = ThisWorkbook.Sheets("Feuille1") ' Change "Feuille1" par le nom de ta feuille
Set rng = ws.Range("A1:A10") ' Change la plage selon tes besoins
' Ajouter les noms de la plage dans une collection
Set noms = New Collection
For Each nom In rng
If nom.Value <> "" Then
noms.Add nom.Value
End If
Next nom
End Sub
Sub TirageAleatoire() - Macro à affecter à un bouton de commande dans une feuille
If noms Is Nothing Then
Call InitialiserListe
End If
If noms.Count > 0 Then
Randomize
Dim index As Long
index = Int(noms.Count * Rnd) + 1
MsgBox noms(index) ' Afficher le nom dans une MsgBox
noms.Remove index ' Supprimer le nom de la liste
Else
MsgBox "Tous les noms ont été tirés."
End If
End Sub
Bonjour,
Si je comprends bien, le tirage au sort doit se faire à partir des onglets des feuilles ?
Pour les Noms d'onglet vous pourriez utiliser Maxime 1, Maxime 2, ou alors les initiales du NOM par exemple
Voici un début. Dans la feuille "Base de donnée" vous avez 2 boutons "Tirage" et "Afficher".
En cliquant sur "Tirage", un onglet est tiré au sort. Lorsque vous revenez sur la feuille "Base de donnée", la dernière feuille sélectionnée est cachée. Le bouton "Afficher" sert à rendre de nouveau visible toutes les feuilles si nécessaire.