Bonjour,
Je fais un planning pour gérer les agents. J'ai une feuille "mois en cours" avec un calandrier où les weekend et jours fériés sont mis en jaune et une autre feuille "compétences", où on trouve un tableau des agents et de leurs compétences:
colonne 1: id des agents
colonne 2: nom des agents
colonne 3 juqu'à colonne 9: compétences des agents marqués avec des 1 et des 0 pour sachant faire et ne sachant pas faire.
J'ai un code qui prend aléatoirement 3 agents de la ligne 9 à 24, 3 agents de la ligne 25 à 42 et 3 agents de la ligne 43 à 59, sauf les cellules colorés en rouge (agent en congés).
Je voudrais que le code puisse prendre ces 9 agents et les mettre dans chaque cellules blanches de la feuille "mois en cours" de la cellule F4 à F34.
Sauf que mon code rempli bien les cellules de F4 à F34 mais ne met qu'1 nom d'agent au lieu des 9 dans une cellule.
Merci de m'aider. J'espère avoir été clair!
Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 Sub FIP_AIP_MUSC_3() Dim i As Byte, y() As Variant, z() As Variant, x As Integer, c As New Collection Dim p As Range, v As Byte, w(8) As String Randomize y = Array(16, 17, 18) z = Array(9, 25, 42) For i = 0 To 2 Do While c.Count < 3 x = Int(y(i) * Rnd + z(i)) If Cells(x, 3) = 1 And Cells(x, 3).Interior.ColorIndex <> 3 Then On Error Resume Next c.Add Cells(x, 3).Address, CStr(Cells(x, 3).Address) If Err = 0 Then On Error GoTo 0 w(v) = Cells(x, 2).Value v = v + 1 End If On Error GoTo 0 End If Loop Set c = Nothing Next i v = 0 For Each p In Sheets("Mois en cours").Range("F4:F34") If p.Interior.ColorIndex <> 6 And IsEmpty(p.Value) Then p.Value = w(v) v = IIf(v = 8, 0, v + 1) End If Next p End Sub
Partager