Somme de cellules meme couleur de fond sur plusieurs feuilles
Agone22
-
Mike-31 Messages postés 18205 Date d'inscription Statut Contributeur Dernière intervention -
Mike-31 Messages postés 18205 Date d'inscription Statut Contributeur Dernière intervention -
Bonsoir à tous,
Après avoir cherché en vain sur le net, je me tourne vers vous pour solutionner mon problème.
Je cherche à additionner sur une feuille "Bilan" toutes les cellules d'une certaine couleur de fond comprises dans les 12 précédentes feuilles. Ces cellules colorées ne sont pas forcement toujours au même emplacement.
J'ai rentré le module suivant pour sélectionner mes cellules de même couleur de fond :
Function SommeCouleurFondRef(champ As Range, couleurFond As Range)
Application.Volatile
Dim c, temp
temp = 0
For Each c In champ
If c.Interior.ColorIndex = couleurFond.Interior.ColorIndex Then
If IsNumeric(c.Value) Then temp = temp + c.Value
End If
Next c
SommeCouleurFondRef = temp
End Function
Le module fonctionne lorsque la plage de cellules sélectionnées appartient à une seule feuille.
J'ai essayé avec cette formule : =SommeCouleurFondRef('Janvier 2014:Juin 2014'!F5:F44;'Bilan 2014'!G3) mais excel m'indique #VALEUR!
Je ne connais rien à la programmation, quelqu'un peut-il éclairer ma lanterne?
Après avoir cherché en vain sur le net, je me tourne vers vous pour solutionner mon problème.
Je cherche à additionner sur une feuille "Bilan" toutes les cellules d'une certaine couleur de fond comprises dans les 12 précédentes feuilles. Ces cellules colorées ne sont pas forcement toujours au même emplacement.
J'ai rentré le module suivant pour sélectionner mes cellules de même couleur de fond :
Function SommeCouleurFondRef(champ As Range, couleurFond As Range)
Application.Volatile
Dim c, temp
temp = 0
For Each c In champ
If c.Interior.ColorIndex = couleurFond.Interior.ColorIndex Then
If IsNumeric(c.Value) Then temp = temp + c.Value
End If
Next c
SommeCouleurFondRef = temp
End Function
Le module fonctionne lorsque la plage de cellules sélectionnées appartient à une seule feuille.
J'ai essayé avec cette formule : =SommeCouleurFondRef('Janvier 2014:Juin 2014'!F5:F44;'Bilan 2014'!G3) mais excel m'indique #VALEUR!
Je ne connais rien à la programmation, quelqu'un peut-il éclairer ma lanterne?
2 réponses
-
Bonsoir,
https://www.cjoint.com/?DKxuiJiw5zq
Function SommeCouleurFondRef3D(champ As String, couleurFond As Range, début, fin)
Application.Volatile
Dim c, temp
temp = 0
For f = début To fin
For Each c In Range("'" & Sheets(f).Name & "'!" & champ)
If c.Interior.ColorIndex = couleurFond.Interior.ColorIndex Then
If IsNumeric(c.Value) Then temp = temp + c.Value
End If
Next c
Next f
SommeCouleurFondRef3D = temp
End Function
JB -
Bonsoir,
tu peux mettre un bout de ton fichier anonymisé à notre disposition s'il te plait avec ce lien
https://www.cjoint.com/