Utiliser une fonction sur excel

Fermé
chikizo_11 Messages postés 4 Date d'inscription dimanche 23 décembre 2012 Statut Membre Dernière intervention 24 décembre 2012 - 23 déc. 2012 à 23:57
chikizo_11 Messages postés 4 Date d'inscription dimanche 23 décembre 2012 Statut Membre Dernière intervention 24 décembre 2012 - 24 déc. 2012 à 16:44
Bonjour,
je veux utiliser la fonction Excel qui génère aléatoirement un nombre 1 , 2 ou 3
ben le codage est: =1+ ARRONDI(2*ALEA();0)

par exemple : je selectionne 6 cellules de la première ligne, je mettrai mon code, disons le résultat est:
2 3 1 2 2 2
.................
.................
3 3 2 1 1 3

La questions : comment modifier la fonction pour que chaque ligne du tableau soit unique??

Merci
A voir également:

3 réponses

yoann090 Messages postés 9180 Date d'inscription mercredi 12 août 2009 Statut Contributeur sécurité Dernière intervention 13 avril 2016 1 687
24 déc. 2012 à 01:51
Bonjour,
A mon avis avec de l'aleatoire tu ne pourras pas. Le seul truc qui me parait plausible, et ça se fait assez facilement en java (ou autres languages de programmation). A verifier si ça peut se faire avec excel serait qu'une fois que la ligne est générée entièrement la comparer avec les lignes précédentes et la supprimer en cas de doublon.

Cordialement
0
chikizo_11 Messages postés 4 Date d'inscription dimanche 23 décembre 2012 Statut Membre Dernière intervention 24 décembre 2012
24 déc. 2012 à 04:05
Pouvez-vous m'aider à écrire l'algorithme avec java , Je suis nul en Programmation...!!!!
0
yoann090 Messages postés 9180 Date d'inscription mercredi 12 août 2009 Statut Contributeur sécurité Dernière intervention 13 avril 2016 1 687
24 déc. 2012 à 11:33
Il faudrait faire un tableau de la longueur que vous voulez pour chacun des nombres et de la hauteur le nombre de nombre attendu. A la fin de chaque ligne faire une boucle pour indice allant de debut a fin verifier avec les lignes precedentes, si different incrementer l'indice de ligne de 1 sinon reecrire par dessus.

Mais si vous ne maitrisez pas la programmation ca ne va pas etee possible.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
24 déc. 2012 à 12:08
Bonjour,

Il faudrait que tu nous dises le nombre de combinaisons possibles avec X colonnes pour délimiter le domaine d'action: pour ma part , je suis fâché avec les calculs de proba...

a propos, c'est toujours 6 colonnes ou cela peut il varier , si oui jusqu'à combien ?
0
chikizo_11 Messages postés 4 Date d'inscription dimanche 23 décembre 2012 Statut Membre Dernière intervention 24 décembre 2012
24 déc. 2012 à 15:37
slt,
les colonnes varie entre 1 et 13
pour le calcul des combinaisons de 6 colonne 3*3*3*3*3*3 = 927 Combinaison possible.
3 represente les 3 cas possible qui sont 1,2,3.
merci
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
24 déc. 2012 à 15:41
Si ce n'est pas trop te demander, tu peux regarder en dessous ce que je t'ai envoyé il y a environ 2 heures 1/2
mais je ne voudrais pas te déranger....
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 24/12/2012 à 13:00
re,
si je ne me suis pas trompé On a 729 combinaisons ac 6 colonnes


code proposé
Sub test() 
generer_code_unique "A1", 729, 6 'adresse de restitution,nombre de lignes et nombre colonnes 
End Sub 


Sub generer_code_unique(adr_dep, nbre_lig, nbre_col) 
Dim D_tirage As Object 
Dim lig As Long, col As Byte 
Dim T_out(), tirage As Byte, compil As String 

ReDim T_out(1 To nbre_lig, 1 To nbre_col) 
Randomize 
Set D_tirage = CreateObject("scripting.dictionary") 
For lig = 1 To nbre_lig 
doublon: 
     compil = "" 
     For col = 1 To nbre_col 
          tirage = Int(Rnd * 3) + 1 
          T_out(lig, col) = tirage 
          compil = compil & tirage 
     Next 
     If D_tirage.exists(compil) Then 
          GoTo doublon 
     Else 
          D_tirage.Add compil, "" 
     End If 
Next 
Range(adr_dep).Resize(nbre_lig, nbre_col) = T_out 
End Sub


Michel
0
chikizo_11 Messages postés 4 Date d'inscription dimanche 23 décembre 2012 Statut Membre Dernière intervention 24 décembre 2012
24 déc. 2012 à 16:44
merci bien, c'est gentil de ta part
0