Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 VBA - Répartition tâches aléatoirement

LuanaDDC

XLDnaute Junior
Bonjour !

J'espère que vous allez bien

Je me permets de vous demander de l'aide concernant un petit projet que je souhaite faire pour ma colocation. Nous sommes 9 (c'est de l'organisation mais c'est super cool !) et je souhaiterai une répartition des tâches du ménage mensuel. Pour ce faire j'ai fait un tableau avec en ligne les tâches et en colonnes les "Prénom". Je souhaiterai qu'aléatoirement quad je clique du le bouton, une croix apparait à l'intérieur d'une tâche. Sachant que pour certaines tâches, il faut être deux. 1 tâche = 1 personne sauf pour les tâches où il faut 2 personnes.

Je ne sais pas si c'est très compliqué à faire.
J'ai commencé une macro mais je pense qu'elle n'est vraiment pas aboutie...

Pouvez-vous m'aider s'il vous plait ?

Merci pour les retours que j'aurais et je vous souhaite une bonne fin d'après midi
 

Pièces jointes

  • attribution-taches.xlsm
    17.5 KB · Affichages: 4
Solution
Bonjour Luana,
Une idée parmi d'autres en PJ avec :
VB:
Sub Rotation()
Dim N%, T
Application.ScreenUpdating = False
For N = 1 To 9
    Cells(N, "O") = N: Cells(N, "P") = Rnd
Next N
Range("O:P").Resize(9).Sort key1:=Range("P1"), order1:=xlAscending, Header:=xlNo
T = Range("O1:O9"): Range("O1:P9").ClearContents: Range("B4:G12").ClearContents
Cells(3 + T(1, 1), "B") = "X": Cells(3 + T(2, 1), "B") = "X"
Cells(3 + T(3, 1), "C") = "X"
Cells(3 + T(4, 1), "D") = "X"
Cells(3 + T(5, 1), "E") = "X": Cells(3 + T(6, 1), "E") = "X"
Cells(3 + T(7, 1), "F") = "X": Cells(3 + T(8, 1), "F") = "X"
Cells(3 + T(9, 1), "G") = "X"
End Sub

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Luana,
Une idée parmi d'autres en PJ avec :
VB:
Sub Rotation()
Dim N%, T
Application.ScreenUpdating = False
For N = 1 To 9
    Cells(N, "O") = N: Cells(N, "P") = Rnd
Next N
Range("O:P").Resize(9).Sort key1:=Range("P1"), order1:=xlAscending, Header:=xlNo
T = Range("O1:O9"): Range("O1:P9").ClearContents: Range("B4:G12").ClearContents
Cells(3 + T(1, 1), "B") = "X": Cells(3 + T(2, 1), "B") = "X"
Cells(3 + T(3, 1), "C") = "X"
Cells(3 + T(4, 1), "D") = "X"
Cells(3 + T(5, 1), "E") = "X": Cells(3 + T(6, 1), "E") = "X"
Cells(3 + T(7, 1), "F") = "X": Cells(3 + T(8, 1), "F") = "X"
Cells(3 + T(9, 1), "G") = "X"
End Sub
 

Pièces jointes

  • attribution-taches.xlsm
    18.9 KB · Affichages: 4
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…