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 :

Accorder une note en fonction de la couleur d'une cellule [XL-2010]


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2018
    Messages : 4
    Points : 6
    Points
    6
    Par défaut Accorder une note en fonction de la couleur d'une cellule
    Bonjour à tous,

    je souhaite depuis un tableau attribuer des points en fonction de la couleur(3 possibilités) d'une cellule

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =si(a1=rouge;10;si(a1=orange;4;si(a1=jaune;2;"")))
    il y a bien la mise en forme conditionnelle mais celle ci n'est valable que dans le sens valeur=>couleur

    je pense qu'il faut mettre dans la fonction un type rvb:255.0.0 mais je ne trouve pas comment l'appliquer.

    merci pour votre aide

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Je ne pense pas que tu puisse lire la couleur d'une cellule avec les fonctions standard de Excel.

    ici une function VBA qui fait cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public Function LireCouleur(prmCellule As Range) As Long
        Application.Volatile
        LireCouleur = prmCellule.Interior.Color
    End Function
    Ca a te retourner un nombre qui correspond au 3 couleurs de bases melangees.
    La solution la plus simple pour obtenir cette valeur est
    1. Colorier une cellule de chaque couleur.
    2. Selectionner la cellule de la couleur qui t'interesse.
    3. Aller dans l'editeur de code VBA ([F11])
    4. Aller dans la fenetre d'execution immediate ([ctrl][g])
    5. Taper ? ActiveCell.Interior.Color [Enter].
      Le nombre affiche est la couleur de la cellule.


    Apres tu peux ecrire une formule du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(LireCouleur(A1)=255; 10; SI(LireCouleur(A1)=IciValeurPourOrange; 4; SI(LireCouleur(A1)=IciValeurPourJaune; 2; "")))
    Et tu pourrais aussi tout faire dans la function VBA :

    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
    17
    18
    19
    20
    public function AssignerPoint(prmCellule as range) as long
       dim result as long
       application.volatile
     
       select case prmCellule.Interior.Color
           case 255 'Rouge
               result=10
     
           case IciValeurPourOrange
               result=4
     
           case IciValeurPourJaune
               result=2
     
           case else
               result=0
       end select
     
       AssignerPoint=Result
    end function
    et ta formule deviant :

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par ludovicP Voir le message
    je souhaite depuis un tableau attribuer des points en fonction de la couleur(3 possibilités) d'une cellule
    exemple: =si(a1=rouge;10;si(a1=orange;4;si(a1=jaune;2;"")))
    C'est un marronnier de ce forum.
    Et la conclusion est toujours la même : utiliser les couleurs comme données d'entrée dans Excel est une TRES mauvaise idée.

    A ma connaissance, il n'existe pas de solution fiable, même en passant par VBA, excepter de faire une macro à déclencher "à la main" chaque fois qu'on fait une modification car il n'existe pas de moyen dans Excel ou VBA de considérer un changement de format de cellule (entre autre une couleur) comme élément influent sur un calcul. En pratique ça veut dire que si tu changes de couleur, Excel ne relance pas de calcul, y compris si la fonction est une fonction en VBA, y compris si elle contient une "Option Volatile".

    Donc, quelle que soit l'option utilisée, elle ne sera pas fiable.
    Ce qui explique pourquoi je dis que c'est une TREEEES mauvaise idée.

    Mieux vaut faire le contraire : utiliser une donnée (une note par exemple) qui modifiera la couleur par une MFC.

    Citation Envoyé par marot_r Voir le message
    ici une function VBA qui fait cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public Function LireCouleur(prmCellule As Range) As Long
        Application.Volatile
        LireCouleur = prmCellule.Interior.Color
    End Function
    Fais le test : après avoir saisie la fonction dans une cellule Excel, modifie la couleur de la cellule pointée et regarde le résultat.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    En effet je n'avais pas pense a cela qu'un changement de couleur ne declenche pas de recalcul.

    A mon avis, une facon de combiner les 2 est d'utliser la mise en forme conditionnelle basee sur la valeur et d'afficher le texte dans la couleur du fond donnant l'illusion que la cellule est vide.
    Un truc du genre =(A1="R"), afficher en rouge sur fond rouge.
    Et comme le metionne Menhir d'utiliser la valeur comme source du test.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2018
    Messages : 4
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Merci pour vos retour sur le sujet.
    Je me doutais bien que la manipulation ne semblait pas évidente.
    Je vais donc choisir le choix de la raison et me diriger vers une mise en forme conditionnelle .

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

Discussions similaires

  1. Changer la couleur d'une textbox en fonction d'un champ
    Par sebsebseb0608 dans le forum IHM
    Réponses: 3
    Dernier message: 12/08/2011, 18h01
  2. Réponses: 12
    Dernier message: 30/12/2010, 14h30
  3. Réponses: 5
    Dernier message: 03/02/2009, 13h43
  4. rendre invisible les partie d'une form en fonction de leur couleur?
    Par Jayceblaster dans le forum Windows Forms
    Réponses: 1
    Dernier message: 09/07/2007, 14h41
  5. couleur d'une police en fonction d'une condition
    Par floune dans le forum Access
    Réponses: 1
    Dernier message: 15/04/2006, 21h43

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