Soit un calcul de cout du personnel réalisé avec une condition de date, couleur et paramètre de la personne (centre de cout et catégorie). Dans le premier exemple qui marche, il est utilisé une ligne de référence (L4) ainsi qu'une fonction MATCOUL (donnée par Job75).
Ce que je souhaiterai: simplifier le tableau en supprimant cette ligne de référence.
J'ai tenté 2 essais:
- En développant la valeur recherché de l'EQUIV de la formule qui marche avec la ligne de référence
- en tentant avec le sommeprod de faire un calcul matricielle avec une recherchev pour créer une matrice dimension 12x1.
Je pense que mon problème de base est de créer une matrice 12x1 avec 3 entrées dont 2 fixes: ( catégorie et centre de cout) et une variable en fonction de la couleur de la cellule.
Re : Simplifier calcul cout personnel avec fonction matcoul sans ligne de réference
Bonjour Scoty,
Il suffisait de remplacer la fonction scalaire Couleur par une fonction matricielle :
Code:
Function Couleur(Pcoul As Range)
Dim mat&(), n&
ReDim mat(1 To Pcoul.Count)
For Each Pcoul In Pcoul
n = n + 1
mat(n) = Pcoul.Interior.ColorIndex
Next
Couleur = mat 'vecteur ligne des codes couleurs
End Function
Fichier joint, voyez les formules en S4:S5 et V4:V5.
L'ancienne ligne 4, devenue inutile, a été supprimée.
Edit : on aura remarqué que pour définir "A" ou "B" j'utilise CAR(65+(Couleur($E4:$P4)<>44))
On peut aussi utiliser REPT("A";Couleur($E4:$P4)=44)&REPT("B";Couleur($E4:$P4)<>44)
Voir fichier (1 bis).
On pourrait utiliser SI(xxx;"A";"B") mais alors il faudrait une validation matricielle.
A+
Pièces jointes
Calcul cout ac MATCOUL sans ligne de réf(1).xls
42.5 KB · Affichages: 26
Calcul cout ac MATCOUL sans ligne de réf(1 bis).xls