[excel]fonction avec plusieurs paramètres
Résolu/Fermé
LeTom46
Messages postés
30
Date d'inscription
mardi 7 mars 2006
Statut
Membre
Dernière intervention
15 mai 2008
-
25 janv. 2008 à 10:54
Darkito Messages postés 1191 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 26 mai 2010 - 25 janv. 2008 à 11:53
Darkito Messages postés 1191 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 26 mai 2010 - 25 janv. 2008 à 11:53
A voir également:
- [excel]fonction avec plusieurs paramètres
- Excel fonction si et - Guide
- Liste déroulante excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Fonction moyenne excel - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
3 réponses
Darkito
Messages postés
1191
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2010
545
25 janv. 2008 à 11:06
25 janv. 2008 à 11:06
Bonjour,
Tu peux faire un tableau de "resul" et le parcourir avec une boucle for
--
Tøƒ
Tu peux faire un tableau de "resul" et le parcourir avec une boucle for
--
Tøƒ
LeTom46
Messages postés
30
Date d'inscription
mardi 7 mars 2006
Statut
Membre
Dernière intervention
15 mai 2008
25 janv. 2008 à 11:37
25 janv. 2008 à 11:37
Merci c'est bon j'ai réussi à faire marcher tout ça:)!!!
Si quelqu'un cherche je met le solution que j'ai prise :
Sub color(resul1 As String, resul2 As String, resul3 As String, resul4 As String, resul5 As String)
Dim var As Integer
Dim tablresul(5) As String
tablresul(1) = resul1
tablresul(2) = resul2
tablresul(3) = resul3
tablresul(4) = resul4
tablresul(5) = resul5
For i = 1 To 5
If "0,0000" < tablresul(i) And tablresul(i) <= "0,2500" Then
ActiveChart.SeriesCollection(i).Select
With Selection.Border
.Weight = xlThin
.LineStyle = xlAutomatic
End With
Selection.Shadow = False
Selection.InvertIfNegative = False
With Selection.Interior
.ColorIndex = 46
.Pattern = xlSolid
End With
End If
If "0,2500" < tablresul(i) And tablresul(i) <= "0,5000" Then
ActiveChart.SeriesCollection(i).Select
With Selection.Border
.Weight = xlThin
.LineStyle = xlAutomatic
End With
Selection.Shadow = False
Selection.InvertIfNegative = False
With Selection.Interior
.ColorIndex = 45
.Pattern = xlSolid
End With
End If
If "0,5" < tablresul(i) And tablresul(i) <= "0,75" Then
ActiveChart.SeriesCollection(i).Select
With Selection.Border
.Weight = xlThin
.LineStyle = xlAutomatic
End With
Selection.Shadow = False
Selection.InvertIfNegative = False
With Selection.Interior
.ColorIndex = 44
.Pattern = xlSolid
End With
End If
If "0,75" < tablresul(i) And tablresul(i) <= "1" Then
ActiveChart.SeriesCollection(i).Select
With Selection.Border
.Weight = xlThin
.LineStyle = xlAutomatic
End With
Selection.Shadow = False
Selection.InvertIfNegative = False
With Selection.Interior
.ColorIndex = 43
.Pattern = xlSolid
End With
End If
Next i
End Sub
Si quelqu'un cherche je met le solution que j'ai prise :
Sub color(resul1 As String, resul2 As String, resul3 As String, resul4 As String, resul5 As String)
Dim var As Integer
Dim tablresul(5) As String
tablresul(1) = resul1
tablresul(2) = resul2
tablresul(3) = resul3
tablresul(4) = resul4
tablresul(5) = resul5
For i = 1 To 5
If "0,0000" < tablresul(i) And tablresul(i) <= "0,2500" Then
ActiveChart.SeriesCollection(i).Select
With Selection.Border
.Weight = xlThin
.LineStyle = xlAutomatic
End With
Selection.Shadow = False
Selection.InvertIfNegative = False
With Selection.Interior
.ColorIndex = 46
.Pattern = xlSolid
End With
End If
If "0,2500" < tablresul(i) And tablresul(i) <= "0,5000" Then
ActiveChart.SeriesCollection(i).Select
With Selection.Border
.Weight = xlThin
.LineStyle = xlAutomatic
End With
Selection.Shadow = False
Selection.InvertIfNegative = False
With Selection.Interior
.ColorIndex = 45
.Pattern = xlSolid
End With
End If
If "0,5" < tablresul(i) And tablresul(i) <= "0,75" Then
ActiveChart.SeriesCollection(i).Select
With Selection.Border
.Weight = xlThin
.LineStyle = xlAutomatic
End With
Selection.Shadow = False
Selection.InvertIfNegative = False
With Selection.Interior
.ColorIndex = 44
.Pattern = xlSolid
End With
End If
If "0,75" < tablresul(i) And tablresul(i) <= "1" Then
ActiveChart.SeriesCollection(i).Select
With Selection.Border
.Weight = xlThin
.LineStyle = xlAutomatic
End With
Selection.Shadow = False
Selection.InvertIfNegative = False
With Selection.Interior
.ColorIndex = 43
.Pattern = xlSolid
End With
End If
Next i
End Sub
Darkito
Messages postés
1191
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2010
545
25 janv. 2008 à 11:53
25 janv. 2008 à 11:53
Tu pourrais encore alléger ton code car tu as beaucoup d'informations redondantes.
Tu devrais tout d'abord faire ton bloc "if" avec seulement une affectation de variable dedans du genre "couleur =..."
après tu n'auras qu'à mettre les informations sur le graphique avec la couleur sélectionnée.
tu peux également simplifier le bloc if en le remplacant par un select case
select case tablresul(i)
case Is > 1
couleur=???
case Is > 0.75
couleur=43
case Is > 0.5
couleur=44
case Is > 0.25
couleur=45
case Is > 0
couleur=46
end select
de plus tu n'as pas besoin dep réciser des intervales si tu mets les cas dans le bon ordre.
par exemple pour valeur=0.8, le premier cas va être faux et le 2eme va etre bon. le 3eme,le 4eme et le 5eme cas ne vont pas être traités.
--
Tøƒ
Tu devrais tout d'abord faire ton bloc "if" avec seulement une affectation de variable dedans du genre "couleur =..."
après tu n'auras qu'à mettre les informations sur le graphique avec la couleur sélectionnée.
tu peux également simplifier le bloc if en le remplacant par un select case
select case tablresul(i)
case Is > 1
couleur=???
case Is > 0.75
couleur=43
case Is > 0.5
couleur=44
case Is > 0.25
couleur=45
case Is > 0
couleur=46
end select
de plus tu n'as pas besoin dep réciser des intervales si tu mets les cas dans le bon ordre.
par exemple pour valeur=0.8, le premier cas va être faux et le 2eme va etre bon. le 3eme,le 4eme et le 5eme cas ne vont pas être traités.
--
Tøƒ