Changement de couleur cellule : calcul automatique
Résolu
Philifloche
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
Philifloche Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
Philifloche Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'utilise la formule suivante pour faire des sommes de cellules de couleurs différentes dans une même plage :
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
La formule fonctionne bien, mais les totaux ne se mettent pas à jour quand je change juste la couleur de fond d'une cellule de la plage.
Si quelqu'un a une réponse, je suis preneuse.
Merci.
J'utilise la formule suivante pour faire des sommes de cellules de couleurs différentes dans une même plage :
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
La formule fonctionne bien, mais les totaux ne se mettent pas à jour quand je change juste la couleur de fond d'une cellule de la plage.
Si quelqu'un a une réponse, je suis preneuse.
Merci.
A voir également:
- Changement de couleur cellule : calcul automatique
- Excel cellule couleur si condition texte - Guide
- Changer de dns - Guide
- Excel compter cellule couleur sans vba - Guide
- Changer la couleur de la barre des taches - Guide
- Proteger cellule excel - Guide
3 réponses
Bonjour,
Il n'existe pas d'évènement exploitable lors du changement de couleur d'une cellule, donc pas de solution miracle !
On peut améliorer la fréquence de calcul en ajoutant Application.volatile (ligne 7) pour que la fonction soit calculée à chaque modification du contenu d'une cellule, même si ça ne concerne pas la plage de la fonction :
Mais ce n'est pas suffisant, on peut aussi provoquer le calcul au changement de cellule sélectionnée en ajoutant dans le module de la feuille :
C'est pas l'idéal mais c'est déjà mieux.
On pourrait aussi utiliser OnTime mais c'est plus lourd (et inutilement chronophage) .
Il n'existe pas d'évènement exploitable lors du changement de couleur d'une cellule, donc pas de solution miracle !
On peut améliorer la fréquence de calcul en ajoutant Application.volatile (ligne 7) pour que la fonction soit calculée à chaque modification du contenu d'une cellule, même si ça ne concerne pas la plage de la 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 Application.Volatile 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
Mais ce n'est pas suffisant, on peut aussi provoquer le calcul au changement de cellule sélectionnée en ajoutant dans le module de la feuille :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.Calculate End Sub
C'est pas l'idéal mais c'est déjà mieux.
On pourrait aussi utiliser OnTime mais c'est plus lourd (et inutilement chronophage) .
Bonjour,
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM , et dans ton message de réponse tu fais "Coller"
Slts
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM , et dans ton message de réponse tu fais "Coller"
Slts
Bonjour,
Désolée pour la réponse tardive ; j'ai du m'absenter quelques jours. Voilà le lien : https://www.cjoint.com/c/HBxiUjTvJ3J
Merci pour ton aide !
:)
Désolée pour la réponse tardive ; j'ai du m'absenter quelques jours. Voilà le lien : https://www.cjoint.com/c/HBxiUjTvJ3J
Merci pour ton aide !
:)
Re
tiens, tiens pourtant chez moi le lien fonctionne
nouvel essai
https://www.cjoint.com/c/HBxjjBrqmdj
Slts
tiens, tiens pourtant chez moi le lien fonctionne
nouvel essai
https://www.cjoint.com/c/HBxjjBrqmdj
Slts
On peut améliorer la fréquence de calcul en ajoutant Application.volatile (ligne 7) pour que la fonction soit calculée à chaque modification du contenu d'une cellule
ou avec F9
eric
Merci beaucoup, mais ça ne solutionne pas vraiment mon souci. :) Je ne touche plus au contenue des cellules une fois créées. Je change simplement la couleur.
Dans ce cas s'adresser à MS qu'ils fassent évoluer excel et ajoutent des événements.
Pas d'autre solution actuellement que ce vient de t'expliquer Patrice.
eric