Fonction cellule aléatoire?

Bonjour,

J'ai encore besoin d'aide.

Cette fois-ci j'ai une liste et je voudrais faire apparaître dans une cellule une valeur prise aléatoirement dans la liste.

Comment est-ce possible? Y a-t-il une fonction Excel pour cela?

Salut Napolleon et le forum

Ta liste en colonne A

=INDEX(A:A;ENT(ALEA()*NBVAL(A:A))+1;1)

Mytå

Merci Myta

Cette formule c'est pour la colonne A, c'est ça? Mais de quelle ligne à quelle ligne?

Merci

Par exemple si ma liste initiale est de X63 à X78 comment c'est la formule?

Re Napolleon

Adapte ta plage =INDEX(B5:B8;ENT(ALEA()*NBVAL(B5:B8))+1;1)

Fais-ton effort quand même :)

Mytå

Edition : Correction Smileys

Ok

=INDEX(X63:X87;ENT(ALEA()*NBVAL(X63:X87))+1;1)

Lol en même temps

Eh ho Myta il est 3:20 du mat ici... La fatigue se fait sentir

J'ai honte...

Re le forum

Mon deuxième poste synchro, une autre avec Amadéus comme celui là.

Chanceux Napolleon qu'ici au Québec seulement 21:17

Mytå

Bonjour à tous!

Je reviens sur ces cellules aléatoires.

Maintenant j'ai une liste de chiffres. Je voudrais trouver la fonction qui prend une cellule aléatoire et réalise la moyenne de cette cellule avec la cellule qui lui est immédiatement supérieure.

Ex: J'ai la liste 2,6,4,7.

La fonction renverrait donc: moyenne(4,6)=5

ou moyenne(2,4)=3

Comment est-ce possible? (le problème apparent c'est que quand excel prend une cellule aléatoire il ne s'en souvient pas donc on ne peut pas référer à cette cellule donc pour prendre la suivante dans l'odre ça me semble impossible?)

Salut le forum

Si ta Plage est triée et sans doublons

Une fonction personnalisée

Function MoyAlea(Plage As Range)
Application.Volatile
Dim Nbre As Byte
Randomize
With Plage
Nbre = .Count
' Renvoie une valeur aléatoire comprise entre 1 et Nbre-1.
Nbre = Int((Nbre - 1) * Rnd) + 1
MoyAlea = (.Value2(Nbre, 1) + .Value2(Nbre + 1, 1)) / 2
End With
End Function

Mytå

Mytå a écrit :

Salut le forum

Si ta Plage est triée et sans doublons

Une fonction personnalisée

Function MoyAlea(Plage As Range)
Application.Volatile
Dim Nbre As Byte
Randomize
With Plage
Nbre = .Count
' Renvoie une valeur aléatoire comprise entre 1 et Nbre-1.
Nbre = Int((Nbre - 1) * Rnd) + 1
MoyAlea = (.Value2(Nbre, 1) + .Value2(Nbre + 1, 1)) / 2
End With
End Function

Mytå

Salut Myta!

Ce texte je le colle où? En fait j'ai jamais fait de fonction. Je sais faire des macros en visual basic, mais ça j'ai jamais fait avant... Je clique où?

Re le forum

Tu colles le texte dans un module standard, ensuite dans les fonctions (fx)

choisi personnalisée elle va apparaitre dans la liste.

Mytå

Bon j'ai fait ce que je pense être bon, j'ai créé une feuille sub() dans visual basic puis j'ai tout effacé et collé ton texte,

Ca marche!

Mais juste une question,

Que se passe-t-il si la valeur la plus haute de la liste est tirée comme valeur aléatoire? Ensuite il n'y a pas de valeur plus haute donc ta fonction magique fait la moyenne avec quel nombre?

Merci

Ok j'ai vu la stupidité de ma question car tu définis un nombre du rang 1 au rang n-1.

Bravo.

Rechercher des sujets similaires à "fonction aleatoire"