Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Tirage au sort pour Noël "Échange de cadeaux"

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Dominique Gagnon

XLDnaute Nouveau
Bonjour à tous, je veux créer un petit programme qui permettrait de faire une pige de cadeau de Noël !
En tenant compte des couples.
 
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. 🙂
 
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
 

Pièces jointes

Dernière édition:
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.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
221
Réponses
5
Affichages
436
Réponses
14
Affichages
370
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…