Bonjour,
Dans un précédent post, je souhaitais mettre une formule permettant de
tester la couleur de remplissage d'une cellule.
Cela se rapporte à une liste téléphonique sous XL.
J'ai la liste à partire de la ligne 10.
de A1 à A3, j'ai des valeur texte dans des cellules colorées.
A1="toto" (remplissage rouge)
A2="tata" (remplissage vert)
A3="titi" (remplissage jaune)
La formule que je cherche est inscrite dans la colone A, à partir de la
ligne 10. Si la couleur de remplissage de B10 est jaune, alors A10 renvoi la
valeur présente dans A3, puisque A3 est jaune.
Un utilisateur bienveillant me proposait de mettre le code suivant dans la
feuille concernée :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For Each c In Range("A10", "A150")
If Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex =
Range("A3").Interior.ColorIndex Then
Range("A" & c.Row) = Range("A3")
Else
If Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex =
Range("A2").Interior.ColorIndex Then
Range("A" & c.Row) = Range("A2")
Else
If Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex =
Range("A1").Interior.ColorIndex Then
Range("A" & c.Row) = Range("A1")
Else
Range("A" & c.Row) = ""
End If
End If
End If
Next
End Sub
Problème : lorsque je copie cela (dans l'éditeur VB) dans la feuille, j'ai
une erreur m'indiquant "Attendu : Expression"
Quelqu'un peu m'aider?
Arno
Bonjour,
Dans un précédent post, je souhaitais mettre une formule permettant de
tester la couleur de remplissage d'une cellule.
Cela se rapporte à une liste téléphonique sous XL.
J'ai la liste à partire de la ligne 10.
de A1 à A3, j'ai des valeur texte dans des cellules colorées.
A1="toto" (remplissage rouge)
A2="tata" (remplissage vert)
A3="titi" (remplissage jaune)
La formule que je cherche est inscrite dans la colone A, à partir de la
ligne 10. Si la couleur de remplissage de B10 est jaune, alors A10 renvoi la
valeur présente dans A3, puisque A3 est jaune.
Un utilisateur bienveillant me proposait de mettre le code suivant dans la
feuille concernée :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For Each c In Range("A10", "A150")
If Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex =
Range("A3").Interior.ColorIndex Then
Range("A" & c.Row) = Range("A3")
Else
If Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex =
Range("A2").Interior.ColorIndex Then
Range("A" & c.Row) = Range("A2")
Else
If Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex =
Range("A1").Interior.ColorIndex Then
Range("A" & c.Row) = Range("A1")
Else
Range("A" & c.Row) = ""
End If
End If
End If
Next
End Sub
Problème : lorsque je copie cela (dans l'éditeur VB) dans la feuille, j'ai
une erreur m'indiquant "Attendu : Expression"
Quelqu'un peu m'aider?
Arno
Bonjour,
Dans un précédent post, je souhaitais mettre une formule permettant de
tester la couleur de remplissage d'une cellule.
Cela se rapporte à une liste téléphonique sous XL.
J'ai la liste à partire de la ligne 10.
de A1 à A3, j'ai des valeur texte dans des cellules colorées.
A1="toto" (remplissage rouge)
A2="tata" (remplissage vert)
A3="titi" (remplissage jaune)
La formule que je cherche est inscrite dans la colone A, à partir de la
ligne 10. Si la couleur de remplissage de B10 est jaune, alors A10 renvoi la
valeur présente dans A3, puisque A3 est jaune.
Un utilisateur bienveillant me proposait de mettre le code suivant dans la
feuille concernée :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For Each c In Range("A10", "A150")
If Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex =
Range("A3").Interior.ColorIndex Then
Range("A" & c.Row) = Range("A3")
Else
If Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex =
Range("A2").Interior.ColorIndex Then
Range("A" & c.Row) = Range("A2")
Else
If Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex =
Range("A1").Interior.ColorIndex Then
Range("A" & c.Row) = Range("A1")
Else
Range("A" & c.Row) = ""
End If
End If
End If
Next
End Sub
Problème : lorsque je copie cela (dans l'éditeur VB) dans la feuille, j'ai
une erreur m'indiquant "Attendu : Expression"
Quelqu'un peu m'aider?
Arno
bonjour Arno,
les 2 lignes suivante :
If Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex > Range("A3").Interior.ColorIndex Then
sont en fait une seule ligne
lors de la copie de code sur le forum il arrive souvent que les lignes
soient couper
remet la sur une seule ligne et ce, sur au 3 endroits semblable dans la
macro.
isabelle
Arno a écrit :
> Bonjour,
>
> Dans un précédent post, je souhaitais mettre une formule permettant de
> tester la couleur de remplissage d'une cellule.
>
> Cela se rapporte à une liste téléphonique sous XL.
> J'ai la liste à partire de la ligne 10.
>
> de A1 à A3, j'ai des valeur texte dans des cellules colorées.
> A1="toto" (remplissage rouge)
> A2="tata" (remplissage vert)
> A3="titi" (remplissage jaune)
>
>
> La formule que je cherche est inscrite dans la colone A, à partir de la
> ligne 10. Si la couleur de remplissage de B10 est jaune, alors A10 renvoi la
> valeur présente dans A3, puisque A3 est jaune.
>
>
> Un utilisateur bienveillant me proposait de mettre le code suivant dans la
> feuille concernée :
>
> Private Sub Worksheet_SelectionChange(ByVal Target As Range)
> For Each c In Range("A10", "A150")
> If Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex =
> Range("A3").Interior.ColorIndex Then
> Range("A" & c.Row) = Range("A3")
> Else
> If Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex =
> Range("A2").Interior.ColorIndex Then
> Range("A" & c.Row) = Range("A2")
> Else
> If Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex =
> Range("A1").Interior.ColorIndex Then
> Range("A" & c.Row) = Range("A1")
> Else
> Range("A" & c.Row) = ""
> End If
> End If
> End If
> Next
> End Sub
>
>
> Problème : lorsque je copie cela (dans l'éditeur VB) dans la feuille, j'ai
> une erreur m'indiquant "Attendu : Expression"
>
> Quelqu'un peu m'aider?
>
>
> Arno
>
>
>
.
bonjour Arno,
les 2 lignes suivante :
If Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex > Range("A3").Interior.ColorIndex Then
sont en fait une seule ligne
lors de la copie de code sur le forum il arrive souvent que les lignes
soient couper
remet la sur une seule ligne et ce, sur au 3 endroits semblable dans la
macro.
isabelle
Arno a écrit :
> Bonjour,
>
> Dans un précédent post, je souhaitais mettre une formule permettant de
> tester la couleur de remplissage d'une cellule.
>
> Cela se rapporte à une liste téléphonique sous XL.
> J'ai la liste à partire de la ligne 10.
>
> de A1 à A3, j'ai des valeur texte dans des cellules colorées.
> A1="toto" (remplissage rouge)
> A2="tata" (remplissage vert)
> A3="titi" (remplissage jaune)
>
>
> La formule que je cherche est inscrite dans la colone A, à partir de la
> ligne 10. Si la couleur de remplissage de B10 est jaune, alors A10 renvoi la
> valeur présente dans A3, puisque A3 est jaune.
>
>
> Un utilisateur bienveillant me proposait de mettre le code suivant dans la
> feuille concernée :
>
> Private Sub Worksheet_SelectionChange(ByVal Target As Range)
> For Each c In Range("A10", "A150")
> If Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex =
> Range("A3").Interior.ColorIndex Then
> Range("A" & c.Row) = Range("A3")
> Else
> If Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex =
> Range("A2").Interior.ColorIndex Then
> Range("A" & c.Row) = Range("A2")
> Else
> If Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex =
> Range("A1").Interior.ColorIndex Then
> Range("A" & c.Row) = Range("A1")
> Else
> Range("A" & c.Row) = ""
> End If
> End If
> End If
> Next
> End Sub
>
>
> Problème : lorsque je copie cela (dans l'éditeur VB) dans la feuille, j'ai
> une erreur m'indiquant "Attendu : Expression"
>
> Quelqu'un peu m'aider?
>
>
> Arno
>
>
>
.
bonjour Arno,
les 2 lignes suivante :
If Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex > Range("A3").Interior.ColorIndex Then
sont en fait une seule ligne
lors de la copie de code sur le forum il arrive souvent que les lignes
soient couper
remet la sur une seule ligne et ce, sur au 3 endroits semblable dans la
macro.
isabelle
Arno a écrit :
> Bonjour,
>
> Dans un précédent post, je souhaitais mettre une formule permettant de
> tester la couleur de remplissage d'une cellule.
>
> Cela se rapporte à une liste téléphonique sous XL.
> J'ai la liste à partire de la ligne 10.
>
> de A1 à A3, j'ai des valeur texte dans des cellules colorées.
> A1="toto" (remplissage rouge)
> A2="tata" (remplissage vert)
> A3="titi" (remplissage jaune)
>
>
> La formule que je cherche est inscrite dans la colone A, à partir de la
> ligne 10. Si la couleur de remplissage de B10 est jaune, alors A10 renvoi la
> valeur présente dans A3, puisque A3 est jaune.
>
>
> Un utilisateur bienveillant me proposait de mettre le code suivant dans la
> feuille concernée :
>
> Private Sub Worksheet_SelectionChange(ByVal Target As Range)
> For Each c In Range("A10", "A150")
> If Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex =
> Range("A3").Interior.ColorIndex Then
> Range("A" & c.Row) = Range("A3")
> Else
> If Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex =
> Range("A2").Interior.ColorIndex Then
> Range("A" & c.Row) = Range("A2")
> Else
> If Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex =
> Range("A1").Interior.ColorIndex Then
> Range("A" & c.Row) = Range("A1")
> Else
> Range("A" & c.Row) = ""
> End If
> End If
> End If
> Next
> End Sub
>
>
> Problème : lorsque je copie cela (dans l'éditeur VB) dans la feuille, j'ai
> une erreur m'indiquant "Attendu : Expression"
>
> Quelqu'un peu m'aider?
>
>
> Arno
>
>
>
.
Salut,
Et avec ce code (que tu peux mettre dans un module standard) :
Function ValeurCouleur(x As Range, b1 As Range, b2 As Range, b3 As
Range, b4 As Range)
Application.Volatile
Select Case x.Interior.ColorIndex
Case b1.Interior.ColorIndex
ValeurCouleur = b1.Value
Case b2.Interior.ColorIndex
ValeurCouleur = b2.Value
Case b3.Interior.ColorIndex
ValeurCouleur = b3.Value
Case b4.Interior.ColorIndex
ValeurCouleur = b4.Value
Case Else
ValeurCouleur = ""
End Select
End Function
Et que tu appelles dans ta feuille Excel comme une fomule normale :
=ValeurCouleur(A11;$B$1;$B$2;$B$3;$B$4)
Ou si tu veux faire une boucle en VBA :
Sub TouteCellule()
Dim c As Range
For Each c In Range("A10:A600")
c.Value = ValeurCouleur(c, Cells(1, 2), Cells(2, 2), Cells(3,
2), Cells(4, 2))
Next
End Sub
Je pense que le problème est la couleur d'une ligne.
Est-ce bien toute la ligne qui est colorée (donc de la colonne A à la
colonne IV) ?
Si ce n'est pas le cas, alors il est normal que la solution d'Isabelle
ne renvoit rien. Dans une ligne complete, s'il y a plusieurs couleurs,
alors Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex renvoit
VIDE, donc c'est toujours la derniere condition qui s'applique (Range
("A" & c.Row) = "" )
Cordialemenent,
F.
PS : je me suis permis de poster une autre manière de voir les
choses !
.
Salut,
Et avec ce code (que tu peux mettre dans un module standard) :
Function ValeurCouleur(x As Range, b1 As Range, b2 As Range, b3 As
Range, b4 As Range)
Application.Volatile
Select Case x.Interior.ColorIndex
Case b1.Interior.ColorIndex
ValeurCouleur = b1.Value
Case b2.Interior.ColorIndex
ValeurCouleur = b2.Value
Case b3.Interior.ColorIndex
ValeurCouleur = b3.Value
Case b4.Interior.ColorIndex
ValeurCouleur = b4.Value
Case Else
ValeurCouleur = ""
End Select
End Function
Et que tu appelles dans ta feuille Excel comme une fomule normale :
=ValeurCouleur(A11;$B$1;$B$2;$B$3;$B$4)
Ou si tu veux faire une boucle en VBA :
Sub TouteCellule()
Dim c As Range
For Each c In Range("A10:A600")
c.Value = ValeurCouleur(c, Cells(1, 2), Cells(2, 2), Cells(3,
2), Cells(4, 2))
Next
End Sub
Je pense que le problème est la couleur d'une ligne.
Est-ce bien toute la ligne qui est colorée (donc de la colonne A à la
colonne IV) ?
Si ce n'est pas le cas, alors il est normal que la solution d'Isabelle
ne renvoit rien. Dans une ligne complete, s'il y a plusieurs couleurs,
alors Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex renvoit
VIDE, donc c'est toujours la derniere condition qui s'applique (Range
("A" & c.Row) = "" )
Cordialemenent,
F.
PS : je me suis permis de poster une autre manière de voir les
choses !
.
Salut,
Et avec ce code (que tu peux mettre dans un module standard) :
Function ValeurCouleur(x As Range, b1 As Range, b2 As Range, b3 As
Range, b4 As Range)
Application.Volatile
Select Case x.Interior.ColorIndex
Case b1.Interior.ColorIndex
ValeurCouleur = b1.Value
Case b2.Interior.ColorIndex
ValeurCouleur = b2.Value
Case b3.Interior.ColorIndex
ValeurCouleur = b3.Value
Case b4.Interior.ColorIndex
ValeurCouleur = b4.Value
Case Else
ValeurCouleur = ""
End Select
End Function
Et que tu appelles dans ta feuille Excel comme une fomule normale :
=ValeurCouleur(A11;$B$1;$B$2;$B$3;$B$4)
Ou si tu veux faire une boucle en VBA :
Sub TouteCellule()
Dim c As Range
For Each c In Range("A10:A600")
c.Value = ValeurCouleur(c, Cells(1, 2), Cells(2, 2), Cells(3,
2), Cells(4, 2))
Next
End Sub
Je pense que le problème est la couleur d'une ligne.
Est-ce bien toute la ligne qui est colorée (donc de la colonne A à la
colonne IV) ?
Si ce n'est pas le cas, alors il est normal que la solution d'Isabelle
ne renvoit rien. Dans une ligne complete, s'il y a plusieurs couleurs,
alors Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex renvoit
VIDE, donc c'est toujours la derniere condition qui s'applique (Range
("A" & c.Row) = "" )
Cordialemenent,
F.
PS : je me suis permis de poster une autre manière de voir les
choses !
.
Bonjour,
J'ai mis dans un module :
Function ValeurCouleur(x As Range, b1 As Range, b2 As Range, b3 As Range, b4
As Range, b5 As Range, b6 As Range, b7 As Range)
Application.Volatile
Select Case x.Interior.ColorIndex
Case b1.Interior.ColorIndex
ValeurCouleur = b1.Value
Case b2.Interior.ColorIndex
ValeurCouleur = b2.Value
Case b3.Interior.ColorIndex
ValeurCouleur = b3.Value
Case b4.Interior.ColorIndex
ValeurCouleur = b4.Value
Case b5.Interior.ColorIndex
ValeurCouleur = b5.Value
Case b6.Interior.ColorIndex
ValeurCouleur = b6.Value
Case b7.Interior.ColorIndex
ValeurCouleur = b7.Value
Case Else
ValeurCouleur = ""
End Select
End Function
J'utilise la fonction:
=ValeurCouleur(B556;$B$1;$B$2;$B$3;$B$4;B$5;$B$6;$B$7)
Cela fonctionne pour les valeurs présentes en B1, B2, B3, B4, B5, mais pas
B6 et B7.
Why?????
"FdeCourt" a écrit :
> Salut,
>
> Et avec ce code (que tu peux mettre dans un module standard) :
>
> Function ValeurCouleur(x As Range, b1 As Range, b2 As Range, b3 As
> Range, b4 As Range)
> Application.Volatile
> Select Case x.Interior.ColorIndex
> Case b1.Interior.ColorIndex
> ValeurCouleur = b1.Value
> Case b2.Interior.ColorIndex
> ValeurCouleur = b2.Value
> Case b3.Interior.ColorIndex
> ValeurCouleur = b3.Value
> Case b4.Interior.ColorIndex
> ValeurCouleur = b4.Value
> Case Else
> ValeurCouleur = ""
> End Select
> End Function
>
> Et que tu appelles dans ta feuille Excel comme une fomule normale :
> =ValeurCouleur(A11;$B$1;$B$2;$B$3;$B$4)
>
> Ou si tu veux faire une boucle en VBA :
> Sub TouteCellule()
> Dim c As Range
> For Each c In Range("A10:A600")
> c.Value = ValeurCouleur(c, Cells(1, 2), Cells(2, 2), Cells(3,
> 2), Cells(4, 2))
> Next
> End Sub
>
> Je pense que le problème est la couleur d'une ligne.
> Est-ce bien toute la ligne qui est colorée (donc de la colonne A à la
> colonne IV) ?
> Si ce n'est pas le cas, alors il est normal que la solution d'Isabelle
> ne renvoit rien. Dans une ligne complete, s'il y a plusieurs couleurs,
> alors Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex renvoit
> VIDE, donc c'est toujours la derniere condition qui s'applique (Range
> ("A" & c.Row) = "" )
>
> Cordialemenent,
>
> F.
>
> PS : je me suis permis de poster une autre manière de voir les
> choses !
>
> .
>
Bonjour,
J'ai mis dans un module :
Function ValeurCouleur(x As Range, b1 As Range, b2 As Range, b3 As Range, b4
As Range, b5 As Range, b6 As Range, b7 As Range)
Application.Volatile
Select Case x.Interior.ColorIndex
Case b1.Interior.ColorIndex
ValeurCouleur = b1.Value
Case b2.Interior.ColorIndex
ValeurCouleur = b2.Value
Case b3.Interior.ColorIndex
ValeurCouleur = b3.Value
Case b4.Interior.ColorIndex
ValeurCouleur = b4.Value
Case b5.Interior.ColorIndex
ValeurCouleur = b5.Value
Case b6.Interior.ColorIndex
ValeurCouleur = b6.Value
Case b7.Interior.ColorIndex
ValeurCouleur = b7.Value
Case Else
ValeurCouleur = ""
End Select
End Function
J'utilise la fonction:
=ValeurCouleur(B556;$B$1;$B$2;$B$3;$B$4;B$5;$B$6;$B$7)
Cela fonctionne pour les valeurs présentes en B1, B2, B3, B4, B5, mais pas
B6 et B7.
Why?????
"FdeCourt" a écrit :
> Salut,
>
> Et avec ce code (que tu peux mettre dans un module standard) :
>
> Function ValeurCouleur(x As Range, b1 As Range, b2 As Range, b3 As
> Range, b4 As Range)
> Application.Volatile
> Select Case x.Interior.ColorIndex
> Case b1.Interior.ColorIndex
> ValeurCouleur = b1.Value
> Case b2.Interior.ColorIndex
> ValeurCouleur = b2.Value
> Case b3.Interior.ColorIndex
> ValeurCouleur = b3.Value
> Case b4.Interior.ColorIndex
> ValeurCouleur = b4.Value
> Case Else
> ValeurCouleur = ""
> End Select
> End Function
>
> Et que tu appelles dans ta feuille Excel comme une fomule normale :
> =ValeurCouleur(A11;$B$1;$B$2;$B$3;$B$4)
>
> Ou si tu veux faire une boucle en VBA :
> Sub TouteCellule()
> Dim c As Range
> For Each c In Range("A10:A600")
> c.Value = ValeurCouleur(c, Cells(1, 2), Cells(2, 2), Cells(3,
> 2), Cells(4, 2))
> Next
> End Sub
>
> Je pense que le problème est la couleur d'une ligne.
> Est-ce bien toute la ligne qui est colorée (donc de la colonne A à la
> colonne IV) ?
> Si ce n'est pas le cas, alors il est normal que la solution d'Isabelle
> ne renvoit rien. Dans une ligne complete, s'il y a plusieurs couleurs,
> alors Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex renvoit
> VIDE, donc c'est toujours la derniere condition qui s'applique (Range
> ("A" & c.Row) = "" )
>
> Cordialemenent,
>
> F.
>
> PS : je me suis permis de poster une autre manière de voir les
> choses !
>
> .
>
Bonjour,
J'ai mis dans un module :
Function ValeurCouleur(x As Range, b1 As Range, b2 As Range, b3 As Range, b4
As Range, b5 As Range, b6 As Range, b7 As Range)
Application.Volatile
Select Case x.Interior.ColorIndex
Case b1.Interior.ColorIndex
ValeurCouleur = b1.Value
Case b2.Interior.ColorIndex
ValeurCouleur = b2.Value
Case b3.Interior.ColorIndex
ValeurCouleur = b3.Value
Case b4.Interior.ColorIndex
ValeurCouleur = b4.Value
Case b5.Interior.ColorIndex
ValeurCouleur = b5.Value
Case b6.Interior.ColorIndex
ValeurCouleur = b6.Value
Case b7.Interior.ColorIndex
ValeurCouleur = b7.Value
Case Else
ValeurCouleur = ""
End Select
End Function
J'utilise la fonction:
=ValeurCouleur(B556;$B$1;$B$2;$B$3;$B$4;B$5;$B$6;$B$7)
Cela fonctionne pour les valeurs présentes en B1, B2, B3, B4, B5, mais pas
B6 et B7.
Why?????
"FdeCourt" a écrit :
> Salut,
>
> Et avec ce code (que tu peux mettre dans un module standard) :
>
> Function ValeurCouleur(x As Range, b1 As Range, b2 As Range, b3 As
> Range, b4 As Range)
> Application.Volatile
> Select Case x.Interior.ColorIndex
> Case b1.Interior.ColorIndex
> ValeurCouleur = b1.Value
> Case b2.Interior.ColorIndex
> ValeurCouleur = b2.Value
> Case b3.Interior.ColorIndex
> ValeurCouleur = b3.Value
> Case b4.Interior.ColorIndex
> ValeurCouleur = b4.Value
> Case Else
> ValeurCouleur = ""
> End Select
> End Function
>
> Et que tu appelles dans ta feuille Excel comme une fomule normale :
> =ValeurCouleur(A11;$B$1;$B$2;$B$3;$B$4)
>
> Ou si tu veux faire une boucle en VBA :
> Sub TouteCellule()
> Dim c As Range
> For Each c In Range("A10:A600")
> c.Value = ValeurCouleur(c, Cells(1, 2), Cells(2, 2), Cells(3,
> 2), Cells(4, 2))
> Next
> End Sub
>
> Je pense que le problème est la couleur d'une ligne.
> Est-ce bien toute la ligne qui est colorée (donc de la colonne A à la
> colonne IV) ?
> Si ce n'est pas le cas, alors il est normal que la solution d'Isabelle
> ne renvoit rien. Dans une ligne complete, s'il y a plusieurs couleurs,
> alors Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex renvoit
> VIDE, donc c'est toujours la derniere condition qui s'applique (Range
> ("A" & c.Row) = "" )
>
> Cordialemenent,
>
> F.
>
> PS : je me suis permis de poster une autre manière de voir les
> choses !
>
> .
>
Je rectifie :
cela fonctionne pour B1, B3, B4, B5 et B6, mais pas B2 et B7...
"Arno" a écrit :
> Bonjour,
>
> J'ai mis dans un module :
>
> Function ValeurCouleur(x As Range, b1 As Range, b2 As Range, b3 As Range, b4
> As Range, b5 As Range, b6 As Range, b7 As Range)
> Application.Volatile
> Select Case x.Interior.ColorIndex
> Case b1.Interior.ColorIndex
> ValeurCouleur = b1.Value
> Case b2.Interior.ColorIndex
> ValeurCouleur = b2.Value
> Case b3.Interior.ColorIndex
> ValeurCouleur = b3.Value
> Case b4.Interior.ColorIndex
> ValeurCouleur = b4.Value
> Case b5.Interior.ColorIndex
> ValeurCouleur = b5.Value
> Case b6.Interior.ColorIndex
> ValeurCouleur = b6.Value
> Case b7.Interior.ColorIndex
> ValeurCouleur = b7.Value
> Case Else
> ValeurCouleur = ""
> End Select
> End Function
>
> J'utilise la fonction:
> =ValeurCouleur(B556;$B$1;$B$2;$B$3;$B$4;B$5;$B$6;$B$7)
>
> Cela fonctionne pour les valeurs présentes en B1, B2, B3, B4, B5, mais pas
> B6 et B7.
>
> Why?????
>
> "FdeCourt" a écrit :
>
> > Salut,
> >
> > Et avec ce code (que tu peux mettre dans un module standard) :
> >
> > Function ValeurCouleur(x As Range, b1 As Range, b2 As Range, b3 As
> > Range, b4 As Range)
> > Application.Volatile
> > Select Case x.Interior.ColorIndex
> > Case b1.Interior.ColorIndex
> > ValeurCouleur = b1.Value
> > Case b2.Interior.ColorIndex
> > ValeurCouleur = b2.Value
> > Case b3.Interior.ColorIndex
> > ValeurCouleur = b3.Value
> > Case b4.Interior.ColorIndex
> > ValeurCouleur = b4.Value
> > Case Else
> > ValeurCouleur = ""
> > End Select
> > End Function
> >
> > Et que tu appelles dans ta feuille Excel comme une fomule normale :
> > =ValeurCouleur(A11;$B$1;$B$2;$B$3;$B$4)
> >
> > Ou si tu veux faire une boucle en VBA :
> > Sub TouteCellule()
> > Dim c As Range
> > For Each c In Range("A10:A600")
> > c.Value = ValeurCouleur(c, Cells(1, 2), Cells(2, 2), Cells(3,
> > 2), Cells(4, 2))
> > Next
> > End Sub
> >
> > Je pense que le problème est la couleur d'une ligne.
> > Est-ce bien toute la ligne qui est colorée (donc de la colonne A à la
> > colonne IV) ?
> > Si ce n'est pas le cas, alors il est normal que la solution d'Isabelle
> > ne renvoit rien. Dans une ligne complete, s'il y a plusieurs couleurs,
> > alors Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex renvoit
> > VIDE, donc c'est toujours la derniere condition qui s'applique (Range
> > ("A" & c.Row) = "" )
> >
> > Cordialemenent,
> >
> > F.
> >
> > PS : je me suis permis de poster une autre manière de voir les
> > choses !
> >
> > .
> >
Je rectifie :
cela fonctionne pour B1, B3, B4, B5 et B6, mais pas B2 et B7...
"Arno" a écrit :
> Bonjour,
>
> J'ai mis dans un module :
>
> Function ValeurCouleur(x As Range, b1 As Range, b2 As Range, b3 As Range, b4
> As Range, b5 As Range, b6 As Range, b7 As Range)
> Application.Volatile
> Select Case x.Interior.ColorIndex
> Case b1.Interior.ColorIndex
> ValeurCouleur = b1.Value
> Case b2.Interior.ColorIndex
> ValeurCouleur = b2.Value
> Case b3.Interior.ColorIndex
> ValeurCouleur = b3.Value
> Case b4.Interior.ColorIndex
> ValeurCouleur = b4.Value
> Case b5.Interior.ColorIndex
> ValeurCouleur = b5.Value
> Case b6.Interior.ColorIndex
> ValeurCouleur = b6.Value
> Case b7.Interior.ColorIndex
> ValeurCouleur = b7.Value
> Case Else
> ValeurCouleur = ""
> End Select
> End Function
>
> J'utilise la fonction:
> =ValeurCouleur(B556;$B$1;$B$2;$B$3;$B$4;B$5;$B$6;$B$7)
>
> Cela fonctionne pour les valeurs présentes en B1, B2, B3, B4, B5, mais pas
> B6 et B7.
>
> Why?????
>
> "FdeCourt" a écrit :
>
> > Salut,
> >
> > Et avec ce code (que tu peux mettre dans un module standard) :
> >
> > Function ValeurCouleur(x As Range, b1 As Range, b2 As Range, b3 As
> > Range, b4 As Range)
> > Application.Volatile
> > Select Case x.Interior.ColorIndex
> > Case b1.Interior.ColorIndex
> > ValeurCouleur = b1.Value
> > Case b2.Interior.ColorIndex
> > ValeurCouleur = b2.Value
> > Case b3.Interior.ColorIndex
> > ValeurCouleur = b3.Value
> > Case b4.Interior.ColorIndex
> > ValeurCouleur = b4.Value
> > Case Else
> > ValeurCouleur = ""
> > End Select
> > End Function
> >
> > Et que tu appelles dans ta feuille Excel comme une fomule normale :
> > =ValeurCouleur(A11;$B$1;$B$2;$B$3;$B$4)
> >
> > Ou si tu veux faire une boucle en VBA :
> > Sub TouteCellule()
> > Dim c As Range
> > For Each c In Range("A10:A600")
> > c.Value = ValeurCouleur(c, Cells(1, 2), Cells(2, 2), Cells(3,
> > 2), Cells(4, 2))
> > Next
> > End Sub
> >
> > Je pense que le problème est la couleur d'une ligne.
> > Est-ce bien toute la ligne qui est colorée (donc de la colonne A à la
> > colonne IV) ?
> > Si ce n'est pas le cas, alors il est normal que la solution d'Isabelle
> > ne renvoit rien. Dans une ligne complete, s'il y a plusieurs couleurs,
> > alors Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex renvoit
> > VIDE, donc c'est toujours la derniere condition qui s'applique (Range
> > ("A" & c.Row) = "" )
> >
> > Cordialemenent,
> >
> > F.
> >
> > PS : je me suis permis de poster une autre manière de voir les
> > choses !
> >
> > .
> >
Je rectifie :
cela fonctionne pour B1, B3, B4, B5 et B6, mais pas B2 et B7...
"Arno" a écrit :
> Bonjour,
>
> J'ai mis dans un module :
>
> Function ValeurCouleur(x As Range, b1 As Range, b2 As Range, b3 As Range, b4
> As Range, b5 As Range, b6 As Range, b7 As Range)
> Application.Volatile
> Select Case x.Interior.ColorIndex
> Case b1.Interior.ColorIndex
> ValeurCouleur = b1.Value
> Case b2.Interior.ColorIndex
> ValeurCouleur = b2.Value
> Case b3.Interior.ColorIndex
> ValeurCouleur = b3.Value
> Case b4.Interior.ColorIndex
> ValeurCouleur = b4.Value
> Case b5.Interior.ColorIndex
> ValeurCouleur = b5.Value
> Case b6.Interior.ColorIndex
> ValeurCouleur = b6.Value
> Case b7.Interior.ColorIndex
> ValeurCouleur = b7.Value
> Case Else
> ValeurCouleur = ""
> End Select
> End Function
>
> J'utilise la fonction:
> =ValeurCouleur(B556;$B$1;$B$2;$B$3;$B$4;B$5;$B$6;$B$7)
>
> Cela fonctionne pour les valeurs présentes en B1, B2, B3, B4, B5, mais pas
> B6 et B7.
>
> Why?????
>
> "FdeCourt" a écrit :
>
> > Salut,
> >
> > Et avec ce code (que tu peux mettre dans un module standard) :
> >
> > Function ValeurCouleur(x As Range, b1 As Range, b2 As Range, b3 As
> > Range, b4 As Range)
> > Application.Volatile
> > Select Case x.Interior.ColorIndex
> > Case b1.Interior.ColorIndex
> > ValeurCouleur = b1.Value
> > Case b2.Interior.ColorIndex
> > ValeurCouleur = b2.Value
> > Case b3.Interior.ColorIndex
> > ValeurCouleur = b3.Value
> > Case b4.Interior.ColorIndex
> > ValeurCouleur = b4.Value
> > Case Else
> > ValeurCouleur = ""
> > End Select
> > End Function
> >
> > Et que tu appelles dans ta feuille Excel comme une fomule normale :
> > =ValeurCouleur(A11;$B$1;$B$2;$B$3;$B$4)
> >
> > Ou si tu veux faire une boucle en VBA :
> > Sub TouteCellule()
> > Dim c As Range
> > For Each c In Range("A10:A600")
> > c.Value = ValeurCouleur(c, Cells(1, 2), Cells(2, 2), Cells(3,
> > 2), Cells(4, 2))
> > Next
> > End Sub
> >
> > Je pense que le problème est la couleur d'une ligne.
> > Est-ce bien toute la ligne qui est colorée (donc de la colonne A à la
> > colonne IV) ?
> > Si ce n'est pas le cas, alors il est normal que la solution d'Isabelle
> > ne renvoit rien. Dans une ligne complete, s'il y a plusieurs couleurs,
> > alors Rows("" & c.Row & ":" & c.Row & "").Interior.ColorIndex renvoit
> > VIDE, donc c'est toujours la derniere condition qui s'applique (Range
> > ("A" & c.Row) = "" )
> >
> > Cordialemenent,
> >
> > F.
> >
> > PS : je me suis permis de poster une autre manière de voir les
> > choses !
> >
> > .
> >