Gestion planning aleatoire sous conditions
bonsoir ,
je suis a la recherche d'une formule ou autre pour la gestion d'un planning aleatoire qui ne prend pas compte une cellule si une notification est rempli en dans la colonne "H"
je voudrais que si je renseigne quelque chose en H17 par exemple quand je génère le nouveau planning aléatoire que la cellule F17 ne soit pas pris en compte lors de la génération
merci d'avance de votre réponse
un peut novice dans la matière ce forum m'aide beaucoup pour trouver des formules !
Cdt,
SenTi
Bonsoir,
Méthode un peu différente :
Sub Remplir()
Dim Tablo(4, 6) As String, Pers As Range, tmp$, ttmp$, i%, j%, x%, n%
Set Pers = ActiveSheet.Range("G3:G24")
With Pers
For i = 1 To .Cells.Count
If IsEmpty(.Cells(i, 2)) Then tmp = tmp & Chr(i + 32)
Next i
End With
n = IIf(Len(tmp) < 17, Len(tmp), 17)
Randomize
For i = 1 To n
x = Int(Len(tmp) * Rnd + 1)
ttmp = ttmp & Mid(tmp, x, 1)
tmp = Replace(tmp, Mid(tmp, x, 1), "")
Next i
x = 0
For i = 0 To 4
For j = 6 To 0 Step -2
x = x + 1
Tablo(i, j) = Pers.Cells(Asc(Mid(ttmp, x, 1)) - 32, 1)
If x = n Then Exit For
Next j
If x = n Then Exit For
Next i
ActiveSheet.Range("L3:R7").Value = Tablo
End SubCette méthode supprime le tableau intermédiaire dans l'angle gauche et les formules du tableau final (ce dernier est servi directement.
NB- Une procédure ordinaire ne se se place pas dans un module d'objet (feuille ou classeur).
La constitution du tableau à affecter est quelque peu tarabiscotée : c'est d'une part en raison des colonnes de séparation, et pour obtenir le même résultat qu'antérieurement par rapport au tirage ! (mais cela peu se modifier...)
Cordialement.
bonjour ,
merci beaucoup pour ce bout de code !
c'est tout a fait sa !
j'ai plus que la mise en forme a faire !
une petit question si je veut rajouter des personnes dans la liste j'ai juste a changer le critère de sélection "Set Pers = ActiveSheet.Range("G3:G24")" ?
merci encore de votre aide !
Cdt,
SenTI
Bonsoir,
Effectivement, en modifiant la référence de plage, le reste s'adapte... Pour ne plus avoir à modifier, tu pourrais aussi nommer la plage en dynamique, et tu utilises directement le nom sans avoir à passer par une variable.
J'ai aussi pris en compte le cas où tu ne disposerais pas de 17 noms disponibles dans la liste (on se limiterait alors aux noms existants disponibles, le problème des personnels en nombre insuffisant devrait être traités par ailleurs.
Par contre, si le tirage ne concerne pas toujours 17 personnes, je n'avais aucun élément pour traiter ce cas, mais cela pourrait être envisagé.
Cordialement.