Planning en fonction de critères multiples
Bonjour à tous,
Après quelques heures de bricolages et de recherches, je me permets de solliciter votre aide sur un de mes fichiers. J'ai réalisé deux codes (un qui marche par la grace de l'enregistreur... pour balayer toutes les lignes et l'autre que j'ai tenté en freestyle qui ne marche pas) ==> Je les mets à la fin du post.
En gros, j'ai trois onglets, un "synthèse" avec les disponibilités des équipes A,B,C,D,E,F,G par dates (sachant que deux équipes peuvent être dispo le même jour), un "plan" qui définit les besoins de stages pour chaque personne à planifier et un "planning" où je souhaite ramener les disponibilités de chaque personne, en fonction de son roulement et de son équipe et qu'Excel me propose la meilleure répartition par stage en fonction du nombre maximum de participation par stage (ligne 2 de l'onglet planning)
Cela me parait être une montagne, avez vous une idée sur la meilleure manière de s'y prendre?
Merci de votre aide!
ci après le fichier sans macros
Ci-dessous mes "bricolages"...:
Dim I As Integer
I = 0
Worksheets("SYNTHESE").Select
Worksheets("SYNTHESE").Range("A1048576").Select
Selection.End(xlUp).Select
If Range("B379").Value = Worksheets("PLAN").Range("C3").Value Then
Worksheets("PLAN").Range("E3").Value = "X"
End If
While ActiveCell <> Range("A3")
For I = 1 To 3
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
I = I + 1
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
I = I + 1
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
I = I + 1
Next
I = 0
ActiveCell.Offset(rowOffset:=-1, columnOffset:=-3).Activate
Wend
End SubOption Explicit
Sub TEST()
'1 recherche du nombre de personne
Dim I As Long
Dim ligne As Long
Dim col As Long
I = 5
While Sheets("SYNTHESE").Cells(I, 1).Text <> ""
I = I + 1
Wend
ligne = 5
col = 2
While Sheets("SYNTHESE").Cells(5, col).Text <> "" 'balaye les lignes
While ligne < I 'balaye les colonnes
'**********************voir si partie du dessous fonctionne*******************************
If Sheets("SYNTHESE").Cells(ligne, col).Value = Sheets("PLAN").Cells(col - 0, I) Then
Sheets("PLAN").Cells(col - 0, I) = Sheets("SYNTHESE").Cells(ligne, 3).Text
End If
'*****************************************************************************************
ligne = ligne + 1
Wend
col = col + 1
ligne = 4
Wend
End Sub