Modifier la couleur de cellule en fonction du texte d'une colonn
Résolu/Fermé
A voir également:
- Modifier la couleur de cellule en fonction du texte d'une colonn
- Excel cellule couleur si condition texte - Guide
- Fonction si et - Guide
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Aller à la ligne dans une cellule excel - Guide
2 réponses
via55
Messages postés
14504
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
21 décembre 2024
2 738
Modifié le 19 juil. 2017 à 14:12
Modifié le 19 juil. 2017 à 14:12
Bonjour
Cela doit être possible par MFC pourtant (à condition de nommer la plage des fournisseurs pou pouvoir l'utiliser dans une formule de MFC sur une autre feuille)
Postes un exemple de ton fichier (allégé et anonymé si nécessaire) sur monpartage.fr, fais créer un lien, copies le et reviens le coller ici, on aura une base de travail
Cdlmnt
Via
"L'imagination est plus importante que le savoir." A. Einstein
Cela doit être possible par MFC pourtant (à condition de nommer la plage des fournisseurs pou pouvoir l'utiliser dans une formule de MFC sur une autre feuille)
Postes un exemple de ton fichier (allégé et anonymé si nécessaire) sur monpartage.fr, fais créer un lien, copies le et reviens le coller ici, on aura une base de travail
Cdlmnt
Via
"L'imagination est plus importante que le savoir." A. Einstein
Bonjour Gyom,
Dans ton code VBA, le deux-points « : » après le else est en trop, car
en le laissant, ça signifie : « sinon rien » ; puis exécuter l'instruction
suivante (après le deux-points).
Pour les couleurs que tu veux mettre, au lieu de .Color, il faut que
tu utilises .ColorIndex
Essaye ce code VBA :
Couleur xlNone : Aucune couleur
(ce qui est différent de Blanc).
Merci de me dire si ça te convient.
Cordialement
Dans ton code VBA, le deux-points « : » après le else est en trop, car
en le laissant, ça signifie : « sinon rien » ; puis exécuter l'instruction
suivante (après le deux-points).
Pour les couleurs que tu veux mettre, au lieu de .Color, il faut que
tu utilises .ColorIndex
Essaye ce code VBA :
Option Explicit Sub Essai() Dim li As Long, ly As Long, i As Long, y As Long li = Range("E" & Rows.Count).End(xlUp).Row ly = Range("A" & Rows.Count).End(xlUp).Row For i = 5 To li For y = 11 To ly With Range("E" & i) If .Value <> Worksheets("1.3 - Coordonnée fournisseur").Range("A" & y) Then .Interior.ColorIndex = 3 ' rouge Else .Interior.ColorIndex = xlNone End If End With Next y Next i End Sub
Couleur xlNone : Aucune couleur
(ce qui est différent de Blanc).
Merci de me dire si ça te convient.
Cordialement
Bonjour Steve,
Merci pour ton code, mais malheureusement, cela ne fonctionne pas.
Effectivement, pour le else je l'avais tapé rapidement avec un espace et le ":" s'est mis automatiquement sans l'avoir vu, merci ;-) !
Petite question annexe cela change quoi entre color et color index? (car de mon coté j'utilse color, et cela fonctionne dans d'autre macro)
Cordialement
Merci pour ton code, mais malheureusement, cela ne fonctionne pas.
Effectivement, pour le else je l'avais tapé rapidement avec un espace et le ":" s'est mis automatiquement sans l'avoir vu, merci ;-) !
Petite question annexe cela change quoi entre color et color index? (car de mon coté j'utilse color, et cela fonctionne dans d'autre macro)
Cordialement
Bonjour Gyom,
Matériellement, sur un écran couleur :
Un pixel en couleur est un "mélange" de ces 3 couleurs de base :
Red (rouge), Green (vert), Blue (Bleu).
----------------------------------------------------
La "quantité" de couleur pour chaque couleur de base donne
un nombre de type Long et RGB() renvoie un entier Long.
exemple : [B2].Interior.Color = RGB(255, 0, 0)
=> quantité de rouge : 255 ; quantité de vert : 0 ; quantité de bleu : 0
=> couleur rouge
Avec RGB(), tu peux indiquer n'importe quelle couleur.
Regarde l'aide VBA sur RGB() pour plus de détails.
----------------------------------------------------
La palette de couleurs est un sous-ensemble limité de toutes
les couleurs ; ColorIndex est un n° d'index pour cette palette.
exemple : [B2].Interior.ColorIndex = 3
N° d'index palette = 3 => couleur rouge
Regarde l'aide VBA sur ColorIndex pour plus de détails.
----------------------------------------------------
Dans ton code VBA, tu n'as besoin que du rouge (celui de la palette)
et de "Aucune couleur" ; c'est pourquoi j'ai utilisé ColorIndex.
Si le code VBA ne marche pas, ça ne peut être qu'à cause de
l'emplacement réel de tes données => à vérifier et adapter.
----------------------------------------------------
Pour la suite, lis le message de via55 de 17:13.
Merci pour ces compléments d'infos!
La solution de via55 correspond tout à fait à mes attentes, et est beaucoup plus simple à déployer que de s'embeter à faire une macro.
Merci de ton aide, je regarderai tout de meme pourquoi cela ne fonctionne pas car ça me titille tout de même d'avoir passé autant de temps sans avoir réussi à le faire.
Cordilament,
La solution de via55 correspond tout à fait à mes attentes, et est beaucoup plus simple à déployer que de s'embeter à faire une macro.
Merci de ton aide, je regarderai tout de meme pourquoi cela ne fonctionne pas car ça me titille tout de même d'avoir passé autant de temps sans avoir réussi à le faire.
Cordilament,
Peut-être que le nom de ta feuille est plutôt "1.3 - Coordonnées fournisseurs" ?
Si la feuille était déjà bonne :
Est-ce bien la colonne A ? les lignes sont-elles bien celles de y : de 11 à ly ?
⚠ Si tu changes la colonne, par exemple en B, n'oublie pas de corriger ly :
ly = Range("B" & Rows.Count).End(xlUp).Row
20 juil. 2017 à 16:52
Merci de ta réponse. En MFC, je ne vois pas comment faire, mais si tu as une idée, je suis preneur, ca me facilitera la tache.
Voici le lien d'un exemple de fichier : https://mon-partage.fr/f/mEwg5YXk/
Cordialement
Modifié le 20 juil. 2017 à 17:14
Ton fichier avec la MFC :
https://mon-partage.fr/f/11UsWH02/
La plage A11:A200 de la feuille Fournisseurs a été nommée fournisseurs pour être utilisée dans la formule de la MFC
Cdlmnt
Via
24 juil. 2017 à 15:14
Effectivement je comprends mieux comment nommer une sélection et s'en servir dans une formule surtout pour des MFC.
Encore merci, affaire résolu!