Récupérer les cases non vides sur certaines cases (planning)

Bonjour à tous et à toutes,

C'est mon premier post sur ce forum,

Je ne suis pas informaticien mais j'ai quelques bonnes bases d'informatique.

Je suis en train de travailler sur une trame pour réaliser des plannings.

J'ai besoin, pour répartir au mieux le nombre de week end sur tous les agents, d'avoir une mise à jour automatique du nombre de samedi et de dimanche que tous les agents font.

Pour ça j'avais réussi à faire une formule de cette forme :

=SOMMEPROD(NB.SI(INDIRECT({"G6";"N6";"U6";"AB6";"AI6"});">15"))

les cases correspondantes étant les samedi sur ma grille pour la ligne 6.

J'utilise des pastilles de couleur que je copie colle et j'ai dû par ce fait utiliser indirect avec someprod pour que ça s'actualise bien.

J'ai essayé de bidouiller avec les divers tutos un peu de VBA (sans aucune connaissance précise du domaine)

J'ai essayé de reproduire cette formule en déclarant une variable dans un module :

Function samedis(cellule As Range) As Integer

Application.Volatile

Lcellule = ActiveCell.Row

ActiveCell.FormulaR1C1 = "=SUMPRODUCT(COUNTIF(INDIRECT{("ADRESSE(Lcellule,7)";""ADRESSE(Lcellule,14)"";""ADRESSE(Lcellule,21)"";""ADRESSE(Lcellule,28)"";""ADRESSE(Lcellule,35)""},"">15""))"

End Function

Je n'arrive pas à le faire faire fonctionner ce code, à priori j'ai une erreur de syntaxe.

La raison pour laquelle j'essaie de bidouiller ce script en VBA c'est que je n'arrive pas à étirer le calcul du dessus et comme j'ai beaucoup d'agents, j'aimerais bien ne pas taper tout à la main :D

Est-ce qu'il y aurait quelqu'un qui pourrait m'aider à résoudre ce problème ?

Je vous remercie beaucoup par avance

Mathiouz

J'ai fini par trouver à force de tatonner !

pour ceux que ça pourrait intéresser voici le code qui va bien

Bonne soirée à tous

Function samedis(cellule As Range) As Integer
Application.Volatile
Dim Plage As Range
Maligne = cellule.Row
Set Plage = Intersect(Rows(Maligne), Range("G:G, N:N, U:U, AB:AB, AI:AI"))
samedis = 0
For Each LaCell In Plage
If LaCell.Value <> 0 Then
samedis = samedis + 1
End If
Next LaCell
End Function

Edit modo : code mis entre balises

Rechercher des sujets similaires à "recuperer cases vides certaines planning"