Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/06/2011, 19h03   #1
Membre confirmé
 
Avatar de Contrec
 
Inscription : mars 2005
Messages : 566
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : mars 2005
Messages : 566
Points : 264
Points : 264
Par défaut Lancer une fonction lors du changement de couleur d'une cellule

Bonjour,

J'ai un petit soucis sur un classeur Excel : Je n'arrive pas à exécuter automatiquement une fonction lorsque je change la couleur d'une cellule.

Je m'explique... Je souhaite calculer dans une cellule la somme des valeurs des cellules d'une certaine couleur. J'arrive à faire ceci grâce à une petite fonction :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Function SommeCouleur(monRange As Range, couleurFond)
    '
    ' SommeCouleur Macro
    ' Fait la somme des cellules d'une même couleur dans un range donné
    '
    Dim cellule
    Dim somme
    Application.Volatile
    For Each cellule In monRange
        If cellule.Interior.ColorIndex = couleurFond Then
            somme = somme + cellule.Value
        End If
    Next
    SommeCouleur = somme
    Application.Calculate
End Function
Mais mon soucis c'est que j'aimerai que cette fonction se lance automatiquement lorsque je rajoute une cellule de couleur pour prendre en compte le nouveau calcul. Là je suis obligé de moi-même aller dans la cellule qui contient le résultat de la somme et d'appuyer sur Entrée pour raffraîchir le résultat.
Est-il possible de le raffraîchir dès que je change la couleur d'une cellule ?

Merci d'avance pour vos solutions
__________________
Contrec - Toulouse
Contrec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2011, 07h46   #2
Membre Expert
 
Inscription : novembre 2006
Messages : 1 464
Détails du profil
Informations personnelles :
Âge : 49

Informations forums :
Inscription : novembre 2006
Messages : 1 464
Points : 1 410
Points : 1 410
je dirai qu'a priori, tu ne peux pas, tu aurais pu utiliser une macro evenmentielle (selection quand change qui appelle la function, mais dans ce cas là, il faut appeler avec les arguments et le fonctionement n'est pas le même que ta function, mais le changement de couleur d'une cellule n'a pas l'air de déclencher un tel evenement.
par contre tu peux au moins, sans retourner dans ta cellule appuyer sur F9 (calcul de la feuille), ce qui semble suffir a mettre ta formule a jour
alsimbad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2011, 09h52   #3
Membre confirmé
 
Avatar de Contrec
 
Inscription : mars 2005
Messages : 566
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : mars 2005
Messages : 566
Points : 264
Points : 264
Merci pour l'astuce du F9, en effet ça fonctionne bien. Du coup je me demande : N'y a t-il pas moyen de capter l'évènement changement de couleur pour exécuter ce F9 automatiquement ?
__________________
Contrec - Toulouse
Contrec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2011, 10h35   #4
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Bonjour

Tes couleurs sont manuels ou issus d'un mise en forme conditionnelle?

Pour la réponse 1, une usine à gaz que je n'apprécie pas. J'ai vu en diagonal un sujet similaire précédemment.

Pour la réponse 2, c'est faisable en interceptant le changement des valeurs des cellules.
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2011, 10h46   #5
Membre confirmé
 
Avatar de Contrec
 
Inscription : mars 2005
Messages : 566
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : mars 2005
Messages : 566
Points : 264
Points : 264
Je fais le changement manuellement sur mes cellules... si c'est une usine à gaz qui fonctionne pourquoi pas...
__________________
Contrec - Toulouse
Contrec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2011, 12h29   #6
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Avant de colorier une cellule, tu la sélectionne. non?
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2011, 12h42   #7
Membre confirmé
 
Avatar de Contrec
 
Inscription : mars 2005
Messages : 566
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : mars 2005
Messages : 566
Points : 264
Points : 264
En général j'en sélectionne plusieurs, dont celles qui concernent le calcul de la somme et je change manuellement la couleur.
Pour information, c'est un excel de suivi d'un crédit immobilier, chaque mois je passe le montant payé en vert et j’aimerai que cette action passe le calcul de la somme automatiquement.
J'en déduis donc qu'il y a un évènement de sélection des cellules...
__________________
Contrec - Toulouse
Contrec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2011, 12h52   #8
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Code :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Pour intercepter la sélection d'une plage de cellules (Target) de la feuille.

Mon avis personnel, recherche une autre conception que celle d'essayer d'intercepter le changement de couleur d'une cellule.

PS

Tu sélectionne une plage X, le re calcul de la feuille est lancé (qui peut prendre beaucoup de temps et de ressources si tu as beaucoup de formules)
Tu change la couleur, rien n'est recalculé
Tu sélectionne une plage Y, le re calcul de la feuille est lancé....

C'est du n'importe quoi le code contre exemple ci-dessous:
Code :
1
2
3
4
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 
If Not Intersect(Target, Range("A1:L24")) Is Nothing Then Application.Calculate
End Sub
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2011, 13h12   #9
Membre confirmé
 
Avatar de Contrec
 
Inscription : mars 2005
Messages : 566
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : mars 2005
Messages : 566
Points : 264
Points : 264
S'il n'y a pas de moyen pour capter l'évènement de changement de couleur, en effet je vais plutôt voir du côté des sélections de cellules. L'avantage que j'ai c'est qu'il n'y aura que 2 fonctions dans tout mon classeur excel, ça ne fera pas trop lourd...

Merci beaucoup pour la solution !
__________________
Contrec - Toulouse
Contrec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2011, 18h56   #10
Membre Expert
 
Inscription : novembre 2006
Messages : 1 464
Détails du profil
Informations personnelles :
Âge : 49

Informations forums :
Inscription : novembre 2006
Messages : 1 464
Points : 1 410
Points : 1 410
Citation:
Envoyé par contrec
c'est un excel de suivi d'un crédit immobilier, chaque mois je passe le montant payé en vert et j’aimerai que cette action passe le calcul de la somme automatiquement.
et pourquoi ne pas affecter ton calcul a la date. perso, c'est ce que je fais, le 10 du mois la cellule passe en vert et le calcul du solde est permanent, il n'est pas lié au changement de couleur. aucune macro, et des formules relativement simples
alsimbad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2011, 19h47   #11
Expert Confirmé
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 699
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : ex Observeur CGG / Analyste prog.

Informations forums :
Inscription : juin 2006
Messages : 1 699
Points : 3 615
Points : 3 615
Salut,à mon humble avis une MFC + Formules serait appropriée, il y a des tutos sur http://excel.developpez.com/faq/?page=mefc http://silkyroad.developpez.com/Exce...onditionnelle/
kiki29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 13h36   #12
Membre confirmé
 
Avatar de Contrec
 
Inscription : mars 2005
Messages : 566
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : mars 2005
Messages : 566
Points : 264
Points : 264
Merci pour le lien, je vais explorer ça de plus près
__________________
Contrec - Toulouse
Contrec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 14h53   #13
Expert Confirmé
 
Philippe Tulliez
Développeur et formateur VBA, Excel et Word.
Inscription : janvier 2010
Messages : 1 305
Détails du profil
Informations personnelles :
Nom : Philippe Tulliez
Localisation : Belgique

Informations professionnelles :
Activité : Développeur et formateur VBA, Excel et Word.

Informations forums :
Inscription : janvier 2010
Messages : 1 305
Points : 2 653
Points : 2 653
Bonjour,
Petite astuce : Si tu modifies la couleur à l'aide du pinceau, le recalcul est actionné
__________________
Philippe Tulliez
http://philippe.tulliez.be
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)

Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
corona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 13h34   #14
Membre confirmé
 
Avatar de Contrec
 
Inscription : mars 2005
Messages : 566
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : mars 2005
Messages : 566
Points : 264
Points : 264
Je modifie le fond de la cellule en vert pour être précis...
__________________
Contrec - Toulouse
Contrec est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h36.


 
 
 
 
Partenaires

Hébergement Web