Est t'il possible de faire une fx Alea.entre.borne(1;20) que je vais tirer
sur 20 cellules mais que chaque résultat soit différent, c'est à dire que
sur les 20 cellules résultats, qu'il n'y ais jamais 2 fois le même nombre.
Merci
Manu
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
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
GL
Le 28/03/2015 13:31, Manu a écrit :
Bonjour,
Est t'il possible de faire une fx Alea.entre.borne(1;20) que je vais tirer sur 20 cellules mais que chaque résultat soit différent, c'est à dire que sur les 20 cellules résultats, qu'il n'y ais jamais 2 fois le même nombre.
Merci
Manu
Oui ça s'appelle une permutation aléatoire. Mais excel ne fournit pas la fonction. On peut faire :
sur A1:A20 : =ALEA() sur B1:B20 : =EQUATION.RANG(A1;$A$1:$A$20)
ce n'est pas super rigoureux, car si ALEA() renvoie deux fois le même nombre, EQUATION.RANG renverra aussi deux fois le même nombre : on n'aura donc pas une permutation, mais une surjection. Il y a moyen de contourner le problème (avec NB.SI notamment) mais la probabilité pour que ALEA() renvoie deux fois le même nombre est infinitésimale...
Florent.
Le 28/03/2015 13:31, Manu a écrit :
Bonjour,
Est t'il possible de faire une fx Alea.entre.borne(1;20) que je vais
tirer sur 20 cellules mais que chaque résultat soit différent, c'est à
dire que sur les 20 cellules résultats, qu'il n'y ais jamais 2 fois le
même nombre.
Merci
Manu
Oui ça s'appelle une permutation aléatoire. Mais excel ne fournit pas
la fonction. On peut faire :
sur A1:A20 : =ALEA()
sur B1:B20 : =EQUATION.RANG(A1;$A$1:$A$20)
ce n'est pas super rigoureux, car si ALEA() renvoie deux fois le même
nombre, EQUATION.RANG renverra aussi deux fois le même nombre : on
n'aura donc pas une permutation, mais une surjection. Il y a moyen
de contourner le problème (avec NB.SI notamment) mais la probabilité
pour que ALEA() renvoie deux fois le même nombre est infinitésimale...
Est t'il possible de faire une fx Alea.entre.borne(1;20) que je vais tirer sur 20 cellules mais que chaque résultat soit différent, c'est à dire que sur les 20 cellules résultats, qu'il n'y ais jamais 2 fois le même nombre.
Merci
Manu
Oui ça s'appelle une permutation aléatoire. Mais excel ne fournit pas la fonction. On peut faire :
sur A1:A20 : =ALEA() sur B1:B20 : =EQUATION.RANG(A1;$A$1:$A$20)
ce n'est pas super rigoureux, car si ALEA() renvoie deux fois le même nombre, EQUATION.RANG renverra aussi deux fois le même nombre : on n'aura donc pas une permutation, mais une surjection. Il y a moyen de contourner le problème (avec NB.SI notamment) mais la probabilité pour que ALEA() renvoie deux fois le même nombre est infinitésimale...
Florent.
Manu
Ca fonctionne très bien !
Merci Florent.
Manu
"GL" a écrit dans le message de groupe de discussion : 5516ad4a$0$3339$
Le 28/03/2015 13:31, Manu a écrit :
Bonjour,
Est t'il possible de faire une fx Alea.entre.borne(1;20) que je vais tirer sur 20 cellules mais que chaque résultat soit différent, c'est à dire que sur les 20 cellules résultats, qu'il n'y ais jamais 2 fois le même nombre.
Merci
Manu
Oui ça s'appelle une permutation aléatoire. Mais excel ne fournit pas la fonction. On peut faire :
sur A1:A20 : =ALEA() sur B1:B20 : =EQUATION.RANG(A1;$A$1:$A$20)
ce n'est pas super rigoureux, car si ALEA() renvoie deux fois le même nombre, EQUATION.RANG renverra aussi deux fois le même nombre : on n'aura donc pas une permutation, mais une surjection. Il y a moyen de contourner le problème (avec NB.SI notamment) mais la probabilité pour que ALEA() renvoie deux fois le même nombre est infinitésimale...
Florent.
--- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. http://www.avast.com
Ca fonctionne très bien !
Merci Florent.
Manu
"GL" a écrit dans le message de groupe de discussion :
5516ad4a$0$3339$426a34cc@news.free.fr...
Le 28/03/2015 13:31, Manu a écrit :
Bonjour,
Est t'il possible de faire une fx Alea.entre.borne(1;20) que je vais
tirer sur 20 cellules mais que chaque résultat soit différent, c'est à
dire que sur les 20 cellules résultats, qu'il n'y ais jamais 2 fois le
même nombre.
Merci
Manu
Oui ça s'appelle une permutation aléatoire. Mais excel ne fournit pas
la fonction. On peut faire :
sur A1:A20 : =ALEA()
sur B1:B20 : =EQUATION.RANG(A1;$A$1:$A$20)
ce n'est pas super rigoureux, car si ALEA() renvoie deux fois le même
nombre, EQUATION.RANG renverra aussi deux fois le même nombre : on
n'aura donc pas une permutation, mais une surjection. Il y a moyen
de contourner le problème (avec NB.SI notamment) mais la probabilité
pour que ALEA() renvoie deux fois le même nombre est infinitésimale...
Florent.
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
"GL" a écrit dans le message de groupe de discussion : 5516ad4a$0$3339$
Le 28/03/2015 13:31, Manu a écrit :
Bonjour,
Est t'il possible de faire une fx Alea.entre.borne(1;20) que je vais tirer sur 20 cellules mais que chaque résultat soit différent, c'est à dire que sur les 20 cellules résultats, qu'il n'y ais jamais 2 fois le même nombre.
Merci
Manu
Oui ça s'appelle une permutation aléatoire. Mais excel ne fournit pas la fonction. On peut faire :
sur A1:A20 : =ALEA() sur B1:B20 : =EQUATION.RANG(A1;$A$1:$A$20)
ce n'est pas super rigoureux, car si ALEA() renvoie deux fois le même nombre, EQUATION.RANG renverra aussi deux fois le même nombre : on n'aura donc pas une permutation, mais une surjection. Il y a moyen de contourner le problème (avec NB.SI notamment) mais la probabilité pour que ALEA() renvoie deux fois le même nombre est infinitésimale...
Florent.
--- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. http://www.avast.com
GL
Le 28/03/2015 15:23, Manu a écrit :
Ca fonctionne très bien !
Merci Florent.
Manu
Derien. Sinon vous pouvez aller dans Avast -> Paramètres -> Protection Active -> Agent Mail, Personnaliser et décocher les cases : - Analyser le courrier sortant (SMTP) - Analyser les messages News (NNTP)
Ca supprime le vilain bandeau, et comme on dit sur la toile, c'est à celui qui reçoit le message de s'assurer qu'il n'y a pas d'antrax dedans, pas à celui qui l'envoie !
--- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. http://www.avast.com
Le 28/03/2015 15:23, Manu a écrit :
Ca fonctionne très bien !
Merci Florent.
Manu
Derien. Sinon vous pouvez aller dans Avast
-> Paramètres -> Protection Active -> Agent Mail, Personnaliser
et décocher les cases :
- Analyser le courrier sortant (SMTP)
- Analyser les messages News (NNTP)
Ca supprime le vilain bandeau, et comme on dit sur la toile, c'est à
celui qui reçoit le message de s'assurer qu'il n'y a pas d'antrax
dedans, pas à celui qui l'envoie !
---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
http://www.avast.com
Derien. Sinon vous pouvez aller dans Avast -> Paramètres -> Protection Active -> Agent Mail, Personnaliser et décocher les cases : - Analyser le courrier sortant (SMTP) - Analyser les messages News (NNTP)
Ca supprime le vilain bandeau, et comme on dit sur la toile, c'est à celui qui reçoit le message de s'assurer qu'il n'y a pas d'antrax dedans, pas à celui qui l'envoie !
--- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. http://www.avast.com
MichD
Bonjour,
Une petite macro au besoin...
'--------------------------------------------------- Sub test() Dim Dic As Object, X As Long, A As Long Dim Limite_Inf As Long, LimiteSup As Long Dim Nb As Long
Limite_Inf = 1: LimiteSup = 20 Nb = 20 'Nombre de valeurs différentes à tirer
Set Dic = CreateObject("Scripting.dictionary")
While Dic.Count < Nb Randomize X = Application.RandBetween(Limite_Inf, LimiteSup) If Not Dic.exists(X) Then A = A + 1 DoEvents Dic.Add X, A End If Dic(X) = X Wend
With Worksheets("Feuil1") 'Nom feuille à adapter 'Pour écrire en colonne le résultat de A1:A20 .Range("A1").Resize(Nb) = Application.Transpose(Dic.keys)
'Pour écrire en ligne le résultat .Range("A1").Resize(, Nb) = Dic.keys End With End Sub '---------------------------------------------------
"Manu" a écrit dans le message de groupe de discussion : mf66v9$fei$
Bonjour,
Est t'il possible de faire une fx Alea.entre.borne(1;20) que je vais tirer sur 20 cellules mais que chaque résultat soit différent, c'est à dire que sur les 20 cellules résultats, qu'il n'y ais jamais 2 fois le même nombre.
Merci
Manu
--- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. http://www.avast.com
Bonjour,
Une petite macro au besoin...
'---------------------------------------------------
Sub test()
Dim Dic As Object, X As Long, A As Long
Dim Limite_Inf As Long, LimiteSup As Long
Dim Nb As Long
Limite_Inf = 1: LimiteSup = 20
Nb = 20 'Nombre de valeurs différentes à tirer
Set Dic = CreateObject("Scripting.dictionary")
While Dic.Count < Nb
Randomize
X = Application.RandBetween(Limite_Inf, LimiteSup)
If Not Dic.exists(X) Then
A = A + 1
DoEvents
Dic.Add X, A
End If
Dic(X) = X
Wend
With Worksheets("Feuil1") 'Nom feuille à adapter
'Pour écrire en colonne le résultat de A1:A20
.Range("A1").Resize(Nb) = Application.Transpose(Dic.keys)
'Pour écrire en ligne le résultat
.Range("A1").Resize(, Nb) = Dic.keys
End With
End Sub
'---------------------------------------------------
"Manu" a écrit dans le message de groupe de discussion : mf66v9$fei$1@speranza.aioe.org...
Bonjour,
Est t'il possible de faire une fx Alea.entre.borne(1;20) que je vais tirer
sur 20 cellules mais que chaque résultat soit différent, c'est à dire que
sur les 20 cellules résultats, qu'il n'y ais jamais 2 fois le même nombre.
Merci
Manu
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
'--------------------------------------------------- Sub test() Dim Dic As Object, X As Long, A As Long Dim Limite_Inf As Long, LimiteSup As Long Dim Nb As Long
Limite_Inf = 1: LimiteSup = 20 Nb = 20 'Nombre de valeurs différentes à tirer
Set Dic = CreateObject("Scripting.dictionary")
While Dic.Count < Nb Randomize X = Application.RandBetween(Limite_Inf, LimiteSup) If Not Dic.exists(X) Then A = A + 1 DoEvents Dic.Add X, A End If Dic(X) = X Wend
With Worksheets("Feuil1") 'Nom feuille à adapter 'Pour écrire en colonne le résultat de A1:A20 .Range("A1").Resize(Nb) = Application.Transpose(Dic.keys)
'Pour écrire en ligne le résultat .Range("A1").Resize(, Nb) = Dic.keys End With End Sub '---------------------------------------------------
"Manu" a écrit dans le message de groupe de discussion : mf66v9$fei$
Bonjour,
Est t'il possible de faire une fx Alea.entre.borne(1;20) que je vais tirer sur 20 cellules mais que chaque résultat soit différent, c'est à dire que sur les 20 cellules résultats, qu'il n'y ais jamais 2 fois le même nombre.
Merci
Manu
--- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. http://www.avast.com