bonjour,
j' ai besoin de faire sur un ensemble de cellule une mise en forme personnalisé, dont les conditions initiales dépendent d'un programme ou d'une fonction,
je veux le faire par macro:
code si je le fais par "Mise en forme conditionnelle"
"Type:=xlCellValue" cette valeur là je veux qu'elle dépende d'un programme qui recalcule la valeur de condition en fonction d'autres critéres
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 Set zone = Range(Cells(2, 2), Cells(10, 10)) With zone .FormatConditions.Delete .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _ Formula1:="0" .FormatConditions(1).Interior.ColorIndex = 15 .FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _ Formula1:="0", Formula2:="40" .FormatConditions(2).Interior.ColorIndex = 8 .FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _ Formula1:="40" .FormatConditions(3).Interior.ColorIndex = 3 End With
exemple simple, mais ma fonction sera plus complexe,
la valeur lue de la cellule est ajoutée à la valeur d'autres cellules (dont l'adresse est variable) et c'est le résultat de ce calcul qui détermine la couleur de la cellule.
je pense au code :
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 function deter(n) deter = cells(x,y) + cells(f,t) end function sub monprog With zone .FormatConditions.Delete .FormatConditions.Add Type:=deter(xlCellValue), Operator:=xlEqual, _ Formula1:="0" end sub
mais ce ne marche pas , le code plante
est ce que ma démarche est valables ?
Partager