en A1 une valeur variable soit 1784
A partir de A1 , je souhaite obtenir 60 numéros uniques entiers dans les
cellules A7 à A66 en Visual Basic
J'ai essayé avec la fonction aléas entre bornes mais j ai des doublons
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
garnote
Salut Philippe,
À partir de A1 ???
Voici une macro donnant 60 entiers distincts compris entre 1 et la valeur contenue en A1 : Sub HasardSansDoublons() a = 1 b = Range("A1") n = 60 Set dico = CreateObject("Scripting.Dictionary") Do Until i = n v = Int((b - a + 1) * Rnd() + a) If Not dico.Exists(v) Then dico.Add v, v i = i + 1 End If Loop [a7].Resize(i) = Application.Transpose(dico.items) End Sub
Si j'ai mal saisi ta question, tiens-moi au courant.
Serge
"Philippe" a écrit dans le message de news: 4a75bde0$0$31097$
Bonjour a tous,
en A1 une valeur variable soit 1784 A partir de A1 , je souhaite obtenir 60 numéros uniques entiers dans les cellules A7 à A66 en Visual Basic J'ai essayé avec la fonction aléas entre bornes mais j ai des doublons
Merci de votre aide
Philippe
Salut Philippe,
À partir de A1 ???
Voici une macro donnant 60 entiers distincts
compris entre 1 et la valeur contenue en A1 :
Sub HasardSansDoublons()
a = 1
b = Range("A1")
n = 60
Set dico = CreateObject("Scripting.Dictionary")
Do Until i = n
v = Int((b - a + 1) * Rnd() + a)
If Not dico.Exists(v) Then
dico.Add v, v
i = i + 1
End If
Loop
[a7].Resize(i) = Application.Transpose(dico.items)
End Sub
Si j'ai mal saisi ta question, tiens-moi au courant.
Serge
"Philippe" <philippelaporte@free.fr> a écrit dans le message de news:
4a75bde0$0$31097$426a74cc@news.free.fr...
Bonjour a tous,
en A1 une valeur variable soit 1784
A partir de A1 , je souhaite obtenir 60 numéros uniques entiers dans les
cellules A7 à A66 en Visual Basic
J'ai essayé avec la fonction aléas entre bornes mais j ai des doublons
Voici une macro donnant 60 entiers distincts compris entre 1 et la valeur contenue en A1 : Sub HasardSansDoublons() a = 1 b = Range("A1") n = 60 Set dico = CreateObject("Scripting.Dictionary") Do Until i = n v = Int((b - a + 1) * Rnd() + a) If Not dico.Exists(v) Then dico.Add v, v i = i + 1 End If Loop [a7].Resize(i) = Application.Transpose(dico.items) End Sub
Si j'ai mal saisi ta question, tiens-moi au courant.
Serge
"Philippe" a écrit dans le message de news: 4a75bde0$0$31097$
Bonjour a tous,
en A1 une valeur variable soit 1784 A partir de A1 , je souhaite obtenir 60 numéros uniques entiers dans les cellules A7 à A66 en Visual Basic J'ai essayé avec la fonction aléas entre bornes mais j ai des doublons
Merci de votre aide
Philippe
MichDenis
Bonjour Garnote,
Je ne suis pas d'accord avec toi sur le titre de ta procédure "HasardSansDoublons" si tu n'ajoutes pas la commande : "Randomize"
;-)
"garnote" a écrit dans le message de groupe de discussion : # Salut Philippe,
À partir de A1 ???
Voici une macro donnant 60 entiers distincts compris entre 1 et la valeur contenue en A1 : Sub HasardSansDoublons() a = 1 b = Range("A1") n = 60 Set dico = CreateObject("Scripting.Dictionary") Do Until i = n v = Int((b - a + 1) * Rnd() + a) If Not dico.Exists(v) Then dico.Add v, v i = i + 1 End If Loop [a7].Resize(i) = Application.Transpose(dico.items) End Sub
Si j'ai mal saisi ta question, tiens-moi au courant.
Serge
"Philippe" a écrit dans le message de news: 4a75bde0$0$31097$
Bonjour a tous,
en A1 une valeur variable soit 1784 A partir de A1 , je souhaite obtenir 60 numéros uniques entiers dans les cellules A7 à A66 en Visual Basic J'ai essayé avec la fonction aléas entre bornes mais j ai des doublons
Merci de votre aide
Philippe
Bonjour Garnote,
Je ne suis pas d'accord avec toi sur le titre
de ta procédure "HasardSansDoublons"
si tu n'ajoutes pas la commande : "Randomize"
;-)
"garnote" <garnote3@videotron.ca> a écrit dans le message de groupe de discussion :
#iA5bF5EKHA.4932@TK2MSFTNGP04.phx.gbl...
Salut Philippe,
À partir de A1 ???
Voici une macro donnant 60 entiers distincts
compris entre 1 et la valeur contenue en A1 :
Sub HasardSansDoublons()
a = 1
b = Range("A1")
n = 60
Set dico = CreateObject("Scripting.Dictionary")
Do Until i = n
v = Int((b - a + 1) * Rnd() + a)
If Not dico.Exists(v) Then
dico.Add v, v
i = i + 1
End If
Loop
[a7].Resize(i) = Application.Transpose(dico.items)
End Sub
Si j'ai mal saisi ta question, tiens-moi au courant.
Serge
"Philippe" <philippelaporte@free.fr> a écrit dans le message de news:
4a75bde0$0$31097$426a74cc@news.free.fr...
Bonjour a tous,
en A1 une valeur variable soit 1784
A partir de A1 , je souhaite obtenir 60 numéros uniques entiers dans les
cellules A7 à A66 en Visual Basic
J'ai essayé avec la fonction aléas entre bornes mais j ai des doublons
Je ne suis pas d'accord avec toi sur le titre de ta procédure "HasardSansDoublons" si tu n'ajoutes pas la commande : "Randomize"
;-)
"garnote" a écrit dans le message de groupe de discussion : # Salut Philippe,
À partir de A1 ???
Voici une macro donnant 60 entiers distincts compris entre 1 et la valeur contenue en A1 : Sub HasardSansDoublons() a = 1 b = Range("A1") n = 60 Set dico = CreateObject("Scripting.Dictionary") Do Until i = n v = Int((b - a + 1) * Rnd() + a) If Not dico.Exists(v) Then dico.Add v, v i = i + 1 End If Loop [a7].Resize(i) = Application.Transpose(dico.items) End Sub
Si j'ai mal saisi ta question, tiens-moi au courant.
Serge
"Philippe" a écrit dans le message de news: 4a75bde0$0$31097$
Bonjour a tous,
en A1 une valeur variable soit 1784 A partir de A1 , je souhaite obtenir 60 numéros uniques entiers dans les cellules A7 à A66 en Visual Basic J'ai essayé avec la fonction aléas entre bornes mais j ai des doublons
Merci de votre aide
Philippe
MichDenis
Et j'ai oublié de mentionner que si tu ne fais pas de test sur la valeur en A1, si a1 affiche une valeur inférieure à 60, tu vas te retrouver dans une boucle sans fin !
"MichDenis" a écrit dans le message de groupe de discussion : # Bonjour Garnote,
Je ne suis pas d'accord avec toi sur le titre de ta procédure "HasardSansDoublons" si tu n'ajoutes pas la commande : "Randomize"
;-)
"garnote" a écrit dans le message de groupe de discussion : # Salut Philippe,
À partir de A1 ???
Voici une macro donnant 60 entiers distincts compris entre 1 et la valeur contenue en A1 : Sub HasardSansDoublons() a = 1 b = Range("A1") n = 60 Set dico = CreateObject("Scripting.Dictionary") Do Until i = n v = Int((b - a + 1) * Rnd() + a) If Not dico.Exists(v) Then dico.Add v, v i = i + 1 End If Loop [a7].Resize(i) = Application.Transpose(dico.items) End Sub
Si j'ai mal saisi ta question, tiens-moi au courant.
Serge
"Philippe" a écrit dans le message de news: 4a75bde0$0$31097$
Bonjour a tous,
en A1 une valeur variable soit 1784 A partir de A1 , je souhaite obtenir 60 numéros uniques entiers dans les cellules A7 à A66 en Visual Basic J'ai essayé avec la fonction aléas entre bornes mais j ai des doublons
Merci de votre aide
Philippe
Et j'ai oublié de mentionner que si tu ne fais pas
de test sur la valeur en A1, si a1 affiche une
valeur inférieure à 60, tu vas te retrouver dans
une boucle sans fin !
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de groupe de discussion :
#mcgkS5EKHA.3480@TK2MSFTNGP05.phx.gbl...
Bonjour Garnote,
Je ne suis pas d'accord avec toi sur le titre
de ta procédure "HasardSansDoublons"
si tu n'ajoutes pas la commande : "Randomize"
;-)
"garnote" <garnote3@videotron.ca> a écrit dans le message de groupe de discussion :
#iA5bF5EKHA.4932@TK2MSFTNGP04.phx.gbl...
Salut Philippe,
À partir de A1 ???
Voici une macro donnant 60 entiers distincts
compris entre 1 et la valeur contenue en A1 :
Sub HasardSansDoublons()
a = 1
b = Range("A1")
n = 60
Set dico = CreateObject("Scripting.Dictionary")
Do Until i = n
v = Int((b - a + 1) * Rnd() + a)
If Not dico.Exists(v) Then
dico.Add v, v
i = i + 1
End If
Loop
[a7].Resize(i) = Application.Transpose(dico.items)
End Sub
Si j'ai mal saisi ta question, tiens-moi au courant.
Serge
"Philippe" <philippelaporte@free.fr> a écrit dans le message de news:
4a75bde0$0$31097$426a74cc@news.free.fr...
Bonjour a tous,
en A1 une valeur variable soit 1784
A partir de A1 , je souhaite obtenir 60 numéros uniques entiers dans les
cellules A7 à A66 en Visual Basic
J'ai essayé avec la fonction aléas entre bornes mais j ai des doublons
Et j'ai oublié de mentionner que si tu ne fais pas de test sur la valeur en A1, si a1 affiche une valeur inférieure à 60, tu vas te retrouver dans une boucle sans fin !
"MichDenis" a écrit dans le message de groupe de discussion : # Bonjour Garnote,
Je ne suis pas d'accord avec toi sur le titre de ta procédure "HasardSansDoublons" si tu n'ajoutes pas la commande : "Randomize"
;-)
"garnote" a écrit dans le message de groupe de discussion : # Salut Philippe,
À partir de A1 ???
Voici une macro donnant 60 entiers distincts compris entre 1 et la valeur contenue en A1 : Sub HasardSansDoublons() a = 1 b = Range("A1") n = 60 Set dico = CreateObject("Scripting.Dictionary") Do Until i = n v = Int((b - a + 1) * Rnd() + a) If Not dico.Exists(v) Then dico.Add v, v i = i + 1 End If Loop [a7].Resize(i) = Application.Transpose(dico.items) End Sub
Si j'ai mal saisi ta question, tiens-moi au courant.
Serge
"Philippe" a écrit dans le message de news: 4a75bde0$0$31097$
Bonjour a tous,
en A1 une valeur variable soit 1784 A partir de A1 , je souhaite obtenir 60 numéros uniques entiers dans les cellules A7 à A66 en Visual Basic J'ai essayé avec la fonction aléas entre bornes mais j ai des doublons
Merci de votre aide
Philippe
LE TROLL
Bonjour,
Tu mets tes résultats dans une listBox, et tu compares pour enlever les doublons
Dim hasard As long dim maxi as long dim mini as long dim pasPositif as long dim i as long maxi = 1000 mini = 1 pasPositif = 1 list1.clear bis: Randomize hasard = Int((maxi - mini + pasPositif) * Rnd + mini) for i = 0 to list1.listcount - 1 if hasard = list1.list(list1.listindex) then goto bis next i list1.additem hasard if list1.listcount <> 60 then bis for i = 0 to 59 taCellule(x) = list1.list(i) next i list1.clear
"Philippe" a écrit dans le message de news:4a75bde0$0$31097$
Bonjour a tous,
en A1 une valeur variable soit 1784 A partir de A1 , je souhaite obtenir 60 numéros uniques entiers dans les cellules A7 à A66 en Visual Basic J'ai essayé avec la fonction aléas entre bornes mais j ai des doublons
Merci de votre aide
Philippe
Bonjour,
Tu mets tes résultats dans une listBox, et tu compares pour enlever les
doublons
Dim hasard As long
dim maxi as long
dim mini as long
dim pasPositif as long
dim i as long
maxi = 1000
mini = 1
pasPositif = 1
list1.clear
bis:
Randomize
hasard = Int((maxi - mini + pasPositif) * Rnd + mini)
for i = 0 to list1.listcount - 1
if hasard = list1.list(list1.listindex) then goto bis
next i
list1.additem hasard
if list1.listcount <> 60 then bis
for i = 0 to 59
taCellule(x) = list1.list(i)
next i
list1.clear
"Philippe" <philippelaporte@free.fr> a écrit dans le message de
news:4a75bde0$0$31097$426a74cc@news.free.fr...
Bonjour a tous,
en A1 une valeur variable soit 1784
A partir de A1 , je souhaite obtenir 60 numéros uniques entiers dans les
cellules A7 à A66 en Visual Basic
J'ai essayé avec la fonction aléas entre bornes mais j ai des doublons
Tu mets tes résultats dans une listBox, et tu compares pour enlever les doublons
Dim hasard As long dim maxi as long dim mini as long dim pasPositif as long dim i as long maxi = 1000 mini = 1 pasPositif = 1 list1.clear bis: Randomize hasard = Int((maxi - mini + pasPositif) * Rnd + mini) for i = 0 to list1.listcount - 1 if hasard = list1.list(list1.listindex) then goto bis next i list1.additem hasard if list1.listcount <> 60 then bis for i = 0 to 59 taCellule(x) = list1.list(i) next i list1.clear
"Philippe" a écrit dans le message de news:4a75bde0$0$31097$
Bonjour a tous,
en A1 une valeur variable soit 1784 A partir de A1 , je souhaite obtenir 60 numéros uniques entiers dans les cellules A7 à A66 en Visual Basic J'ai essayé avec la fonction aléas entre bornes mais j ai des doublons
Merci de votre aide
Philippe
Fredo P.
Public Sub alea() Dim c As Object, EQt% Dim Pl As Range Set Pl = Range("plg") 'pl.address For i = 1 To 60 Do EQt = Int([A1] * Rnd + 1) Loop Until Pl.Find(EQt) Is Nothing Pl(i) = EQt Next End Sub
"Philippe" a écrit dans le message de news: 4a75bde0$0$31097$
Bonjour a tous,
en A1 une valeur variable soit 1784 A partir de A1 , je souhaite obtenir 60 numéros uniques entiers dans les cellules A7 à A66 en Visual Basic J'ai essayé avec la fonction aléas entre bornes mais j ai des doublons
Merci de votre aide
Philippe
Public Sub alea()
Dim c As Object, EQt%
Dim Pl As Range
Set Pl = Range("plg") 'pl.address
For i = 1 To 60
Do
EQt = Int([A1] * Rnd + 1)
Loop Until Pl.Find(EQt) Is Nothing
Pl(i) = EQt
Next
End Sub
"Philippe" <philippelaporte@free.fr> a écrit dans le message de news:
4a75bde0$0$31097$426a74cc@news.free.fr...
Bonjour a tous,
en A1 une valeur variable soit 1784
A partir de A1 , je souhaite obtenir 60 numéros uniques entiers dans les
cellules A7 à A66 en Visual Basic
J'ai essayé avec la fonction aléas entre bornes mais j ai des doublons
Public Sub alea() Dim c As Object, EQt% Dim Pl As Range Set Pl = Range("plg") 'pl.address For i = 1 To 60 Do EQt = Int([A1] * Rnd + 1) Loop Until Pl.Find(EQt) Is Nothing Pl(i) = EQt Next End Sub
"Philippe" a écrit dans le message de news: 4a75bde0$0$31097$
Bonjour a tous,
en A1 une valeur variable soit 1784 A partir de A1 , je souhaite obtenir 60 numéros uniques entiers dans les cellules A7 à A66 en Visual Basic J'ai essayé avec la fonction aléas entre bornes mais j ai des doublons
Merci de votre aide
Philippe
Modeste
Bonsour® Philippe avec ferveur ;o))) vous nous disiez :
en A1 une valeur variable soit 1784 A partir de A1 , je souhaite obtenir 60 numéros uniques entiers dans les cellules A7 à A66 en Visual Basic J'ai essayé avec la fonction aléas entre bornes mais j ai des doublons
en B7 tu ecris : =ALEA() en A7 tu ecris : =$A$1+ RANG(B7;$B$7:$B$66)
tu selectionnes A7:B7 à l'aide de la poignée de recopie en bas à droite de B7 tu tires l'ensemble vers le bas jusque la ligne 66
tu entre une valeur en A1 tu appuie sur F9 pour generer une nouvelle serie ;o))) tu peux même masquer la colonne B
;o))) garanti sans doublons !!!!!
Bonsour® Philippe avec ferveur ;o))) vous nous disiez :
en A1 une valeur variable soit 1784
A partir de A1 , je souhaite obtenir 60 numéros uniques entiers dans
les cellules A7 à A66 en Visual Basic
J'ai essayé avec la fonction aléas entre bornes mais j ai des doublons
en B7 tu ecris : =ALEA()
en A7 tu ecris : =$A$1+ RANG(B7;$B$7:$B$66)
tu selectionnes A7:B7
à l'aide de la poignée de recopie en bas à droite de B7
tu tires l'ensemble vers le bas jusque la ligne 66
tu entre une valeur en A1
tu appuie sur F9 pour generer une nouvelle serie
;o)))
tu peux même masquer la colonne B
Bonsour® Philippe avec ferveur ;o))) vous nous disiez :
en A1 une valeur variable soit 1784 A partir de A1 , je souhaite obtenir 60 numéros uniques entiers dans les cellules A7 à A66 en Visual Basic J'ai essayé avec la fonction aléas entre bornes mais j ai des doublons
en B7 tu ecris : =ALEA() en A7 tu ecris : =$A$1+ RANG(B7;$B$7:$B$66)
tu selectionnes A7:B7 à l'aide de la poignée de recopie en bas à droite de B7 tu tires l'ensemble vers le bas jusque la ligne 66
tu entre une valeur en A1 tu appuie sur F9 pour generer une nouvelle serie ;o))) tu peux même masquer la colonne B