Formules excel

Luigi

XLDnaute Occasionnel
Bonjour à vous tous,
Voilà mon problème, j’ai tableau dans l’axe des abscisses ou il y a 10 joueurs de J1 à J10 et dans l’axe des ordonnées il y a 10 parcours de P1 à P10.
Je dispose également de 3 vélos un rouge, un vert et un bleu.
Chaque joueur doit faire un parcours (peu importe lequel) avec 1 vélo de chaque couleur.
Le but est que chaque joueur est fait un parcours avec un vélo de couleurs différentes.
En pièce jointe j’ai mis un exemple de tableau mais je l’ai rempli manuellement. Je souhaiterais avoir une formule qui me permette de remplir ce tableau automatiquement. Ce tableau n’est pas figé le nombre de joueurs peut diminuer comme il peut augmenter.
Quelqu’un aurait-il une formule qui permette de remplir automatiquement ce tableau.
D’avance je vous remercie.
 

Pièces jointes

  • Parcours vélo.xlsx
    10.3 KB · Affichages: 50
  • Parcours vélo.xlsx
    10.3 KB · Affichages: 53
  • Parcours vélo.xlsx
    10.3 KB · Affichages: 51

Paf

XLDnaute Barbatruc
Re : Formules excel

bonjour,

je doute qu'on puisse solutionner le problème par des formules ...

ci joint un code de macro à copier dans un module.

ce code place aléatoirement les 3 vélos de couleur dans la colonne de chaque joueur quelque soit le nombre de joueurs et de parcours. (il ne doit pas y avoir de "trou" entre deux joueurs ou deux parcours)

Code:
Sub Macro1()
Dim ColDep As Integer, LigDep As Integer, ColFin As Integer, LigFin As Integer
Dim i As Integer, j As Integer
Dim TabCoul, Dico, Ligne
Dim NumLigne As Integer
LigFin = Worksheets("Feuil1").Range("B" & Rows.Count).End(xlUp).Row
ColFin = Worksheets("Feuil1").Range("C2").End(xlToRight).Column
ColDep = 3
LigDep = 3
Range(Cells(LigDep, ColDep), Cells(LigFin, ColFin)).ClearContents
TabCoul = Array("R", "V", "B")
Set Dico = CreateObject("Scripting.Dictionary")
    For i = ColDep To ColFin
        j = 0
        Randomize
        Do
            NumLigne = Int((LigFin - LigDep + 1) * Rnd) + LigDep
            If Not Dico.exists(NumLigne) Then
                Dico.Add NumLigne, NumLigne
            End If
        Loop Until Dico.Count = UBound(TabCoul) + 1
        
        For Each Ligne In Dico.items
            Cells(Ligne, i).Value = TabCoul(j)
            j = j + 1
        Next
        Dico.RemoveAll
    Next
Set Dico = Nothing
End Sub

bonne suite
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Formules excel

Bonjour Luigin, à tous,

Un essai avec des fomules. Les formules sont toutes identiques sauf celles de la ligne 3. En colonne C pas de formule; il faut y saisir simplement R, V, B dans 3 cellules. En B2 une autre formule.
 

Pièces jointes

  • Parcours vélo v01.xlsx
    11.5 KB · Affichages: 50
Dernière édition:

Paf

XLDnaute Barbatruc
Re : Formules excel

re,

la même macro mais avec distribution en ligne:

Code:
Sub Macro2()
Dim i As Integer, j As Integer
Dim TabCoul, Dico, Colon
Dim NumCol As Integer
LigFin = Worksheets("Feuil1").Range("B" & Rows.Count).End(xlUp).Row
ColFin = Worksheets("Feuil1").Range("C2").End(xlToRight).Column
ColDep = 3
LigDep = 3
Range(Cells(LigDep, ColDep), Cells(LigFin, ColFin)).ClearContents
TabCoul = Array("R", "V", "B")
Set Dico = CreateObject("Scripting.Dictionary")
    For i = LigDep To LigFin
        j = 0
        Randomize
        Do
            NumCol = Int((LigFin - LigDep + 1) * Rnd) + LigDep
            If Not Dico.exists(NumCol) Then
                Dico.Add NumCol, NumCol
            End If
        Loop Until Dico.Count = UBound(TabCoul) + 1
        
        For Each Colon In Dico.items
            Cells(i, Colon).Value = TabCoul(j)
            j = j + 1
        Next
        Dico.RemoveAll
    Next
Set Dico = Nothing
End Sub

Mais ca ne doit pas être encore ça. a priori tous les joueurs doivent faire autant de parcours qu'il y a de vélos différents ?

A+
 
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Re : Formules excel

Bonsour®

la contrainte est-elle seulement au niveau du joueur ?
c-a-d au niveau parcours l'alternance de vélo est-elle nécessaire ?

sinon il existe une infinité de solutions pourvu que le joueur utilise 1 fois et une fois seulement chaque vélo,
et ne fasse pas 2 fois le même parcours
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    42.8 KB · Affichages: 45
  • Capture.JPG
    Capture.JPG
    42.8 KB · Affichages: 48
  • Capture.JPG
    Capture.JPG
    42.8 KB · Affichages: 46
  • formules-excel-parcours-velo.xlsx
    21.4 KB · Affichages: 28

CISCO

XLDnaute Barbatruc
Re : Formules excel

Bonjour à tous

Le début du travail en pièce jointe, avec une formule matricielle (à valider avec Ctrl+maj+entrer), à tirer vers la droite et vers le bas.
Le principe :
En R3, la formule tire au hasard une valeur dans la liste en colonne AC.
En R4, idem, moins la valeur en R3. Et ainsi de suite pour la colonne R.
En colonne S, en S3, c'est presque pareil, la formule tire au hasard une valeur de la colonne AC, moins la valeur en R3 (début de ligne). En S4, idem, moins les valeurs en R4 (début de ligne) et S3 (début de colonne)... En S5, idem moins les valeurs en R5 (début de la ligne en cours), S3 et S4 (début de la colonne en cours).
Il suffit ensuite de mettre une mise en forme ne gardant visible que les R, V et B. Cela fonctionne parfaitement, sauf que lorsqu'on se trouve dans la partie basse à droite, parfois, on enlève tellement de valeurs de la liste en colonne AC qu'il ni en a plus à disposition... et cela renvoie #NOMBRE. Parfois, il manque aussi un R, un V ou un B (Par exemple, R et V, sont déja sur le début de la ligne, et B sur le début de la colonne, donc la formule ne peut pas proposer une de ces trois lettres). Pour compenser cela, j'ai mis des tests en R1:AA1, P3:p12 et N1. Il faut faire plusieurs tirages successifs avec F9 jusqu'à avoir N1 = "OK".

Ce n'est donc que le début du travail car :
* La formule telle que ne fonctionne que pour ce tableau de 10 cellules x 10 cellules. C'est assez facile à modifier avec des plages dynamiques, mais autant le faire qu'une fois la méthode validée (Il y a peut être mieux).
* Cela serait bien si une petite macro faisait plusieurs tests successifs jusqu'au moment ou il ni aurait que des 3 en R1:AA1 et P3:p12.

@ plus

P.S : On peut faire avec un GRANDE.VALEUR à la place du PETITE.VALEUR, mais cela ne permet pas vraiment de raccourcir les formules.
 

Pièces jointes

  • Parcours vélo.xlsx
    16.1 KB · Affichages: 30
  • Parcours vélo.xlsx
    16.1 KB · Affichages: 40
  • Parcours vélo.xlsx
    16.1 KB · Affichages: 36
Dernière édition:

Discussions similaires

Réponses
4
Affichages
255
A
Réponses
5
Affichages
724
A