Récupérer le colorindex d'une police modifié par MEFC

Le
ThierryP
Bonjour aux irréductibles du forum (j'en suis !!),

Je bute sur un truc bête.
Je change la couleur de la police d'une cellule par MEFC et j'essaye de
récupérer son colorindex : J'ai droit à 0 pour une cellule standard et -4105 si
la MEFC est appliquée.A part réécrire en VBA la condition de la MEFC, y
a-t-il moyen de récupérer cette valeur ?

Merci d'avance !

PS : Est-ce que certains d'entre vous ont commencé à fréquenter le forum ouvert
par Michel Claveau (ponx.fr) ?

--


@+ thierryp
--
Passer pour un idiot aux yeux d'un imbécile est une volupté de fin gourmet - G.
Courteline
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #22138001
Bonjour,

Un petit exemple :

Ma formule de ma condition :
si ma cellule = "$B$2" vérifier la propriété ColorIndex

La procédure teste si la formule de la mise en forme
conditionnelle est appliquée à la cellule A1, si oui,
on extrait la valeur de la propriété ColorIndex
de "FormatCondition(1)" sinon on extrait la valeur
de la propriété "ColorIndex de la cellule A1

Si on a plusieurs mises en forme conditionnelles, on peut
effectuer une boucle
For each Fc in Feuil1.Range("A1").FormatConditions(1)
If Range("A1").Value = Evaluate(Fc.Formula1) Then
A ü.Interior.ColorIndex
'.../reste du code

Next
'----------------------------------
Sub test()
Dim A As Long
Dim X As FormatCondition
With Feuil1.Range("A1").FormatConditions(1)
If Range("A1").Value = Evaluate(.Formula1) Then
A = .Interior.ColorIndex
Else
A = Range("A1").Interior.ColorIndex
End If
End With
MsgBox A
End Sub
'----------------------------------



"ThierryP"
Bonjour aux irréductibles du forum (j'en suis !!),

Je bute sur un truc bête....
Je change la couleur de la police d'une cellule par MEFC et j'essaye de
récupérer son colorindex : J'ai droit à 0 pour une cellule standard et -4105 si
la MEFC est appliquée....A part réécrire en VBA la condition de la MEFC, y
a-t-il moyen de récupérer cette valeur ?

Merci d'avance !

PS : Est-ce que certains d'entre vous ont commencé à fréquenter le forum ouvert
par Michel Claveau (ponx.fr) ?

--


@+ thierryp
-----------------
Passer pour un idiot aux yeux d'un imbécile est une volupté de fin gourmet - G.
Courteline
ThierryP
Le #22138251
Bonjour Michdenis,

Merci de ta réponse!
J'avais annulé mon message, vu qu'en faisant une petite recherche sur le forum,
j'étais tombé sur une ficelle expliquant que grosso modo ce n'était pas possible...
J'ai testé ta procédure mais j'ai une incompatibilité de type sur la ligne If
range("A1").... Deuxième question : tu définis X mais tu ne t'en sers pas ?

D'avance merci !

Le 19/05/2010 12:28, michdenis a écrit :
Bonjour,

Un petit exemple :

Ma formule de ma condition :
si ma cellule = "$B$2" vérifier la propriété ColorIndex

La procédure teste si la formule de la mise en forme
conditionnelle est appliquée à la cellule A1, si oui,
on extrait la valeur de la propriété ColorIndex
de "FormatCondition(1)" sinon on extrait la valeur
de la propriété "ColorIndex de la cellule A1

Si on a plusieurs mises en forme conditionnelles, on peut
effectuer une boucle
For each Fc in Feuil1.Range("A1").FormatConditions(1)
If Range("A1").Value = Evaluate(Fc.Formula1) Then
A ü.Interior.ColorIndex
'.../reste du code

Next
'----------------------------------
Sub test()
Dim A As Long
Dim X As FormatCondition
With Feuil1.Range("A1").FormatConditions(1)
If Range("A1").Value = Evaluate(.Formula1) Then
A = .Interior.ColorIndex
Else
A = Range("A1").Interior.ColorIndex
End If
End With
MsgBox A
End Sub
'----------------------------------



"ThierryP"
Bonjour aux irréductibles du forum (j'en suis !!),

Je bute sur un truc bête....
Je change la couleur de la police d'une cellule par MEFC et j'essaye de
récupérer son colorindex : J'ai droit à 0 pour une cellule standard et -4105 si
la MEFC est appliquée....A part réécrire en VBA la condition de la MEFC, y
a-t-il moyen de récupérer cette valeur ?

Merci d'avance !

PS : Est-ce que certains d'entre vous ont commencé à fréquenter le forum ouvert
par Michel Claveau (ponx.fr) ?




--


@+ thierryp
-----------------
Passer pour un idiot aux yeux d'un imbécile est une volupté de fin gourmet - G.
Courteline
michdenis
Le #22138471
L'explication est dans le fichier joint.

http://cjoint.com/?ftoK2do7Pi
ThierryP
Le #22138611
Re-bonjour,

J'avais deviné en partie....! Mais je bute sur la valeur renvoyée par ma MEFC.

MEFC de la cellule D191 :
la formule est : =CNUM(GAUCHE($C191;2))<CNUM($I191) alors police =rouge

J'ai essayé ceci (qui fonctionne dans ton exemple) pour connaître la valeur
renvoyée : MsgBox Evaluate(Feuil1.Range("D191").FormatConditions(1).Formula1)
mais qui me renvoie une erreur....Je pensais que ça me renvoyait VRAI ou FAUX.

Merci d'avance pour ton aide !!

Le 19/05/2010 14:37, michdenis a écrit :
L'explication est dans le fichier joint.

http://cjoint.com/?ftoK2do7Pi



--


@+ thierryp
-----------------
Passer pour un idiot aux yeux d'un imbécile est une volupté de fin gourmet - G.
Courteline
michdenis
Le #22138761
As-tu essayé quelque chose comme :

if [Value(left($C191,2))] < [Value($I191)] Then
ThierryP
Le #22138921
Oui, en fait je m'en suis tiré comme ça. J'ai recréé le test en VBA et ça roule
mais par simple curiosité, j'aurais aimé savoir pourquoi j'avais ce message
d'erreur sur Evaluate(....

Merci !



Le 19/05/2010 15:23, michdenis a écrit :
As-tu essayé quelque chose comme :

if [Value(left($C191,2))]< [Value($I191)] Then



@+ thierryp
-----------------
Passer pour un idiot aux yeux d'un imbécile est une volupté de fin gourmet - G.
Courteline
michdenis
Le #22139021
| j'aurais aimé savoir pourquoi j'avais ce message
| d'erreur sur Evaluate(....

*** Quel était le contenu de la chaîne de caractères
que tu passais à "Evaluate()" ?
ThierryP
Le #22139011
MEFC de la cellule D191 :
la formule est : =CNUM(GAUCHE($C191;2))<CNUM($I191) alors police =rouge

J'ai essayé ceci (qui fonctionne dans ton exemple) pour connaître la valeur
renvoyée : MsgBox Evaluate(Feuil1.Range("D191").FormatConditions(1).Formula1)


Le 19/05/2010 16:17, michdenis a écrit :
| j'aurais aimé savoir pourquoi j'avais ce message
| d'erreur sur Evaluate(....

*** Quel était le contenu de la chaîne de caractères
que tu passais à "Evaluate()" ?








--


@+ thierryp
-----------------
Passer pour un idiot aux yeux d'un imbécile est une volupté de fin gourmet - G.
Courteline
michdenis
Le #22139291
|Evaluate("=CNUM(GAUCHE($C191;2))<CNUM($I191)")

C'est impossible pour "Evaluate" d'évaluer cette chaîne de
caractères. Evaluate() fonctionne avec une syntaxe des formules
écrites en anglais en utilisant la virgule comme séparateur.

Feuil1.Range("D191").FormatConditions(1).Formula1
retourne la formule en français

Range("A1").Formula retourne une formule en anglais avec le
bon séparateur d'argument... On parle de 2 choses totalement
différentes.



"ThierryP" #
MEFC de la cellule D191 :
la formule est : =CNUM(GAUCHE($C191;2))<CNUM($I191) alors police =rouge

J'ai essayé ceci (qui fonctionne dans ton exemple) pour connaître la valeur
renvoyée : MsgBox Evaluate(Feuil1.Range("D191").FormatConditions(1).Formula1)


Le 19/05/2010 16:17, michdenis a écrit :
| j'aurais aimé savoir pourquoi j'avais ce message
| d'erreur sur Evaluate(....

*** Quel était le contenu de la chaîne de caractères
que tu passais à "Evaluate()" ?








--


@+ thierryp
-----------------
Passer pour un idiot aux yeux d'un imbécile est une volupté de fin gourmet - G.
Courteline
ThierryP
Le #22139361
Excuse-moi, le rouge de la honte me monte au front.....
En plus, j'ai traduit la formule en VBA pour écrire ma procédure !

Quelqu'un aurait-il quelques neurones à vendre :-((((

Le 19/05/2010 17:04, michdenis a écrit :

|Evaluate("=CNUM(GAUCHE($C191;2))<CNUM($I191)")

C'est impossible pour "Evaluate" d'évaluer cette chaîne de
caractères. Evaluate() fonctionne avec une syntaxe des formules
écrites en anglais en utilisant la virgule comme séparateur.

Feuil1.Range("D191").FormatConditions(1).Formula1
retourne la formule en français

Range("A1").Formula retourne une formule en anglais avec le
bon séparateur d'argument... On parle de 2 choses totalement
différentes.





--


@+ thierryp
-----------------
Passer pour un idiot aux yeux d'un imbécile est une volupté de fin gourmet - G.
Courteline
Publicité
Poster une réponse
Anonyme