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

77test-2.xlsm (20.96 Ko)

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 Sub

Cette 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.

Rechercher des sujets similaires à "gestion planning aleatoire conditions"