Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

fonction ALEA

3 réponses
Avatar
Gigi
Bonjour à tous

Je cherche un exemple d'utilisation de la fonction ALEA ENTRE BORNES !
Comment creer une liste de 20 numeros de 50 à 70 par exemple où chaque N°
n'apparaitrait qu'une seule fois
Afin d'organiser une petite loterie entre Papy de mon âge Merci de m'aider

3 réponses

Avatar
gmlsteph
Bonjour,
Pas besoin d'entre bornes
En A2 tu mets 50 puis 51tu tires vers le bas
tu obtiens ta série de 50 à 69
en colonne B tu mets =alea() tout le long de ta série
puis tu trie les deux colonnes sur B

--
lSteph

On 16 mar, 15:09, "Gigi" wrote:
Bonjour tous

Je cherche un exemple d'utilisation de la fonction ALEA ENTRE BORNES !
Comment creer une liste de 20 numeros de 50 70 par exemple o chaque N
n'apparaitrait qu'une seule fois
Afin d'organiser une petite loterie entre Papy de mon ge Merci de m'aider


Avatar
MichDenis
Exemple : Pour faire 400 tirages d'un séquence de 7 chiffres
entre 1 et 49 . Chaque série est trier en ordre croissant.


Sub Loto()
Dim i As Integer, j As Integer, k As Integer
Dim Tblo(), Rg As Range, A As Integer
ReDim Tblo(1 To 400, 1 To 7)
Randomize
Application.ScreenUpdating = False
For i = 1 To UBound(Tblo, 1)
Tblo(i, 1) = Int((49 * Rnd) + 1)
For j = 2 To 7
A = Int((49 * Rnd) + 1)
For k = 1 To j - 1
If A = Tblo(i, k) Then A = Int((49 * Rnd) + 1): k = 0
Next
Tblo(i, j) = A
Next
Next

With Worksheets("Feuil1")
Set Rg = .Range("A1").Resize(UBound(Tblo, 1), UBound(Tblo, 2))
End With
Rg = Tblo
Trier Rg.Resize(, Rg.Columns.Count)
Application.ScreenUpdating = True
Set Rg = Nothing
End Sub
'--------------------------------------
Sub Trier(Rg As Range)

Dim R As Range, A As Integer
For Each R In Rg.Rows
With R
A = A + 1
.Sort Key1:=Rg(A, 1), Order1:=xlAscending, Header:úlse _
, OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End With
Next
Set R = Nothing: Set Rg = Nothing
End Sub
'--------------------------------------


"Gigi" a écrit dans le message de groupe de discussion :
#
Bonjour à tous

Je cherche un exemple d'utilisation de la fonction ALEA ENTRE BORNES !
Comment creer une liste de 20 numeros de 50 à 70 par exemple où chaque N°
n'apparaitrait qu'une seule fois
Afin d'organiser une petite loterie entre Papy de mon âge Merci de m'aider
Avatar
MichDenis
Pour faciliter la définition des variables de la procédure :

'---------------------------------------
Sub Loto1()
Dim i As Integer, j As Integer, k As Integer
Dim Tblo(), Rg As Range, A As Integer
Dim Mx As Integer, Mn As Integer
Dim Nb As Integer, Cb As Integer
Dim Feuille As String, Adr As String

'---------Seules variables à définir------------
Mx = 100 'Borne maximale
Mn = 50 'Borne minimale
Nb = 50 'Nombre de tirage
Cb = 10 'Nombre de chiffres par série
'Les données seront copiées sur la feuille :
Feuille = "Feuil2" ' nom de l'onglet
'Début de copie dans la cellule :
Adr = "A1"
'-------------------------------------------------
ReDim Tblo(1 To Nb, 1 To Cb)
Randomize
Application.ScreenUpdating = False
For i = 1 To UBound(Tblo, 1)
Tblo(i, 1) = Int((Mx - Mn + 1) * Rnd + Mn)
For j = 2 To Cb
A = Int((Mx - Mn + 1) * Rnd + Mn)
For k = 1 To j - 1
If A = Tblo(i, k) Then A = Int((Mx - Mn + 1) * Rnd + Mn): k = 0
Next
Tblo(i, j) = A
Next
Next

With Worksheets(Feuille)
Set Rg = .Range(Adr).Resize(UBound(Tblo, 1), UBound(Tblo, 2))
End With
Rg = Tblo
Trier Rg.Resize(, Rg.Columns.Count)
Application.ScreenUpdating = True
Set Rg = Nothing
End Sub

'---------------------------------------
Sub Trier(Rg As Range)
Dim R As Range, A As Integer
For Each R In Rg.Rows
With R
A = A + 1
.Sort Key1:=Rg(A, 1), Order1:=xlAscending, Header:úlse _
, OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End With
Next
Set R = Nothing: Set Rg = Nothing
End Sub
'--------------------------------------




"MichDenis" a écrit dans le message de groupe de discussion :

Exemple : Pour faire 400 tirages d'un séquence de 7 chiffres
entre 1 et 49 . Chaque série est trier en ordre croissant.


Sub Loto()
Dim i As Integer, j As Integer, k As Integer
Dim Tblo(), Rg As Range, A As Integer
ReDim Tblo(1 To 400, 1 To 7)
Randomize
Application.ScreenUpdating = False
For i = 1 To UBound(Tblo, 1)
Tblo(i, 1) = Int((49 * Rnd) + 1)
For j = 2 To 7
A = Int((49 * Rnd) + 1)
For k = 1 To j - 1
If A = Tblo(i, k) Then A = Int((49 * Rnd) + 1): k = 0
Next
Tblo(i, j) = A
Next
Next

With Worksheets("Feuil1")
Set Rg = .Range("A1").Resize(UBound(Tblo, 1), UBound(Tblo, 2))
End With
Rg = Tblo
Trier Rg.Resize(, Rg.Columns.Count)
Application.ScreenUpdating = True
Set Rg = Nothing
End Sub
'--------------------------------------
Sub Trier(Rg As Range)

Dim R As Range, A As Integer
For Each R In Rg.Rows
With R
A = A + 1
.Sort Key1:=Rg(A, 1), Order1:=xlAscending, Header:úlse _
, OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End With
Next
Set R = Nothing: Set Rg = Nothing
End Sub
'--------------------------------------


"Gigi" a écrit dans le message de groupe de discussion :
#
Bonjour à tous

Je cherche un exemple d'utilisation de la fonction ALEA ENTRE BORNES !
Comment creer une liste de 20 numeros de 50 à 70 par exemple où chaque N°
n'apparaitrait qu'une seule fois
Afin d'organiser une petite loterie entre Papy de mon âge Merci de m'aider