Récupérer une valeur au hasard parmi des cellules, sauf parmi les 0

Bonjour à tous,

Ça fait plusieurs heures que je bloque sur comment faire quelque chose :

J'ai une ligne de tableur qui contient dans chaque cellule, sur plusieurs centaines de colonnes, une formule qui affiche soit le numéro de la colonne (si les conditions sont remplies), soit un 0 (si les conditions ne sont pas remplies).

J'ai donc quelque chose qui ressemble à :

0 0 3 0 5 6 7 8 0 10 .....

J'essaye d'afficher (dans une autre case) le numéro d'une colonne qui n'a pas un 0, de manière aléatoire parmi les x colonnes qui contiennent autre chose qu'un 0.

Le but est d'avoir au hasard le numéro d'une colonne dont les conditions sont remplies.

J'ai essayé pas mal de choses avec les fonction INDEX et EQUIV mais je n'arrive pas à les faire travailler ensemble et je ne sais même pas si c'est la bonne piste. J'ai aussi essayé de créer une autre ligne en dessous avec une formule pour ne garder que les valeurs uniques (et donc supprimer tous les 0) et les coller entre elles (dans l'optique d'ensuite utiliser un simple nombre aléatoire pour récuperer une valeur au hasard), mais je n'ai pas réussi non plus.

Des idées ?

Merci !

Bonjour,

tu auras sûrement un magicien des formules qui va te sortir un lapin du chapeau.

je te propose une solution via une fonction personnalisée. (vba)

Function selal(r As Range)
    'selection aléatoire d'une valeur non nulle de la plage r
    n = r.Count - Application.CountIf(r, 0)
    If n = 0 Then
        selal = CVErr(xlErrValue)
    Else
        Do
            q = Application.RandBetween(1, r.Count)
            If r(q) <> 0 Then selal = r(q): Exit Function
        Loop
    End If
End Function

code à mettre dans un nouveau module.

appel de la fonction dans excel

=selal(plage)

Bonjour ephoris, h2so4 , le forum,

Après avoir pas mal miséré (je ne suis pas magicien ), voici un essai...(j'ai laissé ma version macro...mais quand je vois le code de h2so4, j'ai un peu honte )

54classeur1.xlsm (22.70 Ko)

Cordialement,

Merci BEAUCOUP ! Ça a fonctionné et c'est très utile pour moi !

Bonne journée et merci encore

Rechercher des sujets similaires à "recuperer valeur hasard sauf"