J'utilise la fonction alea() afin de générer une liste de nombres (Ex:
1-100). Est-ce que quelqu'un connait un moyen pour que la page de calcul me
retourne seulement des résultats différents ? J'avais pensé la jumeler à une
fonction si() et donner comme consigne un recalcul si 2 résultats sont
identiques, mais je doute qu'une commande puisse ordonner un recalcul...
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
Philippe.R
Bonjour, La fonction si() ne provoquera effectivement pas le recalcul ; une piste peut être avec : http://www.excelabo.net/excel/comparerdiv.php#valeursuniques -- Avec plaisir http://dj.joss.free.fr/trombine.htm http://jacxl.free.fr/mpfe/trombino.html Philippe.R Pour se connecter au forum : http://www.excelabo.net/mpfe/connexion.php News://news.microsoft.com/microsoft.public.fr.excel "Pouks" a écrit dans le message de news:
J'utilise la fonction alea() afin de générer une liste de nombres (Ex: 1-100). Est-ce que quelqu'un connait un moyen pour que la page de calcul me retourne seulement des résultats différents ? J'avais pensé la jumeler à une fonction si() et donner comme consigne un recalcul si 2 résultats sont identiques, mais je doute qu'une commande puisse ordonner un recalcul...
Toute aide sera grandement appréciée.
Bonjour,
La fonction si() ne provoquera effectivement pas le recalcul ; une piste
peut être avec :
http://www.excelabo.net/excel/comparerdiv.php#valeursuniques
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Pouks" <Pouks@discussions.microsoft.com> a écrit dans le message de
news:9F9B335C-375D-48E0-982E-CB428E364D17@microsoft.com...
J'utilise la fonction alea() afin de générer une liste de nombres (Ex:
1-100). Est-ce que quelqu'un connait un moyen pour que la page de calcul
me
retourne seulement des résultats différents ? J'avais pensé la jumeler à
une
fonction si() et donner comme consigne un recalcul si 2 résultats sont
identiques, mais je doute qu'une commande puisse ordonner un recalcul...
Bonjour, La fonction si() ne provoquera effectivement pas le recalcul ; une piste peut être avec : http://www.excelabo.net/excel/comparerdiv.php#valeursuniques -- Avec plaisir http://dj.joss.free.fr/trombine.htm http://jacxl.free.fr/mpfe/trombino.html Philippe.R Pour se connecter au forum : http://www.excelabo.net/mpfe/connexion.php News://news.microsoft.com/microsoft.public.fr.excel "Pouks" a écrit dans le message de news:
J'utilise la fonction alea() afin de générer une liste de nombres (Ex: 1-100). Est-ce que quelqu'un connait un moyen pour que la page de calcul me retourne seulement des résultats différents ? J'avais pensé la jumeler à une fonction si() et donner comme consigne un recalcul si 2 résultats sont identiques, mais je doute qu'une commande puisse ordonner un recalcul...
Toute aide sera grandement appréciée.
Francois L
Pouks a écrit :
Bonjour,
Il me semble que la macro suivante fait ce que tu veux... '---------------------------- Sub alea_sans_doublons() Dim ValMax As Long, DerCel As Long, ValBase As Long, MyVal As Long ValMax = 100 ' Valeur Max (+1) DerCel = 75 ' Nb de cellules ' Test de cohérence If DerCel >= ValMax Then MsgBox "Erreur de parametres," & Chr(13) & _ "Le nombre de cellules demandées est supérieur au nombre de valeurs distinctes possibles" Exit Sub End If ' Ecriture de la première cellule (A1) ValBase = Int(Rnd() * ValMax) Range("A1") = ValBase ' Ecriture des cellules suivantes avec test For i = 2 To DerCel Calcul: MyVal = Int(Rnd() * ValMax) Range("A" & i) = MyVal If Application.WorksheetFunction.CountIf(Range("A1:A" & i), MyVal) > 1 Then GoTo Calcul Else End If Next End Sub '-----------------------------------
François L
J'utilise la fonction alea() afin de générer une liste de nombres (Ex: 1-100). Est-ce que quelqu'un connait un moyen pour que la page de calcul me retourne seulement des résultats différents ? J'avais pensé la jumeler à une fonction si() et donner comme consigne un recalcul si 2 résultats sont identiques, mais je doute qu'une commande puisse ordonner un recalcul...
Toute aide sera grandement appréciée.
Pouks a écrit :
Bonjour,
Il me semble que la macro suivante fait ce que tu veux...
'----------------------------
Sub alea_sans_doublons()
Dim ValMax As Long, DerCel As Long, ValBase As Long, MyVal As Long
ValMax = 100 ' Valeur Max (+1)
DerCel = 75 ' Nb de cellules
' Test de cohérence
If DerCel >= ValMax Then
MsgBox "Erreur de parametres," & Chr(13) & _
"Le nombre de cellules demandées est supérieur au nombre de valeurs
distinctes possibles"
Exit Sub
End If
' Ecriture de la première cellule (A1)
ValBase = Int(Rnd() * ValMax)
Range("A1") = ValBase
' Ecriture des cellules suivantes avec test
For i = 2 To DerCel
Calcul:
MyVal = Int(Rnd() * ValMax)
Range("A" & i) = MyVal
If Application.WorksheetFunction.CountIf(Range("A1:A" & i), MyVal) > 1 Then
GoTo Calcul
Else
End If
Next
End Sub
'-----------------------------------
François L
J'utilise la fonction alea() afin de générer une liste de nombres (Ex:
1-100). Est-ce que quelqu'un connait un moyen pour que la page de calcul me
retourne seulement des résultats différents ? J'avais pensé la jumeler à une
fonction si() et donner comme consigne un recalcul si 2 résultats sont
identiques, mais je doute qu'une commande puisse ordonner un recalcul...
Il me semble que la macro suivante fait ce que tu veux... '---------------------------- Sub alea_sans_doublons() Dim ValMax As Long, DerCel As Long, ValBase As Long, MyVal As Long ValMax = 100 ' Valeur Max (+1) DerCel = 75 ' Nb de cellules ' Test de cohérence If DerCel >= ValMax Then MsgBox "Erreur de parametres," & Chr(13) & _ "Le nombre de cellules demandées est supérieur au nombre de valeurs distinctes possibles" Exit Sub End If ' Ecriture de la première cellule (A1) ValBase = Int(Rnd() * ValMax) Range("A1") = ValBase ' Ecriture des cellules suivantes avec test For i = 2 To DerCel Calcul: MyVal = Int(Rnd() * ValMax) Range("A" & i) = MyVal If Application.WorksheetFunction.CountIf(Range("A1:A" & i), MyVal) > 1 Then GoTo Calcul Else End If Next End Sub '-----------------------------------
François L
J'utilise la fonction alea() afin de générer une liste de nombres (Ex: 1-100). Est-ce que quelqu'un connait un moyen pour que la page de calcul me retourne seulement des résultats différents ? J'avais pensé la jumeler à une fonction si() et donner comme consigne un recalcul si 2 résultats sont identiques, mais je doute qu'une commande puisse ordonner un recalcul...
Toute aide sera grandement appréciée.
LE TROLL
Bonjour,
Est-ce que ça, ça marche, c'est du VB ?
NOMBRE PSEUDO ALEATOIRES génération de nombres aléatoires Nombre entier entre 1 et 100 avec un pas de 1
Dim hasard As long Randomize hasard = Int((maxi - mini + 1) * Rnd + mini) Pas de 1
Si ça ne fonctionne pas, suffit pour faire un nombre aléatoire, de prendre les secondes en les multipliant par les minutes, puis en délimitant le bornages du résultat... ou un truc de ce genre....
Pour ne pas avoir deux fois le même nombre, tu peux par exemple faire une structure avec liste (plus simple qu'avec variable indicé):
list1.clear dim hasard as long dim i as long bis: hasard = génération_nombre_pseudo_aléatoire for i = 0 to list1.listcount-1 if list1.list(i) = hasard hten goto bis next i list1.additem hasard list1.refresh ' suite de ton code --- Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------
"Pouks" a écrit dans le message de news:
| J'utilise la fonction alea() afin de générer une liste de nombres (Ex: | 1-100). Est-ce que quelqu'un connait un moyen pour que la page de calcul me | retourne seulement des résultats différents ? J'avais pensé la jumeler à une | fonction si() et donner comme consigne un recalcul si 2 résultats sont | identiques, mais je doute qu'une commande puisse ordonner un recalcul... | | Toute aide sera grandement appréciée.
Bonjour,
Est-ce que ça, ça marche, c'est du VB ?
NOMBRE PSEUDO ALEATOIRES génération de nombres
aléatoires
Nombre entier entre 1 et 100 avec un pas de 1
Dim hasard As long
Randomize
hasard = Int((maxi - mini + 1) * Rnd + mini)
Pas de 1
Si ça ne fonctionne pas, suffit pour faire un
nombre aléatoire, de prendre les secondes en les
multipliant par les minutes, puis en délimitant le
bornages du résultat... ou un truc de ce genre....
Pour ne pas avoir deux fois le même nombre, tu
peux par exemple faire une structure avec liste
(plus simple qu'avec variable indicé):
list1.clear
dim hasard as long
dim i as long
bis:
hasard = génération_nombre_pseudo_aléatoire
for i = 0 to list1.listcount-1
if list1.list(i) = hasard hten goto bis
next i
list1.additem hasard
list1.refresh
' suite de ton code
---
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Pouks" <Pouks@discussions.microsoft.com> a écrit
dans le message de news:
9F9B335C-375D-48E0-982E-CB428E364D17@microsoft.com...
| J'utilise la fonction alea() afin de générer une
liste de nombres (Ex:
| 1-100). Est-ce que quelqu'un connait un moyen
pour que la page de calcul me
| retourne seulement des résultats différents ?
J'avais pensé la jumeler à une
| fonction si() et donner comme consigne un
recalcul si 2 résultats sont
| identiques, mais je doute qu'une commande puisse
ordonner un recalcul...
|
| Toute aide sera grandement appréciée.
NOMBRE PSEUDO ALEATOIRES génération de nombres aléatoires Nombre entier entre 1 et 100 avec un pas de 1
Dim hasard As long Randomize hasard = Int((maxi - mini + 1) * Rnd + mini) Pas de 1
Si ça ne fonctionne pas, suffit pour faire un nombre aléatoire, de prendre les secondes en les multipliant par les minutes, puis en délimitant le bornages du résultat... ou un truc de ce genre....
Pour ne pas avoir deux fois le même nombre, tu peux par exemple faire une structure avec liste (plus simple qu'avec variable indicé):
list1.clear dim hasard as long dim i as long bis: hasard = génération_nombre_pseudo_aléatoire for i = 0 to list1.listcount-1 if list1.list(i) = hasard hten goto bis next i list1.additem hasard list1.refresh ' suite de ton code --- Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------
"Pouks" a écrit dans le message de news:
| J'utilise la fonction alea() afin de générer une liste de nombres (Ex: | 1-100). Est-ce que quelqu'un connait un moyen pour que la page de calcul me | retourne seulement des résultats différents ? J'avais pensé la jumeler à une | fonction si() et donner comme consigne un recalcul si 2 résultats sont | identiques, mais je doute qu'une commande puisse ordonner un recalcul... | | Toute aide sera grandement appréciée.
Modeste
Bonsour® Pouks avec ferveur ;o))) vous nous disiez :
A1= Alea() B1=rang(A1;$A$1:$A$100) recopier jusqu'en ligne 100
-- -- @+ ;o)))
Pouks
Merci du coup de main tout le monde. Je prends en note toutes ces suggestions, je vais pouvoir en apprendre plus à propos des macros etc, mais compte tenu de mes connaissances actuelles, les méthodes les plus simples sont les meilleures. J'adopte donc la solution de "Modeste" qui fonctionne à merveille.
Merci encore.
Merci du coup de main tout le monde. Je prends en note toutes ces
suggestions, je vais pouvoir en apprendre plus à propos des macros etc, mais
compte tenu de mes connaissances actuelles, les méthodes les plus simples
sont les meilleures. J'adopte donc la solution de "Modeste" qui fonctionne à
merveille.
Merci du coup de main tout le monde. Je prends en note toutes ces suggestions, je vais pouvoir en apprendre plus à propos des macros etc, mais compte tenu de mes connaissances actuelles, les méthodes les plus simples sont les meilleures. J'adopte donc la solution de "Modeste" qui fonctionne à merveille.
Merci encore.
Francois L
Pouks a écrit :
Merci du coup de main tout le monde. Je prends en note toutes ces suggestions, je vais pouvoir en apprendre plus à propos des macros etc, mais compte tenu de mes connaissances actuelles, les méthodes les plus simples sont les meilleures. J'adopte donc la solution de "Modeste" qui fonctionne à merveille.
Merci encore.
Re,
Eh oui, modeste et génial, comme d'hab
-- François L
Pouks a écrit :
Merci du coup de main tout le monde. Je prends en note toutes ces
suggestions, je vais pouvoir en apprendre plus à propos des macros etc, mais
compte tenu de mes connaissances actuelles, les méthodes les plus simples
sont les meilleures. J'adopte donc la solution de "Modeste" qui fonctionne à
merveille.
Merci du coup de main tout le monde. Je prends en note toutes ces suggestions, je vais pouvoir en apprendre plus à propos des macros etc, mais compte tenu de mes connaissances actuelles, les méthodes les plus simples sont les meilleures. J'adopte donc la solution de "Modeste" qui fonctionne à merveille.