Nombre aléatoire

bonjour a tous , serrait il possible de créer des Nbre aléatoires sur de 1 a 150, mais sur quatre colonnes ( de 1 a 150 chacune )comme sur le tableau de "AN : AQ". Sur un tournoi de pétanque quatre joueurs ce rencontrent, deux équipes de deux, nous l'appellerons "Tour 1" . ensuite le "Tour 2" qui ne doivent pas rencontrer les même joueurs que précédent . Egalement pour le "Tour 3 " et le "Tour 4". Un joueur doit participer à quatre partie sans le même partenaire ni même équipe.

Sur le tableau ci-joint vous trouverez les Nbres aléatoires (colonne"AN""AO""AP""AQ")qui se déversent par le bouton "Remplir Tableau Tounante " verticalement

2) serrait il possible de contrôler les Nbres aléatoires (colonne"AN""AO""AP""AQ") . je m'explique, du moins je vais essayer . Comme vous pouvez voir il y a des doublons "N9" " T9" "AA9" le chiffre " 12 , ce qui fausse la rencontre des participants . Les participants ne doivent jamais être deux fois ensemble .

Sur un tableau de 10 a20 joueurs on peut contrôler mais une centaine c'est franchement impossible .

Merci de votre Aide

Cordialement

Bonjour,

je n'ai pas pu lire ton fichier, et j'avoue que ton texte n'est pas très clair

alors je reformule : tu cherches une suite de nombres aléatoires entre 0 et 150 sans répétition dans 4 colonnes indépendantes les unes des autres ... est-ce bien cela ?

27alea150.xlsx (22.42 Ko)

Bonjour Steelson,

Méthode intéressante, je me la note mentalement !

Mais pour les 3 tours suivants où chacun ne doit plus se retrouver avec un membres de ses 'quartets' précédents ?

Bonne journée.

Salut MFerrand,

en fait je n'ai pas compris le sujet !!

bonjour à tous , je vais essayer d'être clair . Sur le tableau page "tableauTournante" à la colonne "AN" , je fais tourné une Macro qui me donne des Nbres aléatoire et pareil pour trois autres colonnes, de "AN6" à "AN150" .

je prends la colonne " AH", les quatre premier vont sur les cellules "N6 à R6" qui constitue la première équipe , le 11 avec le 8 contre le 1 et le 9, en suivant le 6 avec le 14 contre le 4 et le 5. et toujours dans le même ordre " T1 -T2-T3-T4.

Hors je me retrouve avec des joueurs qui sont deux fois ensemble ( qu'il ne faut pas ) de "N6" a "AJ" 150.

le principe du jeux , qu'on appelle "Tournante " à la pétanque !. un joueur change de partenaire après chaque partie, et ne doit jamais avoir le même coéquipier.

Comme sur la ligne "N9" a "AG9" , par manque de participants , ces joueurs vont faire un Tête a Tête ( pour faire jouer tous le monde !).

Mais (exemple ) le n°12 et le 3 ne doivent pas se rencontrer à la partie suivante en Tête a Tête ni sur le T3 ni T4.

Voili Voilà .

Je pense que le tableau est plus clair , sinon je reste devant le PC pour attendre vos réponse .

Cordialement

J'avais cru comprendre que un joueur ne devait pas retrouver aux tours suivants ni un ancien partenaire ni un ancien adversaire.

oui c'est bien ça . Aucun joueurs ne doivent se retrouver dans la même équipe . il doit changer de partenaire 4 fois sans jouer ensemble.

cordialement

bonjour à tous, je suis toujours avec mon tableau de la tournante de pétanque .

j'ai refait la présentation en gardant les n°de lignes et le nom des colonnes . Serrait-il possible de n'avoir aucun doublon sur la la même plage. (Exemple " N6 a AJ6 ") et bien sur sur aucune ligne du tableau .

Je souhaiterai également une formule en "AL" ( vrai ou faux ) en détection des doublons éventuel .

dans l'attente de vous lire

je vous souhaite une bonne nuit

J'ai enfin compris. Ta description est plus claire et j'ai enfin un fichier lisible !

Je vais utiliser Scripting.Dictionary ... c'est presque du sudoku !

Un essai, à adapter !

Sub tirage()
Dim Tirag As Object
Dim Nbr As Long
Dim colonne As Integer

colonne = 1
Do
    Do
        Set Tirag = CreateObject("Scripting.Dictionary")
        While Tirag.Count < [effectif]
            Randomize Timer
            Nbr = Int([effectif] * Rnd)
            Tirag(Nbr) = Nbr
        Wend
        Cells(1, colonne + 1).Resize(Tirag.Count) = Application.Transpose(Tirag.Items)
    Loop Until [test].Offset(0, colonne - 1) = 0
    colonne = colonne + 1
Loop Until colonne > 4

End Sub

Uniquement si multiple de 4

adapté à ton fichier ...

Sub Remplir()

Effacer_nbr_aleatoire

Dim Tirag As Object
Dim Nbr As Long
Dim colonne As Integer

colonne = 1
Do
    Do
        Set Tirag = CreateObject("Scripting.Dictionary")
        While Tirag.Count < [effectif]
            Randomize Timer
            Nbr = Int([effectif] * Rnd)
            Tirag(Nbr) = Nbr
        Wend
        Cells(6, colonne + 39).Resize(Tirag.Count) = Application.Transpose(Tirag.Items)
    Loop Until [test].Offset(0, colonne - 1) = 0
    colonne = colonne + 1
Loop Until colonne > 4

End Sub

Bonjour et merci pour votre réponse . Sur la Macro Tirage il y a une erreur sur "While Tirag.Count < [effectif]" .

peut être a cause de Excell 2003?

Je n'ai pas besoin du " 0 " , comment faire pour le supprimer ?.

Pourriez vous me faire un commentaire sur cette Macro , pour essayer de comprendre son fonctionnement

cordialement

Joan066 a écrit :

Bonjour et merci pour votre réponse . Sur la Macro Tirage il y a une erreur sur "While Tirag.Count < [effectif]" .

peut être a cause de Excell 2003?

remplace les[____]par Range("_____") dans ce cas : valable pour effectif et test

Joan066 a écrit :

Je n'ai pas besoin du " 0 " , comment faire pour le supprimer ?.

ils sont nécessaires au fonctionnement de la macro, dans ce cas tu peux masuqer les 4 colonnes

Joan066 a écrit :

Pourriez vous me faire un commentaire sur cette Macro , pour essayer de comprendre son fonctionnement

cordialement

ok ce soir ...

Sub Remplir()

Effacer_nbr_aleatoire

Dim Tirag As Object
Dim Nbr As Long
Dim colonne As Integer

colonne = 1
Do
    Do
        Set Tirag = CreateObject("Scripting.Dictionary")
        While Tirag.Count < Range("effectif").Value
            Randomize Timer
            Nbr = Int(Range("effectif").Value * Rnd)
            Tirag(Nbr) = Nbr
        Wend
        Cells(6, colonne + 39).Resize(Tirag.Count) = Application.Transpose(Tirag.Items)
    Loop Until Range("test").Offset(0, colonne - 1) = 0
    colonne = colonne + 1
Loop Until colonne > 4

End Sub

dis moi si ok après modifs !


Remarque ... j'ai affecté "effectif" et "test" comme nom de cellule, voir aussi à respecter cela !

re bonjour , oui ! , la Macro modifier fonctionne , Yes ! .

Je ne doit pas avoir de zéro , mon tableau commence à 1 et fini a 150 participants.

De plus dans le tableau les Zéro font une case vide ce qui fausse le concours .

cordialement


re Bonjour , Peux ton déplacer les cases " redondances entre colonnes " , car sur le tableau définitif a cet emplacement il y a une autre Macro qui récupère les Nbres aléatoires pour faire une impression.

merci d'avance

cordialement

re . Non la Macro ne fonctionne pas il y a toujours une erreur " While Tirag.Count < Range("effectif").Value ". Tout a l'heure je l'ai essayé sur ton tableau mais sur le miens rien a faire , Hélas .

cordialement

Je ne doit pas avoir de zéro , mon tableau commence à 1 et fini a 150 participants.

0 supprimés

Peux ton déplacer les cases " redondances entre colonnes "

le calcul des redondances reporté dans une feuille spécifique


Joan066 a écrit :

re . Non la Macro ne fonctionne pas il y a toujours une erreur " While Tirag.Count < Range("effectif").Value ". Tout a l'heure je l'ai essayé sur ton tableau mais sur le miens rien a faire , Hélas .

cordialement

je peux regarder en MP si tu veux

merci !, je te l'envoi

Pour remplir le tableau le nom de la macro( remplir_nbr_aleatoire) module 19

cordialement

grrr, je ne peux pas lire les .rar !

tu peux éventuellement passer par www.cjoint.com

Il manquait l'affectation du nom effectif à la zone qui contient le nombre de joueurs ...

J'ai remis d'équerre, MAIS cela ne fonctionne que si la feuille est déprotégée ... je te laisse corriger ce point car je ne sais pas où cela se trouve !

Rechercher des sujets similaires à "nombre aleatoire"