Bonjour,
Finalement à force de tests, j'ai trouve un code qui fonctionne; si cela peut rendre service, le voici:
Function SommeSiCouleurCritere(PlageSomme As Range, Couleur As Range, PlageCritere As Range, Critere As Range) As Variant
'*********************************************************************************
' Effectuer la somme des cellules en couleur avec un critere supplementaire *
'*********************************************************************************
Dim Cel As Range
Dim Som As Double
Application.Volatile True
If Couleur.Cells.Count > 1 Then
SommeSiCouleurCritere = CVErr(xlErrValue)
Exit Function
End If
For Each Cel In PlageSomme
If Cel.Interior.ColorIndex = Couleur.Interior.ColorIndex And PlageCritere(Cel.Row - (PlageCritere.Row - 1), 1) = Critere Then Som = Som + Cel
Next
SommeSiCouleurCritere = Som
Application.Calculate
End Function
Cela fonctionne bien mais est assez lent surtout pour les grandes plages de données (> 10 000 lignes).
Alors si quelqu'un a une idée comment optimiser le code et accélérer la fonction je suis preneur !
A bientôt
gilles