Mot en fonction d'une couleur

  • Initiateur de la discussion Initiateur de la discussion ryulair
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

R

ryulair

Guest
Bonjour à tous, j'écris aujourd'hui car j'ai un petit problème.

Je sais que dans excel je peux changer la couleur d'une cellule en fonction du mot qui est inscrit.

Moi je veux faire le contraire.

Ex : Si la case est bleu le nom Michel apparaît, si elle est jaune le nom Paul apparaît, si elle est rouge le nom Maryse apparaît etc....

Je veux éviter d'utiliser VBA.

Merci et bonne journée!
 
Re : Mot en fonction d'une couleur

Bonjour ryulair,

Si l'on ne veut pas de VBA il faut utiliser la fonction macro Excel 4.0 LIRE.CELLULE.

Voyez le fichier joint et en A2 le nom défini CodeCouleur :

Code:
=LIRE.CELLULE(38;Feuil1!A2)+ENT(ALEA())
La fonction ALEA() rend la formule volatile pour son recalcul.

A+
 

Pièces jointes

Dernière édition:
Re : Mot en fonction d'une couleur

Merci de la réponse rapide job75. Par contre j'ai une question car je ne comprend pas tout de la formule.

Tu me dis que je dois définir le code couleur en A2, mais je ne comprend pas comment le définir. Peux tu me donner un exemple?
 
Re : Mot en fonction d'une couleur

Bonjour ryulair, le forum,

Avec VBA il n'y a plus besoin de formules.

Sauf pour une fonction volatile comme AUJOURDHUI() (en A2).

Et cette macro dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :

Code:
Private Sub Worksheet_Calculate()
Dim B As Range, exclu As Range, base, i&, r As Range, v As Variant
'---préparation de la base---
Set B = [A4:B6] 'plage à adapter
Set exclu = Union([A1:A3], B) 'à adapter
base = B 'matrice
For i = 1 To UBound(base)
  base(i, 1) = B(i, 1).Interior.Color
Next
'---analyse des couleurs---
Application.EnableEvents = False 'désactive les événements
For Each r In Me.UsedRange
  If Intersect(r, exclu) Is Nothing Then
    v = Application.VLookup(r.Interior.Color, base, 2, 0)
    If Not IsError(v) Then If r <> v Then r = v
  End If
Next
Application.EnableEvents = True 'réactive les événements
End Sub
Fichier joint.

Bonne journée et A+
 

Pièces jointes

Re : Mot en fonction d'une couleur

Re,

Autre solution par VBA :

Code:
Private Sub Worksheet_Calculate()
Dim exclu As Range, B As Range, base, i As Variant, r As Range
'---préparation de la base---
Set exclu = [A1:A6,G2,G4,C9:H27] 'à adapter
Set B = [A4:A6] 'à adapter
base = B 'matrice
For i = 1 To UBound(base)
  base(i, 1) = B(i).Interior.Color
Next
'---analyse des couleurs---
Application.EnableEvents = False 'désactive les événements
For Each r In Me.UsedRange
  If Intersect(r, exclu) Is Nothing Then
    i = Application.Match(r.Interior.Color, base, 0)
    If IsNumeric(i) Then If r <> B(i) Then r = B(i)
  End If
Next
Application.EnableEvents = True 'réactive les événements
End Sub
Fichier (2).

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour