Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Choisir au hasard dans un tableau
Grâce à la
fonction Excel RechercheX couplée à la
fonction Alea.Entre.Bornes, nous allons voir avec quelle simplicité il est possible de
tirer une personne au
sort.
Sur l'exemple illustré par la capture, à chaque fois que l'utilisateur clique sur le
bouton intitulé
Nouveau tirage, une personne est
choisie au hasard. Toutes ses informations sont aussitôt importées dans la ligne bleue, au-dessus du tableau.
Classeur Excel à télécharger
Nous suggérons d'appuyer l'étude sur ce tableau des personnes.
Si vous déployez la
zone Nom en haut à gauche de la
feuille Excel, vous remarquez que la
colonne des identifiants est reconnue sous le
nom id tandis que le
tableau tout entier est identifié par la
plage nommée tab.
- Réaliser maintenant le raccourci clavier ALT + F11 pour basculer dans l'éditeur VBA Excel,
Comme vous pouvez le voir, une toute petite
procédure de code VBA existe.
Private Sub tirerAuSort_Click()
Application.Calculate
End Sub
Elle est associée au bouton placé en haut de la feuille. Grâce à la
méthode Calculate de l'
objet Application, chaque clic sur ce bouton ordonnera le
recalcul de toutes les formules. Donc, quand nous aurons bâti notre formule d'extraction, chaque clic procèdera à un
nouveau tirage au sort.
Chercher une ligne au hasard
Vous l'avez sans doute remarqué, la
colonne des identifiants (id) représente aussi les
numéros de ligne du tableau. C'est donc en produisant un
nombre aléatoire compris entre la
première et la
dernière de ces lignes que nous allons pouvoir demander à la
fonction RechercheX, de réaliser cette
extraction au hasard.
- Fermer l'éditeur VBA Excel pour revenir sur la feuille,
- Cliquer sur la cellule B4 pour désigner le point de départ de l'extraction,
- Taper le symbole égal (=) pour démarrer la construction de la formule,
- Inscrire la fonction matricielle d'extraction, suivie d'une parenthèse, soit : RechercheX(,
C'est tout de suite, dans son premier argument, en guise de valeur cherchée, que nous devons lui spécifier un
numéro aléatoire.
- Inscrire la fonction de génération aléatoire, suivie d'une parenthèse, soit : Alea.Entre.Bornes(,
- Taper le chiffre 1 pour désigner la borne inférieure de la génération aléatoire,
C'est ainsi que nous considérons la première ligne du tableau. Nous devons toutes les considérer, pour que le
tirage au sort soit totalement impartial. Comme vous le savez, c'est la
fonction Excel Lignes qui renseigne sur le
nombre de lignes contenues dans une plage qui lui est passée en paramètre.
- Taper un point-virgule (;) pour passer dans l'argument de la borne supérieure,
- Inscrire la fonction de décompte suivie d'une parenthèse, soit : Lignes(,
- Désigner le tableau tout entier par son nom, soit : tab,
- Fermer la parenthèse de la fonction Lignes,
- Puis, fermer la parenthèse de la fonction Alea.Entre.Bornes,
Cette
recherche du numéro aléatoire, nous devons l'exercer dans la première colonne du tableau, celle des
identifiants.
- Taper un point-virgule (;) pour passer dans l'argument du tableau de recherche,
- Désigner la colonne des identifiants par son nom, soit : id,
Tirer au sort la ligne complète
Grâce aux facultés matricielles de la
fonction RechercheX, comme nous l'avons démontré à l'occasion de précédents travaux, nous pouvons
extraire toutes les informations de la ligne choisie au hasard. Pour cela, nous devons désigner l'intégralité des données en guise de
tableau de retour.
- Taper un point-virgule (;) pour passer dans l'argument du tableau renvoyé,
- Puis, désigner toutes les données par le nom du tableau, soit : tab,
- Fermer la parenthèse de la fonction RechercheX,
- Enfin, valider la formule matricielle par la touche Entrée du clavier,
Comme vous pouvez l'apprécier, une ligne est en effet
choisie au hasard et complètement rapatriée.
De plus et grâce au petit
code VBA,
chaque clic sur le bouton déclenche à nouveau la
fonction RechercheX pour produire une
nouvelle extraction aléatoire.