bonjour,
Je connnais tres mal Excel et je voudrais créer un mini "programme"
capable de me donner 400 jeux de loto. C'est à dire me donner 400 série
de 7 nombre différents compris entre 1 et 49.
J'ai pensé a =alea(1:49) mais ca peut tres bien me donner 2x le meme
nombre parmis les sept et avoir 2X ou plus la meme combinaison.
Quelqu'un a-t-il une idée ou une piste ?
http://disciplus.simplex.free.fr/classeursxl/gdybpr-lotos.zip -- Amicales Salutations Retirer A_S_ pour répondre. XL 97 / 2000 / 2002 Pour suivre le forum : news://msnews.microsoft.com/microsoft.public.fr.excel (Voulez-vous vous abonner ? -> Oui)
"HARPER BEN" a écrit dans le message de news:
bonjour, Je connnais tres mal Excel et je voudrais créer un mini "programme" capable de me donner 400 jeux de loto. C'est à dire me donner 400 série de 7 nombre différents compris entre 1 et 49. J'ai pensé a =alea(1:49) mais ca peut tres bien me donner 2x le meme nombre parmis les sept et avoir 2X ou plus la meme combinaison. Quelqu'un a-t-il une idée ou une piste ?
Bonjour,
Ceci peut être, à télécharger :
http://disciplus.simplex.free.fr/classeursxl/gdybpr-lotos.zip
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)
"HARPER BEN" <zeze@free.fr> a écrit dans le message de news:pan.2004.05.01.13.05.05.316555@free.fr...
bonjour,
Je connnais tres mal Excel et je voudrais créer un mini "programme"
capable de me donner 400 jeux de loto. C'est à dire me donner 400 série
de 7 nombre différents compris entre 1 et 49.
J'ai pensé a =alea(1:49) mais ca peut tres bien me donner 2x le meme
nombre parmis les sept et avoir 2X ou plus la meme combinaison.
Quelqu'un a-t-il une idée ou une piste ?
http://disciplus.simplex.free.fr/classeursxl/gdybpr-lotos.zip -- Amicales Salutations Retirer A_S_ pour répondre. XL 97 / 2000 / 2002 Pour suivre le forum : news://msnews.microsoft.com/microsoft.public.fr.excel (Voulez-vous vous abonner ? -> Oui)
"HARPER BEN" a écrit dans le message de news:
bonjour, Je connnais tres mal Excel et je voudrais créer un mini "programme" capable de me donner 400 jeux de loto. C'est à dire me donner 400 série de 7 nombre différents compris entre 1 et 49. J'ai pensé a =alea(1:49) mais ca peut tres bien me donner 2x le meme nombre parmis les sept et avoir 2X ou plus la meme combinaison. Quelqu'un a-t-il une idée ou une piste ?
Nicolas B.
Salut,
La macro suivante remplit les 7 colonnes de 400 lignes de la feuille sans qu'il y ait deux fois le même nombre sur la même ligne : Sub Loto() Randomize For i = 1 To 400 Cells(i, 1) = Int(50 * Rnd) For j = 2 To 7 a = Int(50 * Rnd) For k = 1 To j - 1 If a = Cells(i, k).Value Then a = Int(50 * Rnd): k = 0 Next Cells(i, j) = a Next Next End Sub
A+ -- Nicolas B.
bonjour, Je connnais tres mal Excel et je voudrais créer un mini "programme" capable de me donner 400 jeux de loto. C'est à dire me donner 400 série de 7 nombre différents compris entre 1 et 49. J'ai pensé a =alea(1:49) mais ca peut tres bien me donner 2x le meme nombre parmis les sept et avoir 2X ou plus la meme combinaison. Quelqu'un a-t-il une idée ou une piste ?
Salut,
La macro suivante remplit les 7 colonnes de 400 lignes de la feuille sans
qu'il y ait deux fois le même nombre sur la même ligne :
Sub Loto()
Randomize
For i = 1 To 400
Cells(i, 1) = Int(50 * Rnd)
For j = 2 To 7
a = Int(50 * Rnd)
For k = 1 To j - 1
If a = Cells(i, k).Value Then a = Int(50 * Rnd): k = 0
Next
Cells(i, j) = a
Next
Next
End Sub
A+
--
Nicolas B.
bonjour,
Je connnais tres mal Excel et je voudrais créer un mini "programme"
capable de me donner 400 jeux de loto. C'est à dire me donner 400
série de 7 nombre différents compris entre 1 et 49.
J'ai pensé a =alea(1:49) mais ca peut tres bien me donner 2x le meme
nombre parmis les sept et avoir 2X ou plus la meme combinaison.
Quelqu'un a-t-il une idée ou une piste ?
La macro suivante remplit les 7 colonnes de 400 lignes de la feuille sans qu'il y ait deux fois le même nombre sur la même ligne : Sub Loto() Randomize For i = 1 To 400 Cells(i, 1) = Int(50 * Rnd) For j = 2 To 7 a = Int(50 * Rnd) For k = 1 To j - 1 If a = Cells(i, k).Value Then a = Int(50 * Rnd): k = 0 Next Cells(i, j) = a Next Next End Sub
A+ -- Nicolas B.
bonjour, Je connnais tres mal Excel et je voudrais créer un mini "programme" capable de me donner 400 jeux de loto. C'est à dire me donner 400 série de 7 nombre différents compris entre 1 et 49. J'ai pensé a =alea(1:49) mais ca peut tres bien me donner 2x le meme nombre parmis les sept et avoir 2X ou plus la meme combinaison. Quelqu'un a-t-il une idée ou une piste ?
docm
Boujour Nicolas. Int(50 * Rnd) va donner un nombre entre 0 et 49. Pour avoir un nombre entre 1 et 49, il faudrait utiliser Int(49 * Rnd) + 1.
Amicalement Gérard
"Nicolas B." wrote in message news:
Salut,
La macro suivante remplit les 7 colonnes de 400 lignes de la feuille sans qu'il y ait deux fois le même nombre sur la même ligne : Sub Loto() Randomize For i = 1 To 400 Cells(i, 1) = Int(50 * Rnd) For j = 2 To 7 a = Int(50 * Rnd) For k = 1 To j - 1 If a = Cells(i, k).Value Then a = Int(50 * Rnd): k = 0 Next Cells(i, j) = a Next Next End Sub
A+ -- Nicolas B.
bonjour, Je connnais tres mal Excel et je voudrais créer un mini "programme" capable de me donner 400 jeux de loto. C'est à dire me donner 400 série de 7 nombre différents compris entre 1 et 49. J'ai pensé a =alea(1:49) mais ca peut tres bien me donner 2x le meme nombre parmis les sept et avoir 2X ou plus la meme combinaison. Quelqu'un a-t-il une idée ou une piste ?
Boujour Nicolas.
Int(50 * Rnd) va donner un nombre entre 0 et 49.
Pour avoir un nombre entre 1 et 49, il faudrait utiliser Int(49 * Rnd) + 1.
Amicalement
Gérard
"Nicolas B." <nicolas.bruot@adresse.bidon.com> wrote in message
news:OPwsMS4LEHA.128@TK2MSFTNGP09.phx.gbl...
Salut,
La macro suivante remplit les 7 colonnes de 400 lignes de la feuille sans
qu'il y ait deux fois le même nombre sur la même ligne :
Sub Loto()
Randomize
For i = 1 To 400
Cells(i, 1) = Int(50 * Rnd)
For j = 2 To 7
a = Int(50 * Rnd)
For k = 1 To j - 1
If a = Cells(i, k).Value Then a = Int(50 * Rnd): k = 0
Next
Cells(i, j) = a
Next
Next
End Sub
A+
--
Nicolas B.
bonjour,
Je connnais tres mal Excel et je voudrais créer un mini "programme"
capable de me donner 400 jeux de loto. C'est à dire me donner 400
série de 7 nombre différents compris entre 1 et 49.
J'ai pensé a =alea(1:49) mais ca peut tres bien me donner 2x le meme
nombre parmis les sept et avoir 2X ou plus la meme combinaison.
Quelqu'un a-t-il une idée ou une piste ?
Boujour Nicolas. Int(50 * Rnd) va donner un nombre entre 0 et 49. Pour avoir un nombre entre 1 et 49, il faudrait utiliser Int(49 * Rnd) + 1.
Amicalement Gérard
"Nicolas B." wrote in message news:
Salut,
La macro suivante remplit les 7 colonnes de 400 lignes de la feuille sans qu'il y ait deux fois le même nombre sur la même ligne : Sub Loto() Randomize For i = 1 To 400 Cells(i, 1) = Int(50 * Rnd) For j = 2 To 7 a = Int(50 * Rnd) For k = 1 To j - 1 If a = Cells(i, k).Value Then a = Int(50 * Rnd): k = 0 Next Cells(i, j) = a Next Next End Sub
A+ -- Nicolas B.
bonjour, Je connnais tres mal Excel et je voudrais créer un mini "programme" capable de me donner 400 jeux de loto. C'est à dire me donner 400 série de 7 nombre différents compris entre 1 et 49. J'ai pensé a =alea(1:49) mais ca peut tres bien me donner 2x le meme nombre parmis les sept et avoir 2X ou plus la meme combinaison. Quelqu'un a-t-il une idée ou une piste ?
Nicolas B.
Merci pour la correction :-)
A+ -- Nicolas B.
Boujour Nicolas. Int(50 * Rnd) va donner un nombre entre 0 et 49. Pour avoir un nombre entre 1 et 49, il faudrait utiliser Int(49 * Rnd) + 1.
Amicalement Gérard
"Nicolas B." wrote in message news:
Salut,
La macro suivante remplit les 7 colonnes de 400 lignes de la feuille sans qu'il y ait deux fois le même nombre sur la même ligne : Sub Loto() Randomize For i = 1 To 400 Cells(i, 1) = Int(50 * Rnd) For j = 2 To 7 a = Int(50 * Rnd) For k = 1 To j - 1 If a = Cells(i, k).Value Then a = Int(50 * Rnd): k = 0 Next Cells(i, j) = a Next Next End Sub
A+ -- Nicolas B.
bonjour, Je connnais tres mal Excel et je voudrais créer un mini "programme" capable de me donner 400 jeux de loto. C'est à dire me donner 400 série de 7 nombre différents compris entre 1 et 49. J'ai pensé a =alea(1:49) mais ca peut tres bien me donner 2x le meme nombre parmis les sept et avoir 2X ou plus la meme combinaison. Quelqu'un a-t-il une idée ou une piste ?
Merci pour la correction :-)
A+
--
Nicolas B.
Boujour Nicolas.
Int(50 * Rnd) va donner un nombre entre 0 et 49.
Pour avoir un nombre entre 1 et 49, il faudrait utiliser Int(49 *
Rnd) + 1.
Amicalement
Gérard
"Nicolas B." <nicolas.bruot@adresse.bidon.com> wrote in message
news:OPwsMS4LEHA.128@TK2MSFTNGP09.phx.gbl...
Salut,
La macro suivante remplit les 7 colonnes de 400 lignes de la feuille
sans qu'il y ait deux fois le même nombre sur la même ligne :
Sub Loto()
Randomize
For i = 1 To 400
Cells(i, 1) = Int(50 * Rnd)
For j = 2 To 7
a = Int(50 * Rnd)
For k = 1 To j - 1
If a = Cells(i, k).Value Then a = Int(50 * Rnd): k = 0
Next
Cells(i, j) = a
Next
Next
End Sub
A+
--
Nicolas B.
bonjour,
Je connnais tres mal Excel et je voudrais créer un mini "programme"
capable de me donner 400 jeux de loto. C'est à dire me donner 400
série de 7 nombre différents compris entre 1 et 49.
J'ai pensé a =alea(1:49) mais ca peut tres bien me donner 2x le meme
nombre parmis les sept et avoir 2X ou plus la meme combinaison.
Quelqu'un a-t-il une idée ou une piste ?
Boujour Nicolas. Int(50 * Rnd) va donner un nombre entre 0 et 49. Pour avoir un nombre entre 1 et 49, il faudrait utiliser Int(49 * Rnd) + 1.
Amicalement Gérard
"Nicolas B." wrote in message news:
Salut,
La macro suivante remplit les 7 colonnes de 400 lignes de la feuille sans qu'il y ait deux fois le même nombre sur la même ligne : Sub Loto() Randomize For i = 1 To 400 Cells(i, 1) = Int(50 * Rnd) For j = 2 To 7 a = Int(50 * Rnd) For k = 1 To j - 1 If a = Cells(i, k).Value Then a = Int(50 * Rnd): k = 0 Next Cells(i, j) = a Next Next End Sub
A+ -- Nicolas B.
bonjour, Je connnais tres mal Excel et je voudrais créer un mini "programme" capable de me donner 400 jeux de loto. C'est à dire me donner 400 série de 7 nombre différents compris entre 1 et 49. J'ai pensé a =alea(1:49) mais ca peut tres bien me donner 2x le meme nombre parmis les sept et avoir 2X ou plus la meme combinaison. Quelqu'un a-t-il une idée ou une piste ?
HARPER BEN
Merci beaucoup à tout les 2 pr ces infos : ca marche super bien. Si je pouvais juste demander un dernir p'tits truc.. comment faire pour ranger les nombres de chaque ligne par ordre croissant ? Avec outils trier c'est quasi-impossible : il faut le faire ligne par ligne. Merci encore
Merci beaucoup à tout les 2 pr ces infos : ca marche super bien. Si je
pouvais juste demander un dernir p'tits truc.. comment faire pour ranger les
nombres de chaque ligne par ordre croissant ? Avec outils trier c'est
quasi-impossible : il faut le faire ligne par ligne.
Merci encore
Merci beaucoup à tout les 2 pr ces infos : ca marche super bien. Si je pouvais juste demander un dernir p'tits truc.. comment faire pour ranger les nombres de chaque ligne par ordre croissant ? Avec outils trier c'est quasi-impossible : il faut le faire ligne par ligne. Merci encore
michdenis
Bonjour HARPER BEN,
Essaie ceci : Tu n'as qu'à appeler la macro Loto, et le tour est joué !
'------------------------------------------ Sub Loto()
Dim i As Integer, j As Integer, k As Integer
Randomize Application.ScreenUpdating = False For i = 1 To 400 Cells(i, 1) = Int(50 * Rnd) For j = 2 To 7 a = Int(50 * Rnd) For k = 1 To j - 1 If a = Cells(i, k).Value Then a = Int(49 * Rnd) + 1: k = 0 Next Cells(i, j) = a Next Next Trier Range(Cells(1, 1), Cells(400, 7))
End Sub '------------------------------------------ Sub Trier(rg As Range)
Set rg = Range("A1:G400") For Each r In rg.Rows With r .Sort Key1:=r, Order1:=xlAscending, Header:úlse _ , OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _ DataOption1:=xlSortNormal End With Next Set rg = Nothing End Sub '------------------------------------------
Salutations!
"HARPER BEN" a écrit dans le message de news:40941c14$0$27679$ Merci beaucoup à tout les 2 pr ces infos : ca marche super bien. Si je pouvais juste demander un dernir p'tits truc.. comment faire pour ranger les nombres de chaque ligne par ordre croissant ? Avec outils trier c'est quasi-impossible : il faut le faire ligne par ligne. Merci encore
Bonjour HARPER BEN,
Essaie ceci : Tu n'as qu'à appeler la macro Loto, et le tour est joué !
'------------------------------------------
Sub Loto()
Dim i As Integer, j As Integer, k As Integer
Randomize
Application.ScreenUpdating = False
For i = 1 To 400
Cells(i, 1) = Int(50 * Rnd)
For j = 2 To 7
a = Int(50 * Rnd)
For k = 1 To j - 1
If a = Cells(i, k).Value Then a = Int(49 * Rnd) + 1: k = 0
Next
Cells(i, j) = a
Next
Next
Trier Range(Cells(1, 1), Cells(400, 7))
End Sub
'------------------------------------------
Sub Trier(rg As Range)
Set rg = Range("A1:G400")
For Each r In rg.Rows
With r
.Sort Key1:=r, Order1:=xlAscending, Header:úlse _
, OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End With
Next
Set rg = Nothing
End Sub
'------------------------------------------
Salutations!
"HARPER BEN" <nospam@nospam.net> a écrit dans le message de news:40941c14$0$27679$636a15ce@news.free.fr...
Merci beaucoup à tout les 2 pr ces infos : ca marche super bien. Si je
pouvais juste demander un dernir p'tits truc.. comment faire pour ranger les
nombres de chaque ligne par ordre croissant ? Avec outils trier c'est
quasi-impossible : il faut le faire ligne par ligne.
Merci encore
Essaie ceci : Tu n'as qu'à appeler la macro Loto, et le tour est joué !
'------------------------------------------ Sub Loto()
Dim i As Integer, j As Integer, k As Integer
Randomize Application.ScreenUpdating = False For i = 1 To 400 Cells(i, 1) = Int(50 * Rnd) For j = 2 To 7 a = Int(50 * Rnd) For k = 1 To j - 1 If a = Cells(i, k).Value Then a = Int(49 * Rnd) + 1: k = 0 Next Cells(i, j) = a Next Next Trier Range(Cells(1, 1), Cells(400, 7))
End Sub '------------------------------------------ Sub Trier(rg As Range)
Set rg = Range("A1:G400") For Each r In rg.Rows With r .Sort Key1:=r, Order1:=xlAscending, Header:úlse _ , OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _ DataOption1:=xlSortNormal End With Next Set rg = Nothing End Sub '------------------------------------------
Salutations!
"HARPER BEN" a écrit dans le message de news:40941c14$0$27679$ Merci beaucoup à tout les 2 pr ces infos : ca marche super bien. Si je pouvais juste demander un dernir p'tits truc.. comment faire pour ranger les nombres de chaque ligne par ordre croissant ? Avec outils trier c'est quasi-impossible : il faut le faire ligne par ligne. Merci encore
michdenis
Bonjour HARPER BEN
Voici la même procédure .... mais plus rapide dans l'exécution ...
'------------------------------------------- Sub Loto()
Dim i As Integer, j As Integer, k As Integer Dim Tblo(), Rg As Range ReDim Tblo(1 To 400, 1 To 7) Randomize Application.ScreenUpdating = False For i = 1 To UBound(Tblo, 1) Tblo(i, 1) = Int(50 * Rnd) For j = 2 To 7 a = Int(50 * Rnd) 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 Set Rg = Nothing
End Sub '------------------------------------------- Sub Trier(Rg As Range)
Dim R As Range Set Rg = Range("A1:G400") For Each R In Rg.Rows With R .Sort Key1:=R, Order1:=xlAscending, Header:úlse _ , OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _ DataOption1:=xlSortNormal End With Next Set R = Nothing: Set Rg = Nothing End Sub '-------------------------------------------
Salutations!
"michdenis" a écrit dans le message de news:%23kC$ Bonjour HARPER BEN,
Essaie ceci : Tu n'as qu'à appeler la macro Loto, et le tour est joué !
'------------------------------------------ Sub Loto()
Dim i As Integer, j As Integer, k As Integer
Randomize Application.ScreenUpdating = False For i = 1 To 400 Cells(i, 1) = Int(50 * Rnd) For j = 2 To 7 a = Int(50 * Rnd) For k = 1 To j - 1 If a = Cells(i, k).Value Then a = Int(49 * Rnd) + 1: k = 0 Next Cells(i, j) = a Next Next Trier Range(Cells(1, 1), Cells(400, 7))
End Sub '------------------------------------------ Sub Trier(rg As Range)
Set rg = Range("A1:G400") For Each r In rg.Rows With r .Sort Key1:=r, Order1:=xlAscending, Header:úlse _ , OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _ DataOption1:=xlSortNormal End With Next Set rg = Nothing End Sub '------------------------------------------
Salutations!
"HARPER BEN" a écrit dans le message de news:40941c14$0$27679$ Merci beaucoup à tout les 2 pr ces infos : ca marche super bien. Si je pouvais juste demander un dernir p'tits truc.. comment faire pour ranger les nombres de chaque ligne par ordre croissant ? Avec outils trier c'est quasi-impossible : il faut le faire ligne par ligne. Merci encore
Bonjour HARPER BEN
Voici la même procédure .... mais plus rapide dans l'exécution ...
'-------------------------------------------
Sub Loto()
Dim i As Integer, j As Integer, k As Integer
Dim Tblo(), Rg As Range
ReDim Tblo(1 To 400, 1 To 7)
Randomize
Application.ScreenUpdating = False
For i = 1 To UBound(Tblo, 1)
Tblo(i, 1) = Int(50 * Rnd)
For j = 2 To 7
a = Int(50 * Rnd)
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
Set Rg = Nothing
End Sub
'-------------------------------------------
Sub Trier(Rg As Range)
Dim R As Range
Set Rg = Range("A1:G400")
For Each R In Rg.Rows
With R
.Sort Key1:=R, Order1:=xlAscending, Header:úlse _
, OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End With
Next
Set R = Nothing: Set Rg = Nothing
End Sub
'-------------------------------------------
Salutations!
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:%23kC$Kq8LEHA.1156@TK2MSFTNGP09.phx.gbl...
Bonjour HARPER BEN,
Essaie ceci : Tu n'as qu'à appeler la macro Loto, et le tour est joué !
'------------------------------------------
Sub Loto()
Dim i As Integer, j As Integer, k As Integer
Randomize
Application.ScreenUpdating = False
For i = 1 To 400
Cells(i, 1) = Int(50 * Rnd)
For j = 2 To 7
a = Int(50 * Rnd)
For k = 1 To j - 1
If a = Cells(i, k).Value Then a = Int(49 * Rnd) + 1: k = 0
Next
Cells(i, j) = a
Next
Next
Trier Range(Cells(1, 1), Cells(400, 7))
End Sub
'------------------------------------------
Sub Trier(rg As Range)
Set rg = Range("A1:G400")
For Each r In rg.Rows
With r
.Sort Key1:=r, Order1:=xlAscending, Header:úlse _
, OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End With
Next
Set rg = Nothing
End Sub
'------------------------------------------
Salutations!
"HARPER BEN" <nospam@nospam.net> a écrit dans le message de news:40941c14$0$27679$636a15ce@news.free.fr...
Merci beaucoup à tout les 2 pr ces infos : ca marche super bien. Si je
pouvais juste demander un dernir p'tits truc.. comment faire pour ranger les
nombres de chaque ligne par ordre croissant ? Avec outils trier c'est
quasi-impossible : il faut le faire ligne par ligne.
Merci encore
Voici la même procédure .... mais plus rapide dans l'exécution ...
'------------------------------------------- Sub Loto()
Dim i As Integer, j As Integer, k As Integer Dim Tblo(), Rg As Range ReDim Tblo(1 To 400, 1 To 7) Randomize Application.ScreenUpdating = False For i = 1 To UBound(Tblo, 1) Tblo(i, 1) = Int(50 * Rnd) For j = 2 To 7 a = Int(50 * Rnd) 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 Set Rg = Nothing
End Sub '------------------------------------------- Sub Trier(Rg As Range)
Dim R As Range Set Rg = Range("A1:G400") For Each R In Rg.Rows With R .Sort Key1:=R, Order1:=xlAscending, Header:úlse _ , OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _ DataOption1:=xlSortNormal End With Next Set R = Nothing: Set Rg = Nothing End Sub '-------------------------------------------
Salutations!
"michdenis" a écrit dans le message de news:%23kC$ Bonjour HARPER BEN,
Essaie ceci : Tu n'as qu'à appeler la macro Loto, et le tour est joué !
'------------------------------------------ Sub Loto()
Dim i As Integer, j As Integer, k As Integer
Randomize Application.ScreenUpdating = False For i = 1 To 400 Cells(i, 1) = Int(50 * Rnd) For j = 2 To 7 a = Int(50 * Rnd) For k = 1 To j - 1 If a = Cells(i, k).Value Then a = Int(49 * Rnd) + 1: k = 0 Next Cells(i, j) = a Next Next Trier Range(Cells(1, 1), Cells(400, 7))
End Sub '------------------------------------------ Sub Trier(rg As Range)
Set rg = Range("A1:G400") For Each r In rg.Rows With r .Sort Key1:=r, Order1:=xlAscending, Header:úlse _ , OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _ DataOption1:=xlSortNormal End With Next Set rg = Nothing End Sub '------------------------------------------
Salutations!
"HARPER BEN" a écrit dans le message de news:40941c14$0$27679$ Merci beaucoup à tout les 2 pr ces infos : ca marche super bien. Si je pouvais juste demander un dernir p'tits truc.. comment faire pour ranger les nombres de chaque ligne par ordre croissant ? Avec outils trier c'est quasi-impossible : il faut le faire ligne par ligne. Merci encore
GD
Bonsoir, une autre approche ;-))) peut-etre plus rapide !!!
Sub Tirages7_49_400() Application.ScreenUpdating = False Worksheets.Add '-------Plage de génération----------- Range("A1").Select ActiveCell.FormulaR1C1 = "=RAND()" Selection.AutoFill Destination:=Range("A1:A49"), Type:=xlFillDefault '-------Plage de tirage--------------- Range("B1").Select ActiveCell.FormulaR1C1 = "=RANK(RC[-1],R1C1:R49C1)" Selection.AutoFill Destination:=Range("B1:B7"), Type:=xlFillDefault '-------Plage de résultats ----------- Dim Resultat!, Tirage! Randomize Application.Calculation = xlCalculationManual With ActiveSheet For Resultat = 1 To 400 '-------recopie la plage de tirage dans la plage de résultat----- For Tirage = 1 To 7 .Cells(Resultat, 3 + Tirage).Value = .Cells(Tirage, 2).Value Next '-------nouvelle génération----------- Application.Calculate Next End With Application.Calculation = xlCalculationAutomatic [D1].CurrentRegion.Columns.AutoFit Application.ScreenUpdating = True End Sub
;-))) @+ "HARPER BEN" a écrit dans le message de news:
bonjour, Je connnais tres mal Excel et je voudrais créer un mini "programme" capable de me donner 400 jeux de loto. C'est à dire me donner 400 série de 7 nombre différents compris entre 1 et 49. J'ai pensé a =alea(1:49) mais ca peut tres bien me donner 2x le meme nombre parmis les sept et avoir 2X ou plus la meme combinaison. Quelqu'un a-t-il une idée ou une piste ?
Bonsoir,
une autre approche ;-)))
peut-etre plus rapide !!!
Sub Tirages7_49_400()
Application.ScreenUpdating = False
Worksheets.Add
'-------Plage de génération-----------
Range("A1").Select
ActiveCell.FormulaR1C1 = "=RAND()"
Selection.AutoFill Destination:=Range("A1:A49"), Type:=xlFillDefault
'-------Plage de tirage---------------
Range("B1").Select
ActiveCell.FormulaR1C1 = "=RANK(RC[-1],R1C1:R49C1)"
Selection.AutoFill Destination:=Range("B1:B7"), Type:=xlFillDefault
'-------Plage de résultats -----------
Dim Resultat!, Tirage!
Randomize
Application.Calculation = xlCalculationManual
With ActiveSheet
For Resultat = 1 To 400
'-------recopie la plage de tirage dans la plage de résultat-----
For Tirage = 1 To 7
.Cells(Resultat, 3 + Tirage).Value = .Cells(Tirage, 2).Value
Next
'-------nouvelle génération-----------
Application.Calculate
Next
End With
Application.Calculation = xlCalculationAutomatic
[D1].CurrentRegion.Columns.AutoFit
Application.ScreenUpdating = True
End Sub
;-)))
@+
"HARPER BEN" <zeze@free.fr> a écrit dans le message de news:
pan.2004.05.01.13.05.05.316555@free.fr...
bonjour,
Je connnais tres mal Excel et je voudrais créer un mini "programme"
capable de me donner 400 jeux de loto. C'est à dire me donner 400 série
de 7 nombre différents compris entre 1 et 49.
J'ai pensé a =alea(1:49) mais ca peut tres bien me donner 2x le meme
nombre parmis les sept et avoir 2X ou plus la meme combinaison.
Quelqu'un a-t-il une idée ou une piste ?
Bonsoir, une autre approche ;-))) peut-etre plus rapide !!!
Sub Tirages7_49_400() Application.ScreenUpdating = False Worksheets.Add '-------Plage de génération----------- Range("A1").Select ActiveCell.FormulaR1C1 = "=RAND()" Selection.AutoFill Destination:=Range("A1:A49"), Type:=xlFillDefault '-------Plage de tirage--------------- Range("B1").Select ActiveCell.FormulaR1C1 = "=RANK(RC[-1],R1C1:R49C1)" Selection.AutoFill Destination:=Range("B1:B7"), Type:=xlFillDefault '-------Plage de résultats ----------- Dim Resultat!, Tirage! Randomize Application.Calculation = xlCalculationManual With ActiveSheet For Resultat = 1 To 400 '-------recopie la plage de tirage dans la plage de résultat----- For Tirage = 1 To 7 .Cells(Resultat, 3 + Tirage).Value = .Cells(Tirage, 2).Value Next '-------nouvelle génération----------- Application.Calculate Next End With Application.Calculation = xlCalculationAutomatic [D1].CurrentRegion.Columns.AutoFit Application.ScreenUpdating = True End Sub
;-))) @+ "HARPER BEN" a écrit dans le message de news:
bonjour, Je connnais tres mal Excel et je voudrais créer un mini "programme" capable de me donner 400 jeux de loto. C'est à dire me donner 400 série de 7 nombre différents compris entre 1 et 49. J'ai pensé a =alea(1:49) mais ca peut tres bien me donner 2x le meme nombre parmis les sept et avoir 2X ou plus la meme combinaison. Quelqu'un a-t-il une idée ou une piste ?
michdenis
Désolé, mais il s'est glissé une petite erreur dans les procédures précédentes.
Si tu veux avoir le choix où tes données seront copiées dans le classeur, modifie dans la ligne de code suivante le nom de la feuille et l'adresse de la cellule ...dans la première procédure :
With Worksheets("Feuil2") Set Rg = .Range("h10").Resize(UBound(Tblo, 1), UBound(Tblo, 2)) End With
'------------------------------------------------- Sub Loto()
Dim i As Integer, j As Integer, k As Integer Dim Tblo(), Rg As Range ReDim Tblo(1 To 400, 1 To 7) Randomize Application.ScreenUpdating = False For i = 1 To UBound(Tblo, 1) Tblo(i, 1) = Int(50 * Rnd) For j = 2 To 7 a = Int(50 * Rnd) 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("Feuil2") Set Rg = .Range("h10").Resize(UBound(Tblo, 1), UBound(Tblo, 2)) End With Rg = Tblo Trier Rg Set Rg = Nothing
End Sub '------------------------------------------------- Sub Trier(Rg As Range)
Dim R As Range 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 '-------------------------------------------------
Salutations!
Désolé, mais il s'est glissé une petite erreur dans les procédures précédentes.
Si tu veux avoir le choix où tes données seront copiées dans le classeur, modifie dans la ligne de code suivante le nom
de la feuille et l'adresse de la cellule ...dans la première procédure :
With Worksheets("Feuil2")
Set Rg = .Range("h10").Resize(UBound(Tblo, 1), UBound(Tblo, 2))
End With
'-------------------------------------------------
Sub Loto()
Dim i As Integer, j As Integer, k As Integer
Dim Tblo(), Rg As Range
ReDim Tblo(1 To 400, 1 To 7)
Randomize
Application.ScreenUpdating = False
For i = 1 To UBound(Tblo, 1)
Tblo(i, 1) = Int(50 * Rnd)
For j = 2 To 7
a = Int(50 * Rnd)
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("Feuil2")
Set Rg = .Range("h10").Resize(UBound(Tblo, 1), UBound(Tblo, 2))
End With
Rg = Tblo
Trier Rg
Set Rg = Nothing
End Sub
'-------------------------------------------------
Sub Trier(Rg As Range)
Dim R As Range
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
'-------------------------------------------------
Désolé, mais il s'est glissé une petite erreur dans les procédures précédentes.
Si tu veux avoir le choix où tes données seront copiées dans le classeur, modifie dans la ligne de code suivante le nom de la feuille et l'adresse de la cellule ...dans la première procédure :
With Worksheets("Feuil2") Set Rg = .Range("h10").Resize(UBound(Tblo, 1), UBound(Tblo, 2)) End With
'------------------------------------------------- Sub Loto()
Dim i As Integer, j As Integer, k As Integer Dim Tblo(), Rg As Range ReDim Tblo(1 To 400, 1 To 7) Randomize Application.ScreenUpdating = False For i = 1 To UBound(Tblo, 1) Tblo(i, 1) = Int(50 * Rnd) For j = 2 To 7 a = Int(50 * Rnd) 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("Feuil2") Set Rg = .Range("h10").Resize(UBound(Tblo, 1), UBound(Tblo, 2)) End With Rg = Tblo Trier Rg Set Rg = Nothing
End Sub '------------------------------------------------- Sub Trier(Rg As Range)
Dim R As Range 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 '-------------------------------------------------
Salutations!
michdenis
Bonjour GD,
C'est bien, mais il manque un peu de vitesse si je compare à mon dernier message !!!
;-)))
P.S. n'oublie pas, il faut les trier !!!
Salutations!
"GD" a écrit dans le message de news:% Bonsoir, une autre approche ;-))) peut-etre plus rapide !!!
Sub Tirages7_49_400() Application.ScreenUpdating = False Worksheets.Add '-------Plage de génération----------- Range("A1").Select ActiveCell.FormulaR1C1 = "=RAND()" Selection.AutoFill Destination:=Range("A1:A49"), Type:=xlFillDefault '-------Plage de tirage--------------- Range("B1").Select ActiveCell.FormulaR1C1 = "=RANK(RC[-1],R1C1:R49C1)" Selection.AutoFill Destination:=Range("B1:B7"), Type:=xlFillDefault '-------Plage de résultats ----------- Dim Resultat!, Tirage! Randomize Application.Calculation = xlCalculationManual With ActiveSheet For Resultat = 1 To 400 '-------recopie la plage de tirage dans la plage de résultat----- For Tirage = 1 To 7 .Cells(Resultat, 3 + Tirage).Value = .Cells(Tirage, 2).Value Next '-------nouvelle génération----------- Application.Calculate Next End With Application.Calculation = xlCalculationAutomatic [D1].CurrentRegion.Columns.AutoFit Application.ScreenUpdating = True End Sub
;-))) @+ "HARPER BEN" a écrit dans le message de news:
bonjour, Je connnais tres mal Excel et je voudrais créer un mini "programme" capable de me donner 400 jeux de loto. C'est à dire me donner 400 série de 7 nombre différents compris entre 1 et 49. J'ai pensé a =alea(1:49) mais ca peut tres bien me donner 2x le meme nombre parmis les sept et avoir 2X ou plus la meme combinaison. Quelqu'un a-t-il une idée ou une piste ?
Bonjour GD,
C'est bien, mais il manque un peu de vitesse si je compare à mon dernier message !!!
;-)))
P.S. n'oublie pas, il faut les trier !!!
Salutations!
"GD" <nomail@nomail.net> a écrit dans le message de news:%231TzT18LEHA.2736@TK2MSFTNGP11.phx.gbl...
Bonsoir,
une autre approche ;-)))
peut-etre plus rapide !!!
Sub Tirages7_49_400()
Application.ScreenUpdating = False
Worksheets.Add
'-------Plage de génération-----------
Range("A1").Select
ActiveCell.FormulaR1C1 = "=RAND()"
Selection.AutoFill Destination:=Range("A1:A49"), Type:=xlFillDefault
'-------Plage de tirage---------------
Range("B1").Select
ActiveCell.FormulaR1C1 = "=RANK(RC[-1],R1C1:R49C1)"
Selection.AutoFill Destination:=Range("B1:B7"), Type:=xlFillDefault
'-------Plage de résultats -----------
Dim Resultat!, Tirage!
Randomize
Application.Calculation = xlCalculationManual
With ActiveSheet
For Resultat = 1 To 400
'-------recopie la plage de tirage dans la plage de résultat-----
For Tirage = 1 To 7
.Cells(Resultat, 3 + Tirage).Value = .Cells(Tirage, 2).Value
Next
'-------nouvelle génération-----------
Application.Calculate
Next
End With
Application.Calculation = xlCalculationAutomatic
[D1].CurrentRegion.Columns.AutoFit
Application.ScreenUpdating = True
End Sub
;-)))
@+
"HARPER BEN" <zeze@free.fr> a écrit dans le message de news:
pan.2004.05.01.13.05.05.316555@free.fr...
bonjour,
Je connnais tres mal Excel et je voudrais créer un mini "programme"
capable de me donner 400 jeux de loto. C'est à dire me donner 400 série
de 7 nombre différents compris entre 1 et 49.
J'ai pensé a =alea(1:49) mais ca peut tres bien me donner 2x le meme
nombre parmis les sept et avoir 2X ou plus la meme combinaison.
Quelqu'un a-t-il une idée ou une piste ?
C'est bien, mais il manque un peu de vitesse si je compare à mon dernier message !!!
;-)))
P.S. n'oublie pas, il faut les trier !!!
Salutations!
"GD" a écrit dans le message de news:% Bonsoir, une autre approche ;-))) peut-etre plus rapide !!!
Sub Tirages7_49_400() Application.ScreenUpdating = False Worksheets.Add '-------Plage de génération----------- Range("A1").Select ActiveCell.FormulaR1C1 = "=RAND()" Selection.AutoFill Destination:=Range("A1:A49"), Type:=xlFillDefault '-------Plage de tirage--------------- Range("B1").Select ActiveCell.FormulaR1C1 = "=RANK(RC[-1],R1C1:R49C1)" Selection.AutoFill Destination:=Range("B1:B7"), Type:=xlFillDefault '-------Plage de résultats ----------- Dim Resultat!, Tirage! Randomize Application.Calculation = xlCalculationManual With ActiveSheet For Resultat = 1 To 400 '-------recopie la plage de tirage dans la plage de résultat----- For Tirage = 1 To 7 .Cells(Resultat, 3 + Tirage).Value = .Cells(Tirage, 2).Value Next '-------nouvelle génération----------- Application.Calculate Next End With Application.Calculation = xlCalculationAutomatic [D1].CurrentRegion.Columns.AutoFit Application.ScreenUpdating = True End Sub
;-))) @+ "HARPER BEN" a écrit dans le message de news:
bonjour, Je connnais tres mal Excel et je voudrais créer un mini "programme" capable de me donner 400 jeux de loto. C'est à dire me donner 400 série de 7 nombre différents compris entre 1 et 49. J'ai pensé a =alea(1:49) mais ca peut tres bien me donner 2x le meme nombre parmis les sept et avoir 2X ou plus la meme combinaison. Quelqu'un a-t-il une idée ou une piste ?