Reconnaissance de couleurs par macro

ExcelMans

XLDnaute Nouveau
Bonjour à tous

Voici mon problème
Par macro, Je cherche a comparer les couleurs ( blanc et gris ) de 2 tableaux case pour case. J'utilise l'instruction " CoulOR = ActiveCell.Interior.ColorIndex" pour identifier la couleur. Ce code marche très bien si la case est coloriée via le menu " Format/cellule/motif".

En revanche si cette couleur est activée par la mise en forme conditionnelle, la macro ne reconnaît pas systématiquement la couleur de cette case, mais reconnaît la couleur par défaut. ( il arrive que parfois la macro identifie la couleur de la mise en forme conditionnelle ).

Existe t-il un moyen de contourner ce problème ? Soit par un code macro, soit en figeant les couleurs, du type copier/coller format, sauf que cette manip de marche pas.

Merci pour votre aide.

ExcelMans
 

jeanpierre

Nous a quitté
Repose en paix
Re : Reconnaissance de couleurs par macro

re,

Dans ta feuille, tu as une mise en forme conditionnelle et pour qu'elle fonctionne tu as bien mis une formule, c'est cette formule avec ses conditions qu'il faut retranscrire dans ta macro.

Sans plus, il est difficile de développer davantage.

Regarde néanmoins, en bas de ce fil (pas vérifié), dans les cinq discussions similaires s'il y a des exemples ou bien aussi avec la fonction Recherche en haut à droite sous ton pseudo, ce thème est assez fréquent.

Edit : Bonsoir Lii, bonsoir chris (bises en retour)
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Reconnaissance de couleurs par macro

Bonjour à tous
Dans ce type de problème, n'est-il pas préférable d'utiliser la propriété Color au lieu de ColorIndex ?

La procédure :

Code:
[COLOR="DarkSlateGray"][B]Sub pRout()
Dim i As Byte
   For i = 1 To 56
      With [A1]
         .Offset(i, 0).Value = i
         .Offset(i, 1).Interior.ColorIndex = i
         .Offset(i, 2).Value = .Offset(i, 1).Interior.Color
   End With
   Next i
End Sub[/B][/COLOR]

permet d'établir la correspondance des valeurs des deux propriétés.​
ROGER2327
#2069
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Reconnaissance de couleurs par macro

Bonsoir le fil, bonsoir le forum,

J'ai testé avec Color à la place de ColorIndex mais le problème reste le même en cas de mise en forme conditionnelle... Quant à la solution FormatConditions(1).Interior.ColorIndex, elle renvoie la couleur du format coditionnel qu'il soit appliqué ou pas. Voir pièce jointe.

Je pense aussi qu'une solution est de reprendre la condition de la MFC dans la macro...
 

Pièces jointes

  • Excelmans_v01.xls
    37.5 KB · Affichages: 97
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Reconnaissance de couleurs par macro

Suite...
L'ajout du classeur sans relancer la discussion... n'est pas tellement visible !
Ceci dit, l'ayant vu, je ne trouve pas autre chose que ça :
Code:
[COLOR="DarkSlateGray"][B]Sub Macro1()
Dim cel As Range
   For Each cel In Range("A1:A20")
      If cel.Value = 1 Then cel.Offset(0, 1).Value = "Jaune" Else cel.Offset(0, 1).Value = Empty
   Next cel
End Sub[/B][/COLOR]
autrement dit tester la condition qui sélectionne la mise en forme conditionnelle.
C'est ce que suggérait jeanpierre (#2).
ROGER2327
#2074
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Reconnaissance de couleurs par macro

Re...
Intéressant. Le principe est le même : "repêchage" des formules conditionnant la mise en forme. Belle fonction pour automatiser ce "repêchage" au lieu de l'inscrire "en dur" dans la procédure. A retenir (si on en a l'usage, bien sûr ! Et bien faire attention aux restrictions liminaires...).​
ROGER2327
#2076
 

Discussions similaires

Statistiques des forums

Discussions
312 107
Messages
2 085 354
Membres
102 873
dernier inscrit
yayo