Bonsoir
N'ayant pas trouvé de solution pour lancer en bloc plusieurs macros (post du
15/10), j'aimerais savoir s'il est possible de lancer automatiquement une
macro à l'ouverture d'une feuille, ce qui serait un autre moyen de régler
mon problème.
Merci encore de vos conseils et de votre aide
Pierre
Allez je me relève à nouveau les manches! Dans module1 j'ai mis:
Sub FCG1(Seuil1 As Double, Op1 As String) Application.ScreenUpdating = False For j = 1 To ActiveChart.SeriesCollection.Count With ActiveChart.SeriesCollection(j) For i = 1 To .Points.Count a = Application.WorksheetFunction.Index(.Values, i) a = Application.WorksheetFunction.Substitute(a, ",", ".") Seuil = Application.WorksheetFunction.Substitute(Seuil1, ",", ".") If a <> 0 Then b = Evaluate(a & Op1 & Seuil) rep = IIf(b, RGB(153, 254, 0), RGB(255, 128, 128)) .Points(i).Interior.Color = rep End If Next End With Next Application.ScreenUpdating = True End Sub
Sub FCG2(Seuil1 As Double, Op1 As String, Seuil2 As Double, Op2 As String) Application.ScreenUpdating = False For j = 1 To ActiveChart.SeriesCollection.Count With ActiveChart.SeriesCollection(j) For i = 1 To .Points.Count a = Application.WorksheetFunction.Index(.Values, i) a = Application.WorksheetFunction.Substitute(a, ",", ".") Seuila = Application.WorksheetFunction.Substitute(Seuil1, ",", ".") Seuilb = Application.WorksheetFunction.Substitute(Seuil2, ",", ".") If a <> 0 Then b = Evaluate(a & Op1 & Seuila) c = Evaluate(a & Op2 & Seuilb) rep = IIf(b And c, RGB(153, 254, 0), RGB(255, 128, 128)) .Points(i).Interior.Color = rep End If Next End With Next Application.ScreenUpdating = True End Sub
Dans IMC (condition double), j'ai mis:
Private Sub Chart_Activate() FCG2 25, ">", 30, "<" End Sub
Jusque là ça marche impec
Dans MG (condition simple)j'ai mis:
Private Sub Chart_Activate() FCG1 19, ">" End Sub
Et là ça recoince: "erreur d'execution13, incompatibilité de type" qui renvoie à la ligne "rep = IIf(b, RGB(153, 254, 0), RGB(255, 128, 128))"
Il me semble pourtant que j'ai tout fait comme tu m'as indiqué. Merci de me lire encore Pierre
Bonsoir François
Allez je me relève à nouveau les manches!
Dans module1 j'ai mis:
Sub FCG1(Seuil1 As Double, Op1 As String)
Application.ScreenUpdating = False
For j = 1 To ActiveChart.SeriesCollection.Count
With ActiveChart.SeriesCollection(j)
For i = 1 To .Points.Count
a = Application.WorksheetFunction.Index(.Values, i)
a = Application.WorksheetFunction.Substitute(a, ",", ".")
Seuil = Application.WorksheetFunction.Substitute(Seuil1, ",", ".")
If a <> 0 Then
b = Evaluate(a & Op1 & Seuil)
rep = IIf(b, RGB(153, 254, 0), RGB(255, 128, 128))
.Points(i).Interior.Color = rep
End If
Next
End With
Next
Application.ScreenUpdating = True
End Sub
Sub FCG2(Seuil1 As Double, Op1 As String, Seuil2 As Double, Op2 As String)
Application.ScreenUpdating = False
For j = 1 To ActiveChart.SeriesCollection.Count
With ActiveChart.SeriesCollection(j)
For i = 1 To .Points.Count
a = Application.WorksheetFunction.Index(.Values, i)
a = Application.WorksheetFunction.Substitute(a, ",", ".")
Seuila = Application.WorksheetFunction.Substitute(Seuil1, ",", ".")
Seuilb = Application.WorksheetFunction.Substitute(Seuil2, ",", ".")
If a <> 0 Then
b = Evaluate(a & Op1 & Seuila)
c = Evaluate(a & Op2 & Seuilb)
rep = IIf(b And c, RGB(153, 254, 0), RGB(255, 128, 128))
.Points(i).Interior.Color = rep
End If
Next
End With
Next
Application.ScreenUpdating = True
End Sub
Dans IMC (condition double), j'ai mis:
Private Sub Chart_Activate()
FCG2 25, ">", 30, "<"
End Sub
Jusque là ça marche impec
Dans MG (condition simple)j'ai mis:
Private Sub Chart_Activate()
FCG1 19, ">"
End Sub
Et là ça recoince: "erreur d'execution13, incompatibilité de type" qui
renvoie à la ligne "rep = IIf(b, RGB(153, 254, 0), RGB(255, 128, 128))"
Il me semble pourtant que j'ai tout fait comme tu m'as indiqué.
Merci de me lire encore
Pierre
Allez je me relève à nouveau les manches! Dans module1 j'ai mis:
Sub FCG1(Seuil1 As Double, Op1 As String) Application.ScreenUpdating = False For j = 1 To ActiveChart.SeriesCollection.Count With ActiveChart.SeriesCollection(j) For i = 1 To .Points.Count a = Application.WorksheetFunction.Index(.Values, i) a = Application.WorksheetFunction.Substitute(a, ",", ".") Seuil = Application.WorksheetFunction.Substitute(Seuil1, ",", ".") If a <> 0 Then b = Evaluate(a & Op1 & Seuil) rep = IIf(b, RGB(153, 254, 0), RGB(255, 128, 128)) .Points(i).Interior.Color = rep End If Next End With Next Application.ScreenUpdating = True End Sub
Sub FCG2(Seuil1 As Double, Op1 As String, Seuil2 As Double, Op2 As String) Application.ScreenUpdating = False For j = 1 To ActiveChart.SeriesCollection.Count With ActiveChart.SeriesCollection(j) For i = 1 To .Points.Count a = Application.WorksheetFunction.Index(.Values, i) a = Application.WorksheetFunction.Substitute(a, ",", ".") Seuila = Application.WorksheetFunction.Substitute(Seuil1, ",", ".") Seuilb = Application.WorksheetFunction.Substitute(Seuil2, ",", ".") If a <> 0 Then b = Evaluate(a & Op1 & Seuila) c = Evaluate(a & Op2 & Seuilb) rep = IIf(b And c, RGB(153, 254, 0), RGB(255, 128, 128)) .Points(i).Interior.Color = rep End If Next End With Next Application.ScreenUpdating = True End Sub
Dans IMC (condition double), j'ai mis:
Private Sub Chart_Activate() FCG2 25, ">", 30, "<" End Sub
Jusque là ça marche impec
Dans MG (condition simple)j'ai mis:
Private Sub Chart_Activate() FCG1 19, ">" End Sub
Et là ça recoince: "erreur d'execution13, incompatibilité de type" qui renvoie à la ligne "rep = IIf(b, RGB(153, 254, 0), RGB(255, 128, 128))"
Il me semble pourtant que j'ai tout fait comme tu m'as indiqué. Merci de me lire encore Pierre
Francois L
Bonsoir François
Allez je me relève à nouveau les manches! Dans module1 j'ai mis:
Sub FCG1(Seuil1 As Double, Op1 As String) Application.ScreenUpdating = False For j = 1 To ActiveChart.SeriesCollection.Count With ActiveChart.SeriesCollection(j) For i = 1 To .Points.Count a = Application.WorksheetFunction.Index(.Values, i) a = Application.WorksheetFunction.Substitute(a, ",", ".") Seuil = Application.WorksheetFunction.Substitute(Seuil1, ",", ".") If a <> 0 Then b = Evaluate(a & Op1 & Seuil) rep = IIf(b, RGB(153, 254, 0), RGB(255, 128, 128)) .Points(i).Interior.Color = rep End If Next End With Next Application.ScreenUpdating = True End Sub
Bonsoir,
Le problème est dans cette ligne : b = Evaluate(a & Op1 & Seuil)
C'est Seuil1 au lieu de Seuil
-- François L
Bonsoir François
Allez je me relève à nouveau les manches!
Dans module1 j'ai mis:
Sub FCG1(Seuil1 As Double, Op1 As String)
Application.ScreenUpdating = False
For j = 1 To ActiveChart.SeriesCollection.Count
With ActiveChart.SeriesCollection(j)
For i = 1 To .Points.Count
a = Application.WorksheetFunction.Index(.Values, i)
a = Application.WorksheetFunction.Substitute(a, ",", ".")
Seuil = Application.WorksheetFunction.Substitute(Seuil1, ",", ".")
If a <> 0 Then
b = Evaluate(a & Op1 & Seuil)
rep = IIf(b, RGB(153, 254, 0), RGB(255, 128, 128))
.Points(i).Interior.Color = rep
End If
Next
End With
Next
Application.ScreenUpdating = True
End Sub
Bonsoir,
Le problème est dans cette ligne :
b = Evaluate(a & Op1 & Seuil)
Allez je me relève à nouveau les manches! Dans module1 j'ai mis:
Sub FCG1(Seuil1 As Double, Op1 As String) Application.ScreenUpdating = False For j = 1 To ActiveChart.SeriesCollection.Count With ActiveChart.SeriesCollection(j) For i = 1 To .Points.Count a = Application.WorksheetFunction.Index(.Values, i) a = Application.WorksheetFunction.Substitute(a, ",", ".") Seuil = Application.WorksheetFunction.Substitute(Seuil1, ",", ".") If a <> 0 Then b = Evaluate(a & Op1 & Seuil) rep = IIf(b, RGB(153, 254, 0), RGB(255, 128, 128)) .Points(i).Interior.Color = rep End If Next End With Next Application.ScreenUpdating = True End Sub
Bonsoir,
Le problème est dans cette ligne : b = Evaluate(a & Op1 & Seuil)
C'est Seuil1 au lieu de Seuil
-- François L
Pierre
Bonsoir Hélas j'ai toujours le même message avec 1 condition Mais ce n'est pas grave, tu ne vas pas passer ton temps la dessus... Merci encore de ton aide
Bonsoir
Hélas j'ai toujours le même message avec 1 condition
Mais ce n'est pas grave, tu ne vas pas passer ton temps la dessus...
Merci encore de ton aide
Bonsoir Hélas j'ai toujours le même message avec 1 condition Mais ce n'est pas grave, tu ne vas pas passer ton temps la dessus... Merci encore de ton aide
Pierre
Bonjour François En fait le probleme vient bien de la decimale, puisqu'en mettant un nombre entier çà marche
Private Sub Chart_Activate() FCG 23, "<" End Sub
Private Sub Chart_Activate() FCG 23.1, "<" End Sub
Le probleme c'est que l'approximation est trop importante Si à l'occasion tu trouves la solution... Merci encore pour ton aide et le temps passé Cordialement Pierre
Bonjour François
En fait le probleme vient bien de la decimale, puisqu'en mettant un nombre
entier çà marche
Private Sub Chart_Activate()
FCG 23, "<"
End Sub
Private Sub Chart_Activate()
FCG 23.1, "<"
End Sub
Le probleme c'est que l'approximation est trop importante
Si à l'occasion tu trouves la solution...
Merci encore pour ton aide et le temps passé
Cordialement
Pierre
Bonjour François En fait le probleme vient bien de la decimale, puisqu'en mettant un nombre entier çà marche
Private Sub Chart_Activate() FCG 23, "<" End Sub
Private Sub Chart_Activate() FCG 23.1, "<" End Sub
Le probleme c'est que l'approximation est trop importante Si à l'occasion tu trouves la solution... Merci encore pour ton aide et le temps passé Cordialement Pierre
Francois L
Bonjour François En fait le probleme vient bien de la decimale, puisqu'en mettant un nombre entier çà marche
Private Sub Chart_Activate() FCG 23, "<" End Sub
Private Sub Chart_Activate() FCG 23.1, "<" End Sub
Le probleme c'est que l'approximation est trop importante Si à l'occasion tu trouves la solution... Merci encore pour ton aide et le temps passé Cordialement Pierre
Bonjour,
Je te fais une synthèse de tout ça ce soir....
-- François L
Bonjour François
En fait le probleme vient bien de la decimale, puisqu'en mettant un nombre
entier çà marche
Private Sub Chart_Activate()
FCG 23, "<"
End Sub
Private Sub Chart_Activate()
FCG 23.1, "<"
End Sub
Le probleme c'est que l'approximation est trop importante
Si à l'occasion tu trouves la solution...
Merci encore pour ton aide et le temps passé
Cordialement
Pierre
Bonjour François En fait le probleme vient bien de la decimale, puisqu'en mettant un nombre entier çà marche
Private Sub Chart_Activate() FCG 23, "<" End Sub
Private Sub Chart_Activate() FCG 23.1, "<" End Sub
Le probleme c'est que l'approximation est trop importante Si à l'occasion tu trouves la solution... Merci encore pour ton aide et le temps passé Cordialement Pierre
Bonjour,
Je te fais une synthèse de tout ça ce soir....
-- François L
Pierre
Bonjour François confus de t'embeter Néammoins en bidouillant pour essayer de solutionner, je me suis aperçu d'une bizarerie: quand j'enleve la decimale dans la macro 20m, ça marche, comme je te le disais par contre quand j'enleve la decimale dans la macro Ag, je me suis aperçu depuis que ça ne marchait pas et j'ai toujours cette incompatibilité 13 alors que les macros sont rigouresement les mêmes Par contre je rajoute # après le nombre entier dans la macro Ag, et çà marche comme 20m! Est ce que c'est normal? Pierre
Bonjour François
confus de t'embeter
Néammoins en bidouillant pour essayer de solutionner, je me suis aperçu
d'une bizarerie:
quand j'enleve la decimale dans la macro 20m, ça marche, comme je te le
disais
par contre quand j'enleve la decimale dans la macro Ag, je me suis aperçu
depuis que ça ne marchait pas et j'ai toujours cette incompatibilité 13
alors que les macros sont rigouresement les mêmes
Par contre je rajoute # après le nombre entier dans la macro Ag, et çà
marche comme 20m!
Est ce que c'est normal?
Pierre
Bonjour François confus de t'embeter Néammoins en bidouillant pour essayer de solutionner, je me suis aperçu d'une bizarerie: quand j'enleve la decimale dans la macro 20m, ça marche, comme je te le disais par contre quand j'enleve la decimale dans la macro Ag, je me suis aperçu depuis que ça ne marchait pas et j'ai toujours cette incompatibilité 13 alors que les macros sont rigouresement les mêmes Par contre je rajoute # après le nombre entier dans la macro Ag, et çà marche comme 20m! Est ce que c'est normal? Pierre
Francois L
Bonjour François confus de t'embeter
Bonsoir Pierre,
J'ai rajouté un test (a<>"") dans les macros FCG1 et FCG2
J'ai testé sur toutes les feuilles de ton classeur, a priori tout fonctionne (décimale ou pas ).
Les deux macros deviennent ce qui est en fin de message. Mets les dans ton module par copier-coller pour être certain de la syntaxe. Les macros des feuilles graphiques ne changent pas.
En espérant pour toi que cette fois c'est la bonne. Sinon, reviens...
' Pour le traitement d'une seule condition Sub FCG1(Seuil1 As Double, Op1 As String) Application.ScreenUpdating = False For j = 1 To ActiveChart.SeriesCollection.Count With ActiveChart.SeriesCollection(j) For i = 1 To .Points.Count a = Application.WorksheetFunction.Index(.Values, i) a = Application.WorksheetFunction.Substitute(a, ",", ".") Seuil = Application.WorksheetFunction.Substitute(Seuil1, ",", ".") If a <> 0 And a <> "" Then b = Evaluate(a & Op1 & Seuil) rep = IIf(b, RGB(153, 254, 0), RGB(255, 128, 128)) .Points(i).Interior.Color = rep End If Next End With Next Application.ScreenUpdating = True End Sub ' Pour le traitement de deux conditions Sub FCG2(Seuil1 As Double, Op1 As String, Seuil2 As Double, Op2 As String) Application.ScreenUpdating = False For j = 1 To ActiveChart.SeriesCollection.Count With ActiveChart.SeriesCollection(1) For i = 1 To .Points.Count a = Application.WorksheetFunction.Index(.Values, i) a = Application.WorksheetFunction.Substitute(a, ",", ".") Seuila = Application.WorksheetFunction.Substitute(Seuil1, ",", ".") Seuilb = Application.WorksheetFunction.Substitute(Seuil2, ",", ".") If a <> 0 And a <> "" Then b = Evaluate(a & Op1 & Seuila) c = Evaluate(a & Op2 & Seuilb) rep = IIf(b And c, RGB(153, 254, 0), RGB(255, 128, 128)) .Points(i).Interior.Color = rep End If Next End With Next Application.ScreenUpdating = True End Sub
-- François L
Bonjour François
confus de t'embeter
Bonsoir Pierre,
J'ai rajouté un test (a<>"") dans les macros FCG1 et FCG2
J'ai testé sur toutes les feuilles de ton classeur, a priori tout
fonctionne (décimale ou pas ).
Les deux macros deviennent ce qui est en fin de message. Mets les dans
ton module par copier-coller pour être certain de la syntaxe. Les macros
des feuilles graphiques ne changent pas.
En espérant pour toi que cette fois c'est la bonne. Sinon, reviens...
' Pour le traitement d'une seule condition
Sub FCG1(Seuil1 As Double, Op1 As String)
Application.ScreenUpdating = False
For j = 1 To ActiveChart.SeriesCollection.Count
With ActiveChart.SeriesCollection(j)
For i = 1 To .Points.Count
a = Application.WorksheetFunction.Index(.Values, i)
a = Application.WorksheetFunction.Substitute(a, ",", ".")
Seuil = Application.WorksheetFunction.Substitute(Seuil1, ",", ".")
If a <> 0 And a <> "" Then
b = Evaluate(a & Op1 & Seuil)
rep = IIf(b, RGB(153, 254, 0), RGB(255, 128, 128))
.Points(i).Interior.Color = rep
End If
Next
End With
Next
Application.ScreenUpdating = True
End Sub
' Pour le traitement de deux conditions
Sub FCG2(Seuil1 As Double, Op1 As String, Seuil2 As Double, Op2 As String)
Application.ScreenUpdating = False
For j = 1 To ActiveChart.SeriesCollection.Count
With ActiveChart.SeriesCollection(1)
For i = 1 To .Points.Count
a = Application.WorksheetFunction.Index(.Values, i)
a = Application.WorksheetFunction.Substitute(a, ",", ".")
Seuila = Application.WorksheetFunction.Substitute(Seuil1, ",", ".")
Seuilb = Application.WorksheetFunction.Substitute(Seuil2, ",", ".")
If a <> 0 And a <> "" Then
b = Evaluate(a & Op1 & Seuila)
c = Evaluate(a & Op2 & Seuilb)
rep = IIf(b And c, RGB(153, 254, 0), RGB(255, 128, 128))
.Points(i).Interior.Color = rep
End If
Next
End With
Next
Application.ScreenUpdating = True
End Sub
J'ai rajouté un test (a<>"") dans les macros FCG1 et FCG2
J'ai testé sur toutes les feuilles de ton classeur, a priori tout fonctionne (décimale ou pas ).
Les deux macros deviennent ce qui est en fin de message. Mets les dans ton module par copier-coller pour être certain de la syntaxe. Les macros des feuilles graphiques ne changent pas.
En espérant pour toi que cette fois c'est la bonne. Sinon, reviens...
' Pour le traitement d'une seule condition Sub FCG1(Seuil1 As Double, Op1 As String) Application.ScreenUpdating = False For j = 1 To ActiveChart.SeriesCollection.Count With ActiveChart.SeriesCollection(j) For i = 1 To .Points.Count a = Application.WorksheetFunction.Index(.Values, i) a = Application.WorksheetFunction.Substitute(a, ",", ".") Seuil = Application.WorksheetFunction.Substitute(Seuil1, ",", ".") If a <> 0 And a <> "" Then b = Evaluate(a & Op1 & Seuil) rep = IIf(b, RGB(153, 254, 0), RGB(255, 128, 128)) .Points(i).Interior.Color = rep End If Next End With Next Application.ScreenUpdating = True End Sub ' Pour le traitement de deux conditions Sub FCG2(Seuil1 As Double, Op1 As String, Seuil2 As Double, Op2 As String) Application.ScreenUpdating = False For j = 1 To ActiveChart.SeriesCollection.Count With ActiveChart.SeriesCollection(1) For i = 1 To .Points.Count a = Application.WorksheetFunction.Index(.Values, i) a = Application.WorksheetFunction.Substitute(a, ",", ".") Seuila = Application.WorksheetFunction.Substitute(Seuil1, ",", ".") Seuilb = Application.WorksheetFunction.Substitute(Seuil2, ",", ".") If a <> 0 And a <> "" Then b = Evaluate(a & Op1 & Seuila) c = Evaluate(a & Op2 & Seuilb) rep = IIf(b And c, RGB(153, 254, 0), RGB(255, 128, 128)) .Points(i).Interior.Color = rep End If Next End With Next Application.ScreenUpdating = True End Sub
-- François L
Pierre
Bonsoir François
Têtu hein? Effectivement le pb des décimales est resolu :-)))
Le seul petit bug persistant est pour la double condition, seul le premier facteur est pris en compte. Ainsi, pour un IMC sensé apparaitre en rouge si > 30 OU < 25 , la macro
Private Sub Chart_Activate() FCG2 25, "<", 30, ">" End Sub
Fait apparaitre en rouge les valeurs < 25, en vert les valeurs entre 25 et 30, mais aussi en vert les valeurs >30 Voila, à part çà tout marche impec, merci encore.
Cordialement Pierre
Bonsoir François
Têtu hein?
Effectivement le pb des décimales est resolu :-)))
Le seul petit bug persistant est pour la double condition, seul le premier
facteur est pris en compte.
Ainsi, pour un IMC sensé apparaitre en rouge si > 30 OU < 25 , la macro
Private Sub Chart_Activate()
FCG2 25, "<", 30, ">"
End Sub
Fait apparaitre en rouge les valeurs < 25, en vert les valeurs entre 25 et
30, mais aussi en vert les valeurs >30
Voila, à part çà tout marche impec, merci encore.
Têtu hein? Effectivement le pb des décimales est resolu :-)))
Le seul petit bug persistant est pour la double condition, seul le premier facteur est pris en compte. Ainsi, pour un IMC sensé apparaitre en rouge si > 30 OU < 25 , la macro
Private Sub Chart_Activate() FCG2 25, "<", 30, ">" End Sub
Fait apparaitre en rouge les valeurs < 25, en vert les valeurs entre 25 et 30, mais aussi en vert les valeurs >30 Voila, à part çà tout marche impec, merci encore.
Cordialement Pierre
Francois L
Bonsoir François
Têtu hein? Effectivement le pb des décimales est resolu :-)))
Le seul petit bug persistant est pour la double condition, seul le premier facteur est pris en compte. Ainsi, pour un IMC sensé apparaitre en rouge si > 30 OU < 25 , la macro
Private Sub Chart_Activate() FCG2 25, "<", 30, ">" End Sub
Fait apparaitre en rouge les valeurs < 25, en vert les valeurs entre 25 et 30, mais aussi en vert les valeurs >30 Voila, à part çà tout marche impec, merci encore.
Re,
Normal !
Il fallait écrire
Private Sub Chart_Activate() FCG2 25, ">", 30, "<" End Sub
Les conditions se lisent :
25 et < 30 vert, sinon rouge
-- François L
Bonsoir François
Têtu hein?
Effectivement le pb des décimales est resolu :-)))
Le seul petit bug persistant est pour la double condition, seul le premier
facteur est pris en compte.
Ainsi, pour un IMC sensé apparaitre en rouge si > 30 OU < 25 , la macro
Private Sub Chart_Activate()
FCG2 25, "<", 30, ">"
End Sub
Fait apparaitre en rouge les valeurs < 25, en vert les valeurs entre 25 et
30, mais aussi en vert les valeurs >30
Voila, à part çà tout marche impec, merci encore.
Re,
Normal !
Il fallait écrire
Private Sub Chart_Activate()
FCG2 25, ">", 30, "<"
End Sub
Têtu hein? Effectivement le pb des décimales est resolu :-)))
Le seul petit bug persistant est pour la double condition, seul le premier facteur est pris en compte. Ainsi, pour un IMC sensé apparaitre en rouge si > 30 OU < 25 , la macro
Private Sub Chart_Activate() FCG2 25, "<", 30, ">" End Sub
Fait apparaitre en rouge les valeurs < 25, en vert les valeurs entre 25 et 30, mais aussi en vert les valeurs >30 Voila, à part çà tout marche impec, merci encore.
Re,
Normal !
Il fallait écrire
Private Sub Chart_Activate() FCG2 25, ">", 30, "<" End Sub
Les conditions se lisent :
25 et < 30 vert, sinon rouge
-- François L
Pierre
Bonsoir François
Sub FCG2(Seuil1 As Double, Op1 As String, Seuil2 As Double, Op2 As String) Application.ScreenUpdating = False For j = 1 To ActiveChart.SeriesCollection.Count With ActiveChart.SeriesCollection(1) For i = 1 To .Points.Count a = Application.WorksheetFunction.Index(.Values, i) a = Application.WorksheetFunction.Substitute(a, ",", ".") Seuila = Application.WorksheetFunction.Substitute(Seuil1, ",", ".") Seuilb = Application.WorksheetFunction.Substitute(Seuil2, ",", ".") If a <> 0 And a <> "" Then b = Evaluate(a & Op1 & Seuila) c = Evaluate(a & Op2 & Seuilb) rep = IIf(b, RGB(255, 0, 0), RGB(51, 153, 102)) .Points(i).Interior.Color = rep End If Next End With Next Application.ScreenUpdating = True End Sub
+
Private Sub Chart_Activate() FCG2 25, ">", 30, "<" End Sub
= Me fait apparaitre en vert les valeurs < 25, en rouge les valeurs > 25
?????
Bonsoir François
Sub FCG2(Seuil1 As Double, Op1 As String, Seuil2 As Double, Op2 As String)
Application.ScreenUpdating = False
For j = 1 To ActiveChart.SeriesCollection.Count
With ActiveChart.SeriesCollection(1)
For i = 1 To .Points.Count
a = Application.WorksheetFunction.Index(.Values, i)
a = Application.WorksheetFunction.Substitute(a, ",", ".")
Seuila = Application.WorksheetFunction.Substitute(Seuil1, ",", ".")
Seuilb = Application.WorksheetFunction.Substitute(Seuil2, ",", ".")
If a <> 0 And a <> "" Then
b = Evaluate(a & Op1 & Seuila)
c = Evaluate(a & Op2 & Seuilb)
rep = IIf(b, RGB(255, 0, 0), RGB(51, 153, 102))
.Points(i).Interior.Color = rep
End If
Next
End With
Next
Application.ScreenUpdating = True
End Sub
+
Private Sub Chart_Activate()
FCG2 25, ">", 30, "<"
End Sub
= Me fait apparaitre en vert les valeurs < 25, en rouge les valeurs > 25
Sub FCG2(Seuil1 As Double, Op1 As String, Seuil2 As Double, Op2 As String) Application.ScreenUpdating = False For j = 1 To ActiveChart.SeriesCollection.Count With ActiveChart.SeriesCollection(1) For i = 1 To .Points.Count a = Application.WorksheetFunction.Index(.Values, i) a = Application.WorksheetFunction.Substitute(a, ",", ".") Seuila = Application.WorksheetFunction.Substitute(Seuil1, ",", ".") Seuilb = Application.WorksheetFunction.Substitute(Seuil2, ",", ".") If a <> 0 And a <> "" Then b = Evaluate(a & Op1 & Seuila) c = Evaluate(a & Op2 & Seuilb) rep = IIf(b, RGB(255, 0, 0), RGB(51, 153, 102)) .Points(i).Interior.Color = rep End If Next End With Next Application.ScreenUpdating = True End Sub
+
Private Sub Chart_Activate() FCG2 25, ">", 30, "<" End Sub
= Me fait apparaitre en vert les valeurs < 25, en rouge les valeurs > 25