Microsoft 365 générateur de chiffres

  • Initiateur de la discussion Initiateur de la discussion Michest94
  • 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 !

Michest94

XLDnaute Occasionnel
Bonjour le forum 🙂

Je vous sollicite par rapport un générateur de chiffres (voir mon fichier joint pour info.)
Fichier exemple mis en condition ligne et colonne pour refaire à l'identique la proposition éventuelle faite.
Merci à vous pour votre aide
Michest94
 

Pièces jointes

Solution
C'était apparemment juste la formule pour déduire la ligne de sortie à partir du nombre de numéros du tirage qui vous posait problème. Écrivons le avec une variable L, ce sera plus simple
VB:
Sub Tirage()
   Dim TSrc(), LAt As New ListeAléat, TJn() As String, N As Integer, P As Byte, L As Long
   TSrc = ActiveSheet.[q14:q19].Value
   Randomize
   LAt.Init UBound(TSrc)
   L = 11
   For N = 5 To 2 Step -1
      LAt.Désordre
      ReDim TJn(1 To N)
      For P = 1 To N: TJn(P) = TSrc(LAt.Aléat(P), 1): Next P
      L = L + 2
      ActiveSheet.Cells(L, "S").Value = "'" & Join(TJn, "-")
      Next N
   End Sub
Bonjour à tous

Avec une fonction personnalisée trouvée sur

JHA
Re,

Parfait ! juste un détails dans la série généré il ne faut pas 2 fois le même numéro.
Principalement dans le tirage 5
 
Bonjour à tous,

Après plusieurs essais sur les boutons des tirages, il n'y a pas de doublon dans les listes.

JHA
Effectivement ce nouveau fichier est plus cohérent pour moi.
En revanche comme beaucoup de fois à chaque demande je n'arrive pas à greffer à l'identique de du fichier exemple.
je voulais le positionner en P13:T19
1629033030788.png

une galère pas possible je pense le garde en fichier annexe.
Merci beaucoup en tous les cas.
 
Bonjour.
Des dispositifs dans ce classeur

Édition: En munissant votre classeur du module de classe ListeAléat :
Re,
Votre solution proposé me plait plutôt bien, par contre mon niveau vba est plutôt tendance néophyte si cela ne vous dérange pas de me l'adapter sur mon fichier source j'en serais ravis.
A savoir que mon fichier source est un fichier à la base de gestion multi comptes ( rien à cacher ) ou bien entendu la partie vba n'est pas de moi.
J'ai voulu créer en annexe une feuille de jeux ( avec modération bien sur et control excel ) qui aurais du être indépendante après réflexion sur un nouveau classeur.
Afin de la dissocier du classeur multi comptes, est il est possible de me créer un nouveau classeur pmu à l'identique de la feuille en y mettant votre code vba pour le petit générateur de chiffres?
Merci beaucoup pour votre retour et aide.
 

Pièces jointes

C'était apparemment juste la formule pour déduire la ligne de sortie à partir du nombre de numéros du tirage qui vous posait problème. Écrivons le avec une variable L, ce sera plus simple
VB:
Sub Tirage()
   Dim TSrc(), LAt As New ListeAléat, TJn() As String, N As Integer, P As Byte, L As Long
   TSrc = ActiveSheet.[q14:q19].Value
   Randomize
   LAt.Init UBound(TSrc)
   L = 11
   For N = 5 To 2 Step -1
      LAt.Désordre
      ReDim TJn(1 To N)
      For P = 1 To N: TJn(P) = TSrc(LAt.Aléat(P), 1): Next P
      L = L + 2
      ActiveSheet.Cells(L, "S").Value = "'" & Join(TJn, "-")
      Next N
   End Sub
 
Bonjour
une petite fonction perso utilisable en mono cellule / matricielle
VB:
Function nbrealea(rng As range, mini, maxi)
    Dim tbl(), i, a, num
    ReDim tbl(1 To rng.Cells.Count)
    Do
        num = Round(Rnd * maxi)
        x = Application.IfError(Application.Match(num, tbl, 0), 0)
        If num > mini And x = 0 Then a = a + 1: tbl(a) = num
    Loop While a < UBound(tbl)
    With Application
        nbrealea = IIf(.ThisCell.Offset(1).Formula = .ThisCell.Formula, .Transpose(tbl), tbl)
    End With
End Function

en A1:A10 je met
en vertical
= nbrealea(A1:A10;44;100)


en horizontal
en C5:F5
=nbrealea(C5:F5;44;100)


et je valide en matricielle CTRL+ MAJ + ENTREE
44
c'est le plus petit numero et 100 le plus grand

dans une seule cellule je met exemple en C2
=nbrealea(C2;30;50) et
je valide sans matricielle
 
C'était apparemment juste la formule pour déduire la ligne de sortie à partir du nombre de numéros du tirage qui vous posait problème. Écrivons le avec une variable L, ce sera plus simple
VB:
Sub Tirage()
   Dim TSrc(), LAt As New ListeAléat, TJn() As String, N As Integer, P As Byte, L As Long
   TSrc = ActiveSheet.[q14:q19].Value
   Randomize
   LAt.Init UBound(TSrc)
   L = 11
   For N = 5 To 2 Step -1
      LAt.Désordre
      ReDim TJn(1 To N)
      For P = 1 To N: TJn(P) = TSrc(LAt.Aléat(P), 1): Next P
      L = L + 2
      ActiveSheet.Cells(L, "S").Value = "'" & Join(TJn, "-")
      Next N
   End Sub
Merci beaucoup tout fonctionne impeccable
1629049577898.png

Y'a plus qu'a ...
 
- 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

  • Question Question
Microsoft 365 Power Query
Réponses
8
Affichages
112
Retour