Menu

SOMME SI COULEUR [Résolu]

Amesam 18 Messages postés dimanche 2 décembre 2012Date d'inscription 9 janvier 2018 Dernière intervention - 4 janv. 2018 à 14:49 - Dernière réponse : Amesam 18 Messages postés dimanche 2 décembre 2012Date d'inscription 9 janvier 2018 Dernière intervention
- 5 janv. 2018 à 10:58
Bonjour,

Je coince avec un classeur, un planning 2018.


J'utilise cette fonction :

Function SOMME_SI_COULEUR(PlageSomme As Range, PlageCouleur As Range) As Variant
'*********************************************************
' Effectuer la somme des cellules en couleur *
'*********************************************************
Dim Cel As Range
Dim Som As Double

If PlageCouleur.Cells.Count > 1 Then
SOMME_SI_COULEUR = CVErr(xlErrValue)
Exit Function
End If
For Each Cel In PlageSomme
If Cel.Interior.ColorIndex = PlageCouleur.Interior.ColorIndex Then Som = Som + Cel
Next
SOMME_SI_COULEUR = Som
End Function


depuis trois années j'utilise cette fonction et pas de souci, mais là je n'arrive pas à trouver pourquoi ça ne fonctionne pas.
J'ai enregistré mon fichier en .xlsm mais idem !

Si idée merci pour le retour.
Afficher la suite 

13 réponses

Répondre au sujet
Mike-31 16092 Messages postés dimanche 17 février 2008Date d'inscriptionContributeurStatut 24 avril 2018 Dernière intervention - 4 janv. 2018 à 16:07
0
Utile
Bonjour,
la fonction personnalisée fonctionne très bien que lui reproches tu !
Commenter la réponse de Mike-31
Amesam 18 Messages postés dimanche 2 décembre 2012Date d'inscription 9 janvier 2018 Dernière intervention - Modifié par Amesam le 4/01/2018 à 16:30
0
Utile
1
Bonjour,

je ne lui reproche rien :o) et en effet d'habitude ça fonctionne très bien !
Je cherche juste à comprendre pourquoi ça ne fonctionne pas alors que ça marche depuis plusieurs années sur d'autres fichier.
mdo100 113 Messages postés jeudi 9 décembre 2010Date d'inscription 25 avril 2018 Dernière intervention - 4 janv. 2018 à 16:30
Bonjour Amesam, Mike-31,

Amesam, as-tu vérifié que les couleurs:
=SOMME_SI_COULEUR(PlageSomme As Range, PlageCouleur As Range)
sont bien identiques ?

Cordialement.
Commenter la réponse de Amesam
Amesam 18 Messages postés dimanche 2 décembre 2012Date d'inscription 9 janvier 2018 Dernière intervention - Modifié par Amesam le 4/01/2018 à 16:56
0
Utile
2
Bonjour mod100,

Oui les couleurs sont bien identiques. Par contre, je me rend compte qu'ici je devrais avoir 0 et non #NOM?

=SOMME_SI_COULEUR(B14:AF14; AH14)

AH14 étant ma référence en bleu (H+)

Pinzou76 290 Messages postés dimanche 17 septembre 2017Date d'inscription 13 avril 2018 Dernière intervention - 4 janv. 2018 à 17:12
Bonjour,
Lors d'une vérification il ne faut pas plutôt faire "IF(a==b)" au lieu de "IF(a=b)" ?
mdo100 113 Messages postés jeudi 9 décembre 2010Date d'inscription 25 avril 2018 Dernière intervention - 4 janv. 2018 à 18:52
Re Amesam,

Ta plage B14:AF14 ne serait-elle pas issue de MFC, car si c'est le cas, la fonction
=SOMME_SI_COULEUR(PlageSomme As Range, PlageCouleur As Range)
ne peut pas fonctionner.

Je pense que tu devrais joindre ton fichier afin de vérifier tout ça.

@+
Commenter la réponse de Amesam
Mike-31 16092 Messages postés dimanche 17 février 2008Date d'inscriptionContributeurStatut 24 avril 2018 Dernière intervention - Modifié par Mike-31 le 4/01/2018 à 19:55
0
Utile
Re,

si la couleur utilisée dans ton tableau est la même utilisée dans ta cellule critère il n'y a aucun problème
par contre si tu colorises tes cellules il faut que tu cliques sur la touche F9 pour mettre à jour le calcul.
Application.Volatile en début de code actualisera la somme uniquement lors de la saisie de valeurs mais pas après la colorisation
je te propose d'ajouter ce code dans les propriétés de ta feuille
clic droit sur l'onglet de la feuille concernée/Visualiser le code
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub


Mais comme le signale à juste titre mdo si la colorisation est issue d'une mise en forme conditionnelle la fonction ne s'appliquera pas.
Suis son conseil joint un exemple de fichier anonymisé
A+
Mike-31

Je suis responsable de ce que je dis, pas de ce que tu comprends...
Commenter la réponse de Mike-31
Amesam 18 Messages postés dimanche 2 décembre 2012Date d'inscription 9 janvier 2018 Dernière intervention - Modifié par Amesam le 4/01/2018 à 22:47
0
Utile
Enfin, résultat obtenu !
Pour être honnête je ne sais pas trop comment !

Une chose aussi que je ne maitrise pas :
Pour valider le calcul il faut valider à chaque fois avec F9 et mon Module1 ne s’alimente pas !?


Lien du fichier :o)
https://cloudtag.io/hashtag/PlanningATLsvh1953zzrlpo27
Commenter la réponse de Amesam
Mike-31 16092 Messages postés dimanche 17 février 2008Date d'inscriptionContributeurStatut 24 avril 2018 Dernière intervention - 5 janv. 2018 à 07:47
0
Utile
Re,

tu as au moins lu mon dernier post et as tu placé mon bout de code dans les propriétés de ta feuille comme je te l'ai expliqué pour automatiser le calcul
visiblement NON !
Commenter la réponse de Mike-31
Amesam 18 Messages postés dimanche 2 décembre 2012Date d'inscription 9 janvier 2018 Dernière intervention - Modifié par Amesam le 5/01/2018 à 08:21
0
Utile
Bonjour Mike-31 et à tous,

En effet et désolé, non je n'avais pas fait attention à ton message.
Effectivement je viens de suivre ta procédure et ça fonctionne automatiquement sans la touche F9, donc nickel :o)
Par contre je ne comprends toujours pas pourquoi avant ça fonctionnait sans cet ajout !
Et que malgré cet ajout, le Module1 ne se remplit pas suite au action sur le tableau (comme avant).

Mais le principal est que ça soit fonctionnel et c'est le cas.

Merci à tous pour ce coup de pouce.

Bonne journée.
Commenter la réponse de Amesam
Mike-31 16092 Messages postés dimanche 17 février 2008Date d'inscriptionContributeurStatut 24 avril 2018 Dernière intervention - 5 janv. 2018 à 08:45
0
Utile
2
Re,

je suis très sceptique que ton code fonctionnait correctement avant sans passer par la touche F9 ou la syntaxe
Application.Volatile en début de code ou le code Calculate que je t'ai proposé
enfin tu as atteint ton objectif
je passe le statut de la discussion en résolu
Amesam 18 Messages postés dimanche 2 décembre 2012Date d'inscription 9 janvier 2018 Dernière intervention - 5 janv. 2018 à 10:22
Non, je me suis surement mal exprimé !
Je te confirme que ça marchait qu'avec la touche F9 et depuis l'intégration de tes lignes les modifications sont prises automatiquement après avoir validé avec la touche Entrée, donc effectivement plus besoin de passer par F9.
Par contre je ne sais pas si c'est depuis l'intégration de ces lignes je ne peux plus coller.
Le copie fonctionne car si je colle dans un autre document je récupère bien la copie ???

Je cherche pourquoi. Merci.
Amesam 18 Messages postés dimanche 2 décembre 2012Date d'inscription 9 janvier 2018 Dernière intervention - 5 janv. 2018 à 10:58
Après test, je confirme que suite à l'ajout de ces lignes :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub

Le coller ne fonctionne plus.

J'ai rajouté :

Application.OnKey “ ^ C”
Application.OnKey “ ^ X”
Application.OnKey “ ^ V”

Mais idem.

Si idée, merci.
Commenter la réponse de Mike-31