IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Lancer une fonction lors du changement de couleur d'une cellule [XL-2010]


Sujet :

Excel

  1. #1
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    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

  3. #3
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    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 ?

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    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.

  5. #5
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Je fais le changement manuellement sur mes cellules... si c'est une usine à gaz qui fonctionne pourquoi pas...

  6. #6
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Avant de colorier une cellule, tu la sélectionne. non?

  7. #7
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    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...

  8. #8
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  9. #9
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    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 !

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    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

  11. #11
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    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/

  12. #12
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Merci pour le lien, je vais explorer ça de plus près

  13. #13
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 922
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 922
    Points : 28 908
    Points
    28 908
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Petite astuce : Si tu modifies la couleur à l'aide du pinceau, le recalcul est actionné

  14. #14
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Je modifie le fond de la cellule en vert pour être précis...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 17
    Dernier message: 16/07/2012, 14h10
  2. Réponses: 1
    Dernier message: 27/03/2012, 17h14
  3. Réponses: 3
    Dernier message: 22/09/2009, 21h34
  4. [MySQL] Changement de couleur d'une cellule en fonction d'une requete
    Par freko dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 10/07/2008, 16h56
  5. Renommer une fonction dans un select ou concevoir autrement une fonction
    Par tavarlindar dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 30/05/2008, 17h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo