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

Macros et VBA Excel Discussion :

Condition If à partir de la couleur de la cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut Condition If à partir de la couleur de la cellule
    Bonjour,

    je voudrais exécuter une action si la cellule D2 est jaune par exemple. Je crois qu'il faut utiliser mais j'ai pas trouvé d'exemple. Pourriez-vous me dire comment faire, svp?
    Merci d'avance
    Arsene

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    tout dépend du jaune choisi bien sûr !

    pour trouver le bon, active l'enregistreur de macro et colorie une cellule avec la couleur voulue, tu auras plutôt le .Color que le .ColorIndex

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Workbooks("NomDuClasseur").Worksheets("NomDeLaFeuille").Range("D2").Interior.ColorIndex = vbYellow Then
    ' ou alors
    If Workbooks("NomDuClasseur").Worksheets("NomDeLaFeuille").Range("D2").Interior.Color = 65535 Then

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut
    Citation Envoyé par joe.levrai Voir le message
    Bonjour,

    tout dépend du jaune choisi bien sûr !

    pour trouver le bon, active l'enregistreur de macro et colorie une cellule avec la couleur voulue, tu auras plutôt le .Color que le .ColorIndex

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Workbooks("NomDuClasseur").Worksheets("NomDeLaFeuille").Range("D2").Interior.ColorIndex = vbYellow Then
    ' ou alors
    If Workbooks("NomDuClasseur").Worksheets("NomDeLaFeuille").Range("D2").Interior.Color = 65535 Then

    Merci. J'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        If Worksheets("MaFeuille").Range("D2").Interior.ColorIndex = vbYellow Then
     
            MsgBox ("Yellow")
     
        End If
    J'ai pas eu de bug mais la MsgBox n'a rien répondu. J'utilise le jaune standard.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Worksheets("MaFeuille").Range("D2").Interior.Color = 65535 Then
     
    If Worksheets("MaFeuille").Range("D2").Interior.Color = "65535" Then
    ne donne aucun résultat aussi.

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par joe.levrai Voir le message
    tout dépend du jaune choisi bien sûr !

    pour trouver le bon, active l'enregistreur de macro et colorie une cellule avec la couleur voulue, tu auras plutôt le .Color que le .ColorIndex

  5. #5
    Expert éminent 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
    Par défaut
    Si c'est du jaune "pur" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Range("D2").Interior.Color = RGB(255, 255, 0)
    ou bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Range("D2").Interior.Color = vbYellow
    Si ce n'est pas du jaune pur, il va falloir jouer sur les codes RGB.

    Citation Envoyé par joe.levrai Voir le message
    [code]If Workbooks("NomDuClasseur").Worksheets("NomDeLaFeuille").Range("D2").Interior.ColorIndex = vbYellow Then
    Attention : vbYellow n'est pas un numéro d'index de couleur mais le code RGB de la couleur.
    Il fonctionne avec Color mais pas avec ColorIndex.

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Oui t'as raison

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut
    J'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox (Range("D2").Interior.Color)
    J'ai obtenu le numéro de la couleur : 16777215

    J'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        If Range("D2").Interior.Color = 16777215 Then
     
            MsgBox ("Yellow")
     
        End If
    La MsgBox a affiché Yellow.


    J'ai testé avec la cellule H2 qui est colorée en orange et j'ai obtenu la même réponse.

    Si je remplace Color par ColorIndex, j'obtiens -4142 quelque soit la couleur de la cellule.

  8. #8
    Expert éminent 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
    Par défaut
    Citation Envoyé par Arsene12 Voir le message
    J'ai fait : If Range("D2").Interior.Color = 16777215 Then
    En utilisant une fonction RGB() comme indiqué dans mon poste, ça aurait été plus propre.

    Pour info, 16777215 c'est blanc. C'est l'équivalent de RGB(255,255,255).
    Jaune c'est 65535.

    J'ai testé avec la cellule H2 qui est colorée en orange et j'ai obtenu la même réponse.
    Si je remplace Color par ColorIndex, j'obtien -4142 quelque soit la couleur de la cellule.
    Tes couleurs ne seraient-elles pas issues d'une mise en forme conditionnelle ?
    (je pose la question en étant quasiment sûr de la réponse étant donné le "jaune - blanc" évoqué ci-dessus).

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

Discussions similaires

  1. [XL-2016] Pb coloration d'une forme en VBA à partir de la couleur d'une cellule.
    Par mentat dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/10/2017, 01h24
  2. [XL-2007] colorier une forme à partir de la couleur d'une cellule
    Par taz2328 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/11/2010, 18h24
  3. Réponses: 5
    Dernier message: 18/11/2006, 14h26
  4. Réponses: 3
    Dernier message: 31/10/2006, 12h20
  5. une couleur de txt lisible à partir de la couleur de fond
    Par XecTech dans le forum Composants VCL
    Réponses: 11
    Dernier message: 06/06/2005, 16h02

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