affecter une couleur

Mahel

XLDnaute Nouveau
bonsoir :kiss:

voici mon souci :

dans une colonne, je voudrais affecter une couleur par terme d'une même cellule (peut être par forme conditionnelle ?):
ex :
si la cellule affiche A1 (A1 est en bleu)
si la cellule affiche A1+C1 (A1 est en bleu, C1 est orange)
si la cellule affiche A1+C1+D1 (A1 est en bleu, C1 est orange et D1 en rouge):eek:

(ces 3 conditions résultent d'une formule qui définit des niveaux d'accès)


:silly: @+
 

Dan

XLDnaute Barbatruc
Bonsoir Mahel,

Je regarde un peu ta demande mais je me pose les questions suivantes :

Supposons E1 la cellule.

- Cas 1 : on peut utiliser une MFC disant que l'on met la couleur en E1 si E1=A1
- Cas 2 : E1 devient orange si E1= A1+C1. Là veux tu aussi une conditon que A1 soit en couleur pour avoir une couleur en E1 ? Autrement dit pas de couleur en E1 si A1 n'en a pas et si E1 est différent de A1+C1. Si c'est cela que tu veux faudra passer en macro.
- Cas 3 : même cas que 2 finalement mais avec une condition supplémentaire sur D1

Merci de tes précisions.

:)
 

Mahel

XLDnaute Nouveau
ci-dessous mes formules :

valeur affectation

3000 =SI(A250000;'A1+C1+D1';'A1+C1'))

50000 =SI(A350000;'A1+C1+D1';'A1+C1'))

200000 =SI(A450000;'A1+C1+D1';'A1+C1'))

cela donne :
valeur affectation
3 000.00 A1
50 000.00 A1+C1
200 000.00 A1+C1+D1[/size]
 

Bricofire

XLDnaute Impliqué
Bonjour Mahel, Marco60, Dan :)

Mahel, si j'ai bien compris, la confusion vient du fait que pour toi A1 ne représente pas une cellulle, mais un niveau d'habilitation, si c'est le cas, voici une piste. fait attention par la suite au risques que ça comporte au niveau confusion des formules ou du code .. ;)

C'est du vba, tu as le classeur joint
dans le code ci-dessous, il faut remplacer DifDe par les signes adéquats que le serveur ne supporte pas ici ;)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Pos1 As Long 'variables de positionnement dans chaîne
Dim Pos2 As Long
Dim Pos3 As Long

'Fonctionne en colonne D
If Not Intersect(Target.Columns, Columns('C')) Is Nothing Then 'Test : si la négation de l'intersection de la colonne de la cellulle selectionnée avec _
'la colonne D est rien (donc négation de : (on n'a pas cliqué dans une case qui nous intéresse..)= on a cliqué où on veut réagir)
Pos1 = InStr(Target, 'A1') 'Fonction qui détermine la position cherchée /chaîne
Pos2 = InStr(Target, 'C1')
Pos3 = InStr(Target, 'D1')

If Pos1 DiffDe 0 Then Target.Characters(Pos1, 2).Font.ColorIndex = 5 'si la recherche existe, on colorie
If Pos2 DiffDe 0 Then Target.Characters(Pos2, 2).Font.ColorIndex = 45
If Pos3 DiffDe 0 Then
With Target.Characters(Pos3, 2).Font
.ColorIndex = 3
.FontStyle = 'Gras' 'variante pour ajouter aussi du gras, effacer ligne si pas voulu ou recopier idem pour les autres
End With
End If
End If
End Sub

ça réagit quand tu changes la valeur d'une cellulle en col D.

Bonne journée,

Brico

Edition Voir dernier fichier plus bas = + pertinent !

Message édité par: bricofire, à: 12/03/2006 09:51
 

Pièces jointes

  • RepMahel.zip
    9.1 KB · Affichages: 28

Mahel

XLDnaute Nouveau
AU secours BRICOFIRE

je ne peux pas faire fonctionner

VBA bug car A1 ou A1+C1 ou A1+C1+D1 sont le resultat d'une formule
en fait je n'ai que le bleu pour tous. :woohoo:

ci-dessous le fichier avec ma formule



:eek: bon hé bien si ça te dit de t'y recoller ? [file name=RepMahelRetour.zip size=8579]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/RepMahelRetour.zip[/file]
 

Pièces jointes

  • RepMahelRetour.zip
    8.4 KB · Affichages: 26

Bricofire

XLDnaute Impliqué
Arf Mahel :)

Normal, ça change tout :) :
- D'une part l'évènement change n'est pas déclenché :
* si la valeur de la cellule est modifiée par code
* Si la valeur de la Cell est modifiée par un recalcul (cell = D5+D6 par exemple)
* Si la Cell est supprimée ou insérée...

- D'autre part la valeur d'une cellule suivant qu'elle est saisie ou découle d'une formule n'est pas de la même nature....La propriété characters ne s'y trompe pas :lol:

C'est pour ça que tu vois souvent demandé des petits fichiers sur le forum, c'est qu'au niveau contexte, ce qui peut paraître anodin au demandeur, peut profondément changer les choses au niveau du code :silly:

Bon je t'ai refait le classeur, plus de formules, A1,C1,D1 découlent des filtres mis en place, j'ai même considéré que si la cell de valeur était vide, égale à 0 ou négative, celle d'habilitation devenait vide du coup...C'est la même logique que les formules, attention par contre à l'emploi différent de And ou Or selon le cas !

B9 en vert dépend de D9 et D10 en vert, si tu fais varier D9 ou D10, rien ne se passe, ce qui illustre le propos ci-dessus :whistle:
Si tu mets 50 000 en D9, B9 passe à 52000, mais C9 reste avec A1 au lieu de A1+C1..
bonne journée,

Voir dernier fichier Version 3 en fin !

Brico [file name=RepMahelRetour2.zip size=9236]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/RepMahelRetour2.zip[/file]

Message édité par: bricofire, à: 24/02/2006 09:42 ;)

Message édité par: bricofire, à: 12/03/2006 10:18
 

Pièces jointes

  • RepMahelRetour2.zip
    9 KB · Affichages: 27

Mahel

XLDnaute Nouveau
avé à tous

alors là Brico, je te tire mon chapeau
vraiement super génial ;)
exactement ce qu'il me faut.
Dommage, si je connaissais un peu plus VBA, :eek: j'aurais su comment formuler ma demande plus rapidement.:pinch:
tu as raison ; le petit fichier annexé fait la différence :silly:

bref merci encore c'est super :) :p
 

Bricofire

XLDnaute Impliqué
Re ;)
Oups ! je viens de m'apercevoir que les cell vertes n'avaient pas été mises dans le version 2, c'est réparé (ça ne servait qu'à la compréhension...:) ) [file name=RepMahelRetour3.zip size=9285]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/RepMahelRetour3.zip[/file]

Message édité par: bricofire, à: 12/03/2006 10:15
 

Pièces jointes

  • RepMahelRetour3.zip
    9.1 KB · Affichages: 26

Discussions similaires

Statistiques des forums

Discussions
312 451
Messages
2 088 517
Membres
103 874
dernier inscrit
baraki