Bonjour,
je souhaiterai savoir comment faire pour que sous une condition définie, une cellule sous de couleur X et sous le reste dans une couleur Y.
et comment connaitre le code couleur de la couleur choisie?
Bonjour,
je souhaiterai savoir comment faire pour que sous une condition définie, une cellule sous de couleur X et sous le reste dans une couleur Y.
et comment connaitre le code couleur de la couleur choisie?
Salut
le plus simple est de tester avec l'enregistreur de macros et les formats conditionnels déjà existant dans Excel. Tu peux aussi utiliser l'enregistreur pour modifier la couleur de plusieurs cellules et voir ensuite À quel index la couleur correspond.
Sinon, tu utilises un If.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 IF macondition Then macellule.Interior.ColorIndex = x Else macellule.Interior.ColorIndex = y EndIf
Salut jbggg et le forum
Je ne vais pas refaire la macro ci-dessus, juste quelques remarques :Pas sûr de comprendre : trop de "sous" et ça me sous le!je souhaiterai savoir comment faire pour que sous une condition définie, une cellule sous de couleur X et sous le reste dans une couleur Y.
Pourquoi ne pas utiliser une MFC (Mise au Format Conditionnelle) ? 3 conditions possibles (+ sans condition) sur version 2003 et beaucoup plus sur 2007.Avec Dim X as Longet comment connaitre le code couleur de la couleur choisie?
X=macellule.Interior.ColorIndex donnera l'index de la couleur de macellule
X=macellule.Interior.Color donnera le code la couleur de macellule
A+
le plus simple utiliser l'enregistreur de macro. Il donne directemetn le code couleur et la macro il suffit de rajouter un petit IF :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 Range("K15").Select ActiveCell.FormulaR1C1 = "Nbre pièces my/LGT" Range("L15").Select Selection.Interior.ColorIndex = 2 Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With Range("E7").Select With Selection .HorizontalAlignment = xlRight .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With
Salut jbggg et le forumPas tout à fait d'accord avec toi : c'est parce que ça semble si simple qu'on a des codes à rallonge parsemé de .Select/Selction. Ton code fait 37 lignes alors que pour changer la couleur de fond, une seule suffit. Tout code créé de manière automatique devrait subir une épuration ne conservant ainsi que les lignes réellement utiles.le plus simple utiliser l'enregistreur de macro. Il donne directemetn le code couleur et la macro il suffit de rajouter un petit IF
A+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager