Tirage aléatoire en fonction d'un critère

Salut tout le monde,

Je viens vers vous pour trouver une solution à mon problème.

Je souhaite à travers excel faire un tirage aléatoire en fonction d'un critère.

Je m'explique, je voudrais en gros faire une RECHERCHEV aléatoire. Je voudrais chercher la valeur correspondante et si il y a plusieurs réponses qui correspondent, il faudrait alors faire un choix aléatoire parmi les réponses possibles.

L'idée serait de :

  • Rechercher la valeur dans une Base de donnée
  • Mettre en mémoire les réponses possibles
  • Faire un choix aléatoire d'une des réponses qui marchent
  • Afficher cette valeur
Je cherche depuis quelques jours et je n'arrive pas à trouver la solution. Malheureusement je pense qu'on est obligé de passer par une macro VBA.

Or je ne sais pas dutout comment faire... Quelqu'un peut-il m'aider ?

Salut et bienvenue sur le Forum,

Tu as un début de fichier ?

Cordialement.

Pour joindre un fichier ......

joindre un fichier

Cette fonction te fait une recherchev aleatoire, elle marche dans des subs, par contre elle ne marche pas sur le worksheet, je ne comprend pas pourquoi... Quelqu'un saurait-il pourquoi ?

Function recherchevaleatoire(r1 As Range, r2 As Range, i As Integer) As Variant
Dim tablo() As Variant, aleat As Integer
Application.Volatile True
Set x = r2.Find(r1.Value)
If Not x Is Nothing Then
    firstAddress = x.Address
    Do
        ReDim Preserve tablo(j)
        tablo(j) = x.Offset(0, CInt(i))
        Set x = r2.FindNext(x)
        j = j + 1
    Loop While Not x Is Nothing And x.Address <> firstAddress
End If
aleat = Application.WorksheetFunction.RandBetween(LBound(tablo), UBound(tablo))
recherchevaleatoire = tablo(aleat)
End Function

Sub toto()
y = recherchevaleatoire(Sheets("Feuil1").Range("A1"), Sheets("Feuil1").Range("A1:B4"), 1)
MsgBox (y)
End Sub

Edit: Yvouille, merci de checker le problème

Voilà pour le fichier test

Dans l'onglet Solution, je voudrais mettre le nom correspondant à la ville disponible dans la BDD. Or, dans la BDD, la même ville correspond à plusieurs nom. Donc, l'idée serait de choisir un nom parmis ceux qui correspondent au critère ville.

Un grand merci pour le temps passé

114test.xlsx (10.34 Ko)

Bonjour à tous,

Si tu tries par ville BDD tu peux le faire sans macro. En A2 :

=INDEX(DECALER(BDD!$A$1;EQUIV(B2;BDD!$A:$A;0)-1;1;NB.SI(BDD!$A:$A;B2););ALEA.ENTRE.BORNES(1;NB.SI(BDD!$A:$A;B2)))

Chaque recalcul de la feuille tire à nouveau les noms.

Faire un copier collage spécial valeur (dans une autre colonne éventuellement) si tu veux figer la liste.

eric

Oooo ! trop bien ca marche ! Un grand merci eric !

Rechercher des sujets similaires à "tirage aleatoire fonction critere"