Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

récupérer les codes couleurs sur mise en forme conditionnelle

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 !

obelix77

XLDnaute Junior
Bonjour à tous,

J'utilise le code ci-dessous qui me permet de récupérer le code couleur de la palette de 56 couleurs Excel, quand une cellule est remplie en couleur.

Mon problème : cette macro ne fonctionne que si les couleurs ont été mises manuellement.
Si les couleurs provienne d'une mise en forme conditionnelle ou d'un tableau d'Excel, voir un TC, cette macro considère qu'il n'y a aucune couleur.

Je suis nul en VBA. Quelqu'un pourrait m'aider?

Un grand merci à vous

Obelix77

Code:
Function Couleur(CL As Range) As Long
Couleur = CL.Interior.ColorIndex
End Function
 
Re : récupérer les codes couleurs sur mise en forme conditionnelle

J'ai cherché mais je n'ai pas trouvé...

C'est la condition " If Cel.DisplayFormat.Interior.Color = ..." qui semble ne pas être acceptée dans une fonction...mais je ne sais pas pourquoi...

Désolé...

Cordialement
 
Re : récupérer les codes couleurs sur mise en forme conditionnelle

Merci beaucoup mécano41.

Peut être quelqu'un d'autre aura une diée.

SInon, va falloir que je trouve autre chose que les MFC 🙁 🙁 🙁 🙁

Bon dimanche à tous
 
Re : récupérer les codes couleurs sur mise en forme conditionnelle

Bonjour,

Tu as toujours la solution proposée par plusieurs intervenants : utiliser les conditions de la cellule munie de la MFC, pour en déterminer la couleur ; mais peut-être cela sera-t-il trop compliqué dans ton application réelle...

PS : j'aurais quand même bien aimé savoir où je me suis trompé dans la fonction que j'ai faite ... 😡 🙂 🙂

Cordialement
 
Re : récupérer les codes couleurs sur mise en forme conditionnelle

Bonjour à tous,

C'est la condition " If Cel.DisplayFormat.Interior.Color = ..." qui semble ne pas être acceptée dans une fonction...mais je ne sais pas pourquoi...

Voyez ce lien :

Ce lien n'existe plus

Note that the DisplayFormat property does not work in user defined functions

A+



Note that the DisplayFormat property does not work in user defined functions
 
Re : récupérer les codes couleurs sur mise en forme conditionnelle

Re,

Par contre appelée dans VBA la fonction fonctionne :

Code:
Sub a()
MsgBox F([A1])
End Sub

Function F(r As Range)
F = r.DisplayFormat.Interior.ColorIndex
End Function
A+
 
Re : récupérer les codes couleurs sur mise en forme conditionnelle

Bonjour mécano41 et bonjour à tous

En fait, je m'adresse à des utilisateurs basiques qui savent :
utiliser SI
utilise SOMME.SI et NB.SI
et qui sauront utiliser une fonction simple du type "=couleur" ou "couleurMFC", en pointant sur une cellule

D’où ma demande insistante d'voir une fonction qui donne le code couleur d'un fond de cellule, qu'il soit manuel ou MFC.

Je suis sur que, vue les compétences sur ce forum, on va finir par y arriver.
En plus, je suis d'un naturel optimiste 😎

Bon après midi à tous
 
Re : récupérer les codes couleurs sur mise en forme conditionnelle

Re,

Pourquoi ne pas utiliser une feuille auxiliaire pour stocker les codes couleurs ?

Voyez le fichier joint et cette macro dans le code de la 1ère feuille :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim P As Range, t, ncol%, i&, j%
Set P = Me.UsedRange
If P.Count = 1 Then
  t = P.DisplayFormat.Interior.ColorIndex
Else
  t = P 'matrice, plus rapide
  ncol = UBound(t, 2)
  For i = 1 To UBound(t)
    For j = 1 To ncol
      t(i, j) = P(i, j).DisplayFormat.Interior.ColorIndex
  Next j, i
End If
With Feuil2 'CodeName de la feuille auxiliaire
  .Cells.ClearContents 'RAZ
  .Range(P.Address) = t
End With
End Sub
Dans les formules analysant la 1ère feuille il suffit d'utiliser la feuille "Couleurs" quand il s'agit d'étudier les couleurs...

A+
 

Pièces jointes

Re : récupérer les codes couleurs sur mise en forme conditionnelle

Bonjour à tous.


Un bricolage à adapter...​


Bonne journée.


ℝOGER2327
#8194


Samedi 7 Gueules 143 (Saint Gueule, abbé - fête Suprême Quarte)
12 Pluviôse An CCXXIV, 5,6805h - brocoli
2016-W05-1T13:38:00Z
 

Pièces jointes

Re : récupérer les codes couleurs sur mise en forme conditionnelle

Re, bonjour Roger,

En complément voyez cette fonction fourre-tout qui gère les références :

Code:
Function REF(r As Range, Optional NumeroFeuil = 1, Optional adresse = False)
If adresse Then REF = r.Address(0, 0) _
  Else Set REF = IIf(NumeroFeuil = 1, Feuil1, Feuil2).Range(r.Address)
End Function
Elle renvoie soit l'adresse de la référence (colonne I) soit la référence dans la feuille indiquée (colonne J).

Fichier (3).

A+
 

Pièces jointes

Dernière édition:
Re : récupérer les codes couleurs sur mise en forme conditionnelle

Bonjour à Tous

Les procédures utilisant (DisplayFormat.Interior.ColorIndex) ne fonctionnent que sur office2013 et après, mais office2007 c'est râpé.
par contre avec la procédure de "L.Longre" pas de souci, je l'appel depuis une autre c'est tout bon.

A+ Jean-Paul
 
- 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

Discussions similaires

Réponses
2
Affichages
142
Réponses
6
Affichages
665
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…