Couleur Police selon Résultat Formule

L

ljoue

Guest
Bonjour à tous,

J'ai dans une feuille 'Moderato F'! une formule dont le résultat récupère soit le résultat de la :

- feuille 'Moderato S'!
- feuille 'Moderato E'!

Voici la Formule en C2 sur la feuille 'Moderato F'!

C2 = SI('Moderato S'!C2=0;'Moderato E'!C2;'Moderato S'!C2)

Question :
Comment faire pour :

- afficher le résultat en Rouge si il provient de 'Moderato E'!

- afficher le résultat en Vert si il provient de 'Moderato S'!


Rq : La mise en forme conditionnelle ne fonctionne pas car les données se trouvent sur d'autres feuilles que celle de la formule !

Merci d'avance

Cordialement,
Laurent
 
L

ljoue

Guest
Bon je crois que j'ai trouvé

Code :

Sub Couleur()

Dim i As Integer

For i = 2 To 36
Sheets('Moderato F').Select
If Cells(i, 3) = Sheets('Moderato E').Cells(i, 3) Then
Sheets('Moderato F').Select
Cells(i, 3).Interior.ColorIndex = 3 'colorie A1 en rouge
End If

Sheets('Moderato F').Select
If Cells(i, 3) = Sheets('Moderato S').Cells(i, 3) Then
Sheets('Moderato F').Select
Cells(i, 3).Interior.ColorIndex = 4
End If

Next i
End Sub
 

Humansoft

XLDnaute Occasionnel
Bojnour ljoue, Bonjour le Forum

Voici une méthode qui n'est pas très orthodoxe mais qui fonctionne.
Lorsque la cellule change de valeur, cela lance la macro colorize afin de vérifier à quelle feuille le résultat correspond.

La mise en forme conditionnelle ne fonctionne pas de feuille en feuille.
La vérification ne peut se faire que sur la même feuille.
Tu peux envisager de rapatrier les résultats sur cette feuille puis utiliser la MFC.

Regarde et utilise pour savoir si cela te convient.

Colle le code suivant dans la feuille:
Private Sub Worksheet_Change(ByVal Target As Range)

Colorize

End Sub

Puis dans un module, ajoute ce code:
Sub Colorize()
'
' Macro enregistrée le 25/08/2005 par Humansoft ©2005
'

'
Sheets('ModeratoF').Select
If Range('C2').Value = Range('ModeratoS!C2').Value Then
Range('C2').Select
With Selection.Font
.ColorIndex = 50
.FontStyle = 'Gras'
End With
Else
Range('C2').Select
With Selection.Font
.ColorIndex = 3
.FontStyle = 'Gras'
End With
End If

End Sub

ATTENTION. Tu dois modifier le nom des feuilles afin d'enlever l'espace entre Moderato et la Lettre, sinon Erreur 1004

Vincent
 
L

ljoue

Guest
Salut Vincent,

Merci pour ton aide ;)

Je vais tester ta proposition et la comparer avec la mienne...
...puis retiendrais la moins lourde ou ferais un mix des deux!

Merci encore
et Bonne soirée !

@+
Laurent
 

andré

XLDnaute Barbatruc
Salut,

Il y a bien moyen de le faire par une MFC, mais il faut créer une colonne supplémentaire sur la feuille avec une formule testant la présence de la valeur retournée dans la feuille, puis en appliquant le MFC sur ce résultat.

Peut-être moins pratique qu'une macro ?

Â+
 
L

ljoue

Guest
Salut André,

Merci pour ta proposition...
...mais le problème est que je ne peut pas modifier le tableau existant (Restrictions imposées par les gérants de ma boîte...:eek: )
...donc pas de MFC possible.


Mais je viens de résoudre mon problème par Macro, ça marche super !

Merci à vous deux et au Forum !


Bonne soirée
Laurent
 

Discussions similaires

Réponses
9
Affichages
147
Réponses
0
Affichages
141

Statistiques des forums

Discussions
311 712
Messages
2 081 802
Membres
101 819
dernier inscrit
lukumubarth