Numéros aléatoires

Résolu
Bonjour, je suis nouveau sur ce forum, j'espère bien respecter les règles.
Mon problème est le suivant:
En colonne A, je mets des "X" en face de gens qui s'inscrivent et qui font parti d'une liste qui en colonne B.
Je voudrais qu'on attribue un N° aléatoire à la place de chaque "X". La limite viendrait d'une cellule dans laquelle il y aurait un Nbval(A:A).
Merci d'avance pour l'attention que vous porterez à mon problème.

17 réponses

  1. SI, il semblerait. Je dis il semblerait parce que ça ne fonctionne pas. Mais je ne remets pas en cause la solution proposée, c'est moi qui part de bcp plus bas que la personne qui dit "Je gaze pas mal en Excel mais celle là je ne l'aurais pas trouvée.
    Je crains que ce ne soit trop long à ce que je "m'adapte"alors, je renonce.
    En tous les cas je tiens à féliciter et remercier tous ceux qui viennent se pencher sur les divers problèmes que les néophytes rencontrent
    Merci encore ...
    0
    1. Re,

      Il ne faut pas baisser les bras comme cela,
      le principal est de ne pas changer les explications, dans la première demande les X étaient en colonne B et sur cette dernière colonne A
      alors sur la base de ta première demande
      regarde ce fichier
      https://www.cjoint.com/c/GKElNdbwqIj
      0
      1. J'ai vu ta réponse et je te remercie infiniment de considérer ma demande.
        Ce n'est pas tout à fait ce que j'espérais.
        En fait , je voudrais par macro réaliser la chose suivante.
        Dans la colonne B, chaque "x" se transforme en un N° aléatoire (Pierre DAc disait que Aléatoire était une façon hasardeuse de se rendre dans les Deux Sèvres).
        Ce No aléatoire serait compris entre 1 et un Nbval de la colonne B qu'on mettrait dans une cellule.
        Je croise les doigts pour avoir bien présenter mon problème
        Encore merci
        0
        1. Contributeur
          Trebor25, j'aimerais beaucoup t'aider, mais je ne comprends pas ta question :
          En colonne A tu as des "X" ou rien.
          En colonne B tu as des noms.
          Tu veux une formule pour affecter un N° aléatoire aux noms pour lesquels il y a "X" en A.
          Mais comment mettre une formule qui affichera ce N° dans une cellule qui contient déjà "X" ! Ce N° sera donc forcément dans une troisième colonne.
          De plus il y a de fortes chances que le même N° sorte deux fois.
          Enfin ces N° vont changer à chaque modification apportée au fichier ...

          As-tu pensé à tout cela ?
          0
          1. Re,

            Pour écrire un code en VBA il faut être précis,
            si je résume ta demande, tu génères des X colonne B exemple 10 donc tu veux remplacer ces X par des numéros aléatoires de 1 à 10
            si c'est cela je te propose à partir d'un bouton générer dans une colonne une série de valeur en fonction du nombre de X et remplacer tes X par ces numéros.
            Si ça te va confirme le moi
            0
            1. Oui, c'est ça. Il y a des noms dans une colonne, disons la A. A chaque fois que qqun s'inscrit, je mets un "X" en face de son nom dans la colonne B. Quand les inscriptions sont closes, je lance une macro (Que je ne sais pas faire) et les "x" sont remplacés par un N° aléatoire tiré entre 1 et le nombre de "x".
              EX: Il y 40 noms en colonne A. Il y a 20 inscrits par des "x" en colonne B.
              A la cloture des inscriptions une macro vient remplacer les "X" par un no entre 1 et 20, tous différents evidemment (2 joueurs ne peuvent pas avoir le même N°) Et là, je peux lancer mon concours et me faire briller ... grâce à toi (Je plaisante).
              Maintenant ma demande n'est peut être pas réalisable.
              Quoi qu'il en soit je te renouvelle mes remerciements
              0
              1. Bonjour à tous

                Une possibilité sans macro, simplement par formules
                La formule ALEA.ENTRE.BORNES utilisée est fixés volontairement avec des bornes éloignés (1 et 10000) pour éviter 2 tirages identiques
                https://mon-partage.fr/f/xANCpxD7/

                Cdlmnt
                Via

                0
                1. Via, je regarde demain (il est 1h23 à ce moment) et je reviens te dire, mais ça semble être exactement ce que je cherchais.
                  Je teste en réel et je reviens te dire demain
                  Merci beaucoup
                  0
                  1. S U P E R !!!
                    Ca fonctionne impeccablement.
                    Voila un bon moment que je cherchais
                    Un grand merci à vous deux.
                    0
                    1. Contributeur
                      Bonjour à tous

                      via:
                      pour ma part, l'idée de 1-10000 me parait aléatoire, m^me si la proba de doublon est faible...

                      Mais la solution par macro m'a paru vicieuse à souhait !...

                      ci joint mon élucubration
                      ça se déclenche quand on écrit qqchose dans la colonne A (worksheetchange)

                      https://mon-partage.fr/f/GNp4zjHs/
                      0
                      1. Encore un truc, est-ce que je dois cocher un endroit pour dire que solution a été apportée à mon problème?
                        0
                        1. Re,

                          Ben il y a du beau monde ce matin bonjour à tous, voila une proposition VBA

                          https://www.cjoint.com/c/GLbjDLUGkFj

                          si tu dois avoir des X majuscule et minuscule en colonne B il suffit de l’intégrer au code
                          A+
                          Mike-31

                          Je suis responsable de ce que je dis, pas de ce que tu comprends...
                          0
                          1. Wouahhh que de réponses (Pourquoi j'ai pas posé la question avant moi aussi). La solution de Michel génère des Nos en fonction de la liste mais pas des inscrits. Ce qui fait que si 32 personnes se sont inscrites parmi 200, certaines auront le N° 33 ou 100 et quelques.
                            La solution de Mike est très bien, va falloir que je l'adapte à ma feuille, mais c'est ça, ça marche.
                            Michel dit que la solution de Via génère par moment un doublon. C'est vrai mais c'est rare et quand ça se présente, je les fais ressortir avec un MFC puis j'appuie sur F9.
                            En tous les cas merci à tous
                            Déception cependant : Ca me fait prendre conscience de mon niveau. Lol
                            Merci encore à vous
                            0
                            1. Contributeur
                              Ce qui fait que si 32 personnes se sont inscrites parmi 200, certaines auront le N° 33 ou 100 et quelques

                              pourtant tu avais écris
                              Je voudrais qu'on attribue un N° aléatoire à la place de chaque "X". La limite viendrait d'une cellule dans laquelle il y aurait un Nbval(A:A).

                              d'autre part
                              Ce qui fait que si 32 personnes se sont inscrites parmi 200, certaines auront le N° 33 ou 100 et quelques.

                              Faux !
                              derlig-1 donne le nombre de noms

                              s'il y a 20 noms
                              le tirage s'effectue entre 1 et 20
                              Code = Int(Rnd * (Derlig - 1)) + 1
                              0
                            2. @michel_mMichel, je m'en sers peut être mal mais quand je mets un x, il le transforme aussitôt en un N° (le 168) au 2ème x (127) puis 138 69 72 185 etc... Toujours dans cet ordre.
                              0
                            3. Contributeur
                              @Trebor85oui, j'ai regardé et je ne l'explique pas! :-/

                              hier j'ai eu des problèmes avec ce classeur excel....

                              sur une autre feuille; Je viens d'essayer une maquette sur la m^me principe et je n'ai pas ce problème....

                              mais si la proposition de Mike te va mieux vas y. le principal rst que tu comprennes son code pour que tu puisses assurer au boulot la maintenance et l'évolution de la procédure
                              0
                          2. Re,

                            voila le fichier avec le code annoté et j'ai apporté une modif pour qu'il s'adapte à la plage des X
                            https://www.cjoint.com/c/GLbkk68zj4j
                            0
                            1. Merci Mike, je vais l'exploiter sur mon programme dès que je le peux mais c'est parfait
                              0
                          3. Bonjour à tous

                            Une autre version, à y être ....
                            http://www.cjoint.com/c/GLbo4kH2PyB

                            Cdlmnt
                            0
                            1. Merci à tous pour votre aide.
                              Mon problème est résolu.
                              Merci encore.
                              Est-ce que je dois clôturer cette file ou faire qque chose?
                              0
                              1. Contributeur
                                Oui, en effet :
                                Juste au-dessus de ton premier message tu as 3 liens ; clique sur le dernier "Marquer comme résolu".
                                Cordialement.
                                0