Nombre aléatoire dans un ordre croissant

  • Initiateur de la discussion Initiateur de la discussion monkeymia
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

monkeymia

XLDnaute Nouveau
Bonjour,

Je cherche un code pour un tirage aléatoire de 5 numéros entre 1 et 50 en cellules A1:E1 et dont les nombres soient dans un ordre croissant et sans doublons, en vba.

Merci pour votre aide précieuse, je débutes mollement.
 
Re : Nombre aléatoire dans un ordre croissant

Bonjour Monkeymia, bonjour le forum,

Essaie comme ça :

Code:
Sub Macro1()
Dim PL As Range 'décalre la plage PL
Dim I As Byte 'déclare la variable I (Incrément)
Dim tmp As Byte 'déclare la variavle TMP (valeur TeMPoraire)

Set PL = Range("A1:E5") 'définit la plage PL
For I = 1 To 5 'boucle de 1 à 5
deb: 'étiquette
    Randomize 'lance le générateur de nombres aléatoire
    Cells(1, I).Value = Int((50 - 2) * Rnd + 1) 'place dans la cellule un nombre aléatoire entre 1 et 50
    'si le nombre d'occurrences de la cellule dans la plage PL est supérieur à 1, relance le générateur via l'étiquette "deb"
    If Application.WorksheetFunction.CountIf(PL, Cells(1, I).Value) > 1 Then GoTo deb
Next I 'prochain valeur de la boucle
'tri des valeurs
For I = 1 To 5
    For J = 1 To 5
        If Cells(1, I) < Cells(1, J) Then tmp = Cells(1, J): Cells(1, J) = Cells(1, I): Cells(1, I) = tmp
    Next J
Next I
End Sub
 
Re : Nombre aléatoire dans un ordre croissant

Re...


Bonjour,

Je cherche un code pour un tirage aléatoire de 5 numéros entre 1 et 50 en cellules A1:E1 et dont les nombres soient dans un ordre croissant et sans doublons, en vba.

Merci pour votre aide précieuse, je débutes mollement.
Vous n'avez pas dû chercher beaucoup !​
Code:
Sub toto()
Dim i%, j%, tmp%, v%(47)
  For i = 0 To 47: v(i) = i + 2: Next
  Randomize
  For i = 47 To 0 Step -1
     tmp = v(i): v(i) = v(Int((i + 1) * Rnd)): v(Int((i + 1) * Rnd(0))) = tmp
  Next
  For i = 0 To 3: For j = i + 1 To 4
    If v(i) > v(j) Then tmp = v(i): v(i) = v(j): v(j) = tmp
  Next j, i
  [A1].Resize(1, 5).Value = v
End Sub


Bonne soirée.


ℝOGER2327
#7413


Mardi 24 Merdre 141 (Sainte Purge, sage-femme - fête Suprême Quarte)
22 Prairial An CCXXII, 6,2988h - camomille
2014-W24-2T15:07:02Z


P.s. : Bonjour Robert.
 
Dernière édition:
Re : Nombre aléatoire dans un ordre croissant

Re

Je coinçais sur le tirage dans l'ordre croissant.

Merci pour les codes.

Imaginons plus difficile encore: une cellule dont la valeur varie en fonction du résultat de chaque cellule A1:E1 soit 1 soit 0 et appelée F1

A1 numéro aléatoire
si F1=1 alors recalculer A1 si non alors B1 numéro aléatoire croissant
si F1=1 alors recalculer B1 si non alors C1 numéro aléatoire croissant
si F1=1 alors recalculer C1 si non alors D1 numéro aléatoire croissant
si F1=1 alors reclaculer D1 si non alors E1 numéro aléatoire croissant
si F1=1 alors recalculer E1 si non alors endsub

Merci pour votre aide présente et future
 
Dernière édition:
Re : Nombre aléatoire dans un ordre croissant

Bonsour®
Imaginons plus difficile encore: une cellule dont la valeur varie en fonction du résultat de chaque cellule A1:E1 soit 1 soit 0 et appelée F1

A1 numéro aléatoire
si F1=1 alors recalculer A1 si non alors B1 numéro aléatoire croissant
si F1=1 alors recalculer B1 si non alors C1 numéro aléatoire croissant
si F1=1 alors recalculer C1 si non alors D1 numéro aléatoire croissant
si F1=1 alors reclaculer D1 si non alors E1 numéro aléatoire croissant
si F1=1 alors recalculer E1 si non alors endsub

Merci pour votre aide présente et future

😕 pur charabia ...🙁
la valeur varie en fonction du résultat de chaque cellule A1:E1 soit 1 soit 0 et appelée F1
en fonction de quel critère ???

proposition sans macro...🙄
 

Pièces jointes

Re : Nombre aléatoire dans un ordre croissant

Bonsoir,

Non il ne s'agit pas d'un concours.
Ou du moins, j'en appel au concours de certain doué de la programmation.
Certes à la lecture, c'est peu être difficile à comprendre.
Voyons si c'est plus clair:

- Les cellules A1:E1 représente un tirage type lotto.
- Il ressort d'un tirage quelconque un nombre de 10 pairs soit
A1-B1 A1-C1 A1-D1 A1-E1
B1-C1 B1-D1 B1-E1
C1-D1 C1-E1
D1-E1
-J'ai un tableau reprenant toutes les combinaisons pairs allant de 1 à 50 numéro.
Dès qu'une pair est crée aléatoirement, par ex A1-B1, automatiquement mon tableur l'enregistre et renvoi la variable 0 si cette paire
n'existait pas et 1 si la paire est doublon.
- Si la paire est doublon, je demande à Excell de recalculer aléatoirement la dernière cellule calculée soit B1 dans cet exemple.
- Et si la paire est unique, alors seulement je demande à Excell de calculer la valeur suivante soit C1.
- A nouveau mon tableur est mis à jour et renvoi la valeur 1 ou 0.
- Ainsi de suite jusqu'au 5ème chiffre soit E1.

Le tableur existe, il me manque le programme vba que je peine à construire. La variable de ce tableur dont seul le tirage à une influence sur sa valeur se nomme F1.

J'espère que cela est assez clair, et si pas nul besoin d'être injurieux.
Juste me dire ce qui n'est pas clair.

Merci pour votre science et patience.
 
Re : Nombre aléatoire dans un ordre croissant

Re...


J'ai autant de mal à comprendre que mes petits camarades. Toutefois :​
(...)
Le tableur existe, il me manque le programme vba que je peine à construire. (...)
Ça, je comprends. La bonne idée serait de nous montrer la chose, avec un exemple de solution étape par étape. On verra alors pour le code...

En attendant, j'ai bricolé un truc dont j'ignore s'il a un rapport avec le problème. À tout hasard, je livre. Peut-être y-a-t-il quelque chose à en tirer ?​


Bonne journée.


ℝOGER2327
#7414


Mercredi 25 Merdre 141 (Apparition d’Ubu Roi - fête Suprême Seconde)
23 Prairial An CCXXII, 1,0378h - chèvrefeuille
2014-W24-3T02:29:26Z
 

Pièces jointes

Re : Nombre aléatoire dans un ordre croissant

Bonjour le forum, Bonjour Roger2327,

Merci Roger2327 pour votre contribution.
J'ai testé votre programme, on se rapproche!
Voici le tableur.
Il y a une explication, bonne chance et merci à tous.
Bonne journée
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
79
Réponses
1
Affichages
221
Réponses
11
Affichages
259
Retour