Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Affichage aléatoire dans trois colonnes

2 réponses
Avatar
Guido
Salut à tous,
je voudrais faire apparaitre aléatoirement dans un tableau de trois
colonnes, les noms se trouvant dans le même tableau que la feuille 2. Chaque
lignes du tableau a trois colonnes et je voudrais qu'un seul nom de chaque
ligne s'affiche aléatoirement. Je donne comme exemple dans A1 = fleur
A2=arbre A3=buisson et qu'en appuyant sur F9 ou une autre touche, il y a
qu'un seul de ces noms qui s'affiche et non les trois.
merci pour l'aide.

Guido

2 réponses

Avatar
Francois
Salut à tous,
je voudrais faire apparaitre aléatoirement dans un tableau de trois
colonnes, les noms se trouvant dans le même tableau que la feuille 2. Chaque
lignes du tableau a trois colonnes et je voudrais qu'un seul nom de chaque
ligne s'affiche aléatoirement. Je donne comme exemple dans A1 = fleur
A2=arbre A3=buisson et qu'en appuyant sur F9 ou une autre touche, il y a
qu'un seul de ces noms qui s'affiche et non les trois.
(...)


Bonjour Guido,

En supposant tes données dans Feuil2 en A1:C1, la macro qui suit te
mettra une des 3 valeurs en A1:C1 sur Feuil1.
Il ne te reste plus qu'à l'affecter à un bouton que tu auras créé ou un
raccourci clavier selon ce que tu souhaites (je te déconseille F9 qui
est déjà affecté par défaut au recalcul dans Excel).

Sub affiche_alea()
Dim test
' ***********
' Efface les valeurs dans Feuil1
' ***********
Worksheets("Feuil1").Range("A1:C1").ClearContents
' ***********
' Génère un nombre aleatoire entre 1 et 3
' ***********
test = Int((3 * Rnd) + 1)
' ***********
' Met dans Feuil1 la valeur sélectionnée
' (au même emplacement que dans Feuil2)
' ***********
Worksheets("Feuil1").Cells(1, test) = _
Worksheets("Feuil2").Cells(1, test)
End Sub

--
François L

Avatar
AV
En supposant (à adapter) ta plage contenant les noms à sortir en A1:A10
Dans une cellule ailleurs :
=INDEX(A1:A10;ENT(ALEA()*(11-1)+1))
autre syntaxe :
=INDEX(A1:A10;ENT(ALEA()*(BorneSup-BorneInf)+BorneInf))
syntaxe générique :
=INDEX(Plage;ENT(ALEA()*(LIGNES(Plage)-LIGNE(Plage))+LIGNE(Plage)))

Chaque fois que tu feras F9 tu feras un tirage aléatoire d'un nom dans la
liste

AV