Bonjour
Je souhaiterais distribuer sur un planning de facon aléatoire 20 croix comme sur l'exemple proposé par SilkyRoad en 2008, Toutefois je bloque .....:car lorsqu'un collègue est absent je mets une donnée sur la ligne correspondante en dehors du tableau(ici colonne k par ex) , et je voudrais que la répartition évite cette ligne ..et ce pour chaque collègue absent
merci de votre aide .
Les lignes du tableau correspondent au nom des agents et les colonnes au Heurs travaillées
Voici la base Crée par SilkyRoad
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
33
34
35 Sub Test() RemplissageAleatoire Range("A1:J10"), 20 End Sub Sub RemplissageAleatoire(Plage As Range, NbCroix As Integer) Dim Tableau As Collection Dim Cell As Range Dim i As Integer, j As Integer 'Vérifie si le nombre de cellules est supérieur au nombre de 'croix à insérer. If Plage.Cells.Count < NbCroix Then Exit Sub 'suppression des anciennes données Cells.Clear Plage.Interior.ColorIndex = 7 Set Tableau = New Collection For Each Cell In Plage Tableau.Add Cell.Address Next Cell For j = 1 To NbCroix Randomize DoEvents i = Int((Tableau.Count * Rnd)) + 1 Range(Tableau(i)) = "x" Tableau.Remove i DoEvents Next j End Sub
Partager