Bonjour à Tous,
J'ai trouvé sur internet une fonction me permettant de calculer le Nb de couleurs en fonction de la couleur. Je souhaite intégrer une nouvelle condition pour trouver le nb de couleur en fonction de la couleur mais également du salarié. J'ai essayé avec une formule Somme.si mais cela ne fonctionne pas (résulat Valeur). Pourriez-vous m'aider. Je joins mon fichier
Merci de votre aide
J'ai mis couleur et nom du salarié dans la même cellule, et séparé plage salariés et plage couleurs pour être plus général si l'espacement change.
Syntaxe : =nbcouleurs(plSalarié, plCouleur, modèle)
Tu peux mettre aussi la couleur sur le nom, avec une petite modification de la fonction et c'est bon
eric
La fonction couleur renvoie une matrice de couleur. Chaque élément de la matrice est la couleur de la cellule correspondante de la plage d'entrée. Si la plage d'entrée est une seule cellule, alors couleur renvoie une valeur unique et non pas une matrice.
Le code de la fonction Couleur :
VB:
Function Couleur(plage As Range)
Dim i&
Application.Volatile
If plage.Areas.Count > 1 Then Couleur = CVErr(xlErrRef): Exit Function
If plage.Count = 1 Then Couleur = plage.Interior.Color: Exit Function
ReDim t(1 To plage.Count, 1 To 1)
For i = 1 To plage.Count: t(i, 1) = plage(i).Interior.Color: Next i
Couleur = t
End Function
Re,
Une version plus adaptative. Si la plage source est verticale, Couleur renvoie une matrice verticale, et si la plage source est horizontale, Couleur renvoie une matrice horizontale.
VB:
Function Couleur(plage As Range)
Dim i&
Application.Volatile
If plage.Areas.Count > 1 Then Couleur = CVErr(xlErrRef): Exit Function
If plage.Count = 1 Then Couleur = plage.Interior.Color: Exit Function
If plage.Rows.Count = 1 Then
ReDim t(1 To 1, 1 To plage.Count)
For i = 1 To plage.Count: t(1, i) = plage(i).Interior.Color: Next i
Else
ReDim t(1 To plage.Count, 1 To 1)
For i = 1 To plage.Count: t(i, 1) = plage(i).Interior.Color: Next i
End If
Couleur = t
End Function
J'ai mis couleur et nom du salarié dans la même cellule, et séparé plage salariés et plage couleurs pour être plus général si l'espacement change.
Syntaxe : =nbcouleurs(plSalarié, plCouleur, modèle)
Tu peux mettre aussi la couleur sur le nom, avec une petite modification de la fonction et c'est bon
eric
La fonction couleur renvoie une matrice de couleur. Chaque élément de la matrice est la couleur de la cellule correspondante de la plage d'entrée. Si la plage d'entrée est une seule cellule, alors couleur renvoie une valeur unique et non pas une matrice.
Le code de la fonction Couleur :
VB:
Function Couleur(plage As Range)
Dim i&
Application.Volatile
If plage.Areas.Count > 1 Then Couleur = CVErr(xlErrRef): Exit Function
If plage.Count = 1 Then Couleur = plage.Interior.Color: Exit Function
ReDim t(1 To plage.Count, 1 To 1)
For i = 1 To plage.Count: t(i, 1) = plage(i).Interior.Color: Next i
Couleur = t
End Function