OVH Cloud OVH Cloud

couleur de fond introuvable

6 réponses
Avatar
lin kha
Bonjour à tous,

J'ai un problème urgent avec une macro.
A l'intérieur de celle-ci, j'ai une boucle qui fait des tests sur les
couleurs des cellules(si la cellule est rouge, relever la valeur) avec la
commande suivante
Selection.Interior.Color=vbred.
Mais le test n'est jamais pris en compte comme s'il ne reconnaissait pas la
couleur. J'ai aussi essayé avec ColorIndex=3 et je n'obtiens pas un meilleur
résultat.

Merci de votre aide à l'avance!!!
:-)

6 réponses

Avatar
FxM
Bonjour à tous,

J'ai un problème urgent avec une macro.
A l'intérieur de celle-ci, j'ai une boucle qui fait des tests sur les
couleurs des cellules(si la cellule est rouge, relever la valeur) avec la
commande suivante
Selection.Interior.Color=vbred.
Mais le test n'est jamais pris en compte comme s'il ne reconnaissait pas la
couleur. J'ai aussi essayé avec ColorIndex=3 et je n'obtiens pas un meilleur
résultat.

Merci de votre aide à l'avance!!!
:-)



Bonsoir,

Parmi les possibilités :
1) color / colorindex
Dans mon classeur d'essai, une cellule rouge renvoie :
255 avec color
3 avec colorindex

2) la couleur n'est pas 'rouge'
Solution : trouver la bonne couleur via par exemple la commande inverse
(couleur? = selection.interior.colorindex)

3) la couleur est issue d'une mise en forme conditionnelle
Solution : il faut reprendre les mêmes conditions que la MFC et non la
couleur directement.

@+
FxM

Avatar
anonymousA
soit la plage de cellules que tu as à tester , mettons p. les cellules de A1
à A1000.

Dim plageatester As Range, c As Range

Set plageatester = Range("D1:D30")

For Each c In plageatester

If c.Interior.ColorIndex = 3 Then
MsgBox c.Value
End If

Next

je te garantis que ca ne peut que marcher .

A+

"lin kha" a écrit dans le message de
news:
Bonjour à tous,

J'ai un problème urgent avec une macro.
A l'intérieur de celle-ci, j'ai une boucle qui fait des tests sur les
couleurs des cellules(si la cellule est rouge, relever la valeur) avec la
commande suivante
Selection.Interior.Color=vbred.
Mais le test n'est jamais pris en compte comme s'il ne reconnaissait pas
la

couleur. J'ai aussi essayé avec ColorIndex=3 et je n'obtiens pas un
meilleur

résultat.

Merci de votre aide à l'avance!!!
:-)


Avatar
lin kha
Bonjour à tous et merci pour votre rapidité!!

lol malgré tout, mon problème n'est toujours pas résolu...
C'est vrai que je n'ai pas préciser que le fond des cellules se faisait par
mise en forme conditionnelle.
Quand je fais ce test:
Range("A1").Select
Msgbox(Selection.Interior.ColorIndex)

Ca me renvoie -4121 alors que ce devrait être 3.
J'ai bien vérifier dans les conditions de ma mise en forme conditionelle,
j'utilise les mêmes conditions et la même syntaxe.
Si quelqu'un y comprend quelquechose??
Ou bien si quelqu'un connait une bidouille pour m'en sortir :-)

Bonne journée à tous


soit la plage de cellules que tu as à tester , mettons p. les cellules de A1
à A1000.

Dim plageatester As Range, c As Range

Set plageatester = Range("D1:D30")

For Each c In plageatester

If c.Interior.ColorIndex = 3 Then
MsgBox c.Value
End If

Next

je te garantis que ca ne peut que marcher .

A+

"lin kha" a écrit dans le message de
news:
Bonjour à tous,

J'ai un problème urgent avec une macro.
A l'intérieur de celle-ci, j'ai une boucle qui fait des tests sur les
couleurs des cellules(si la cellule est rouge, relever la valeur) avec la
commande suivante
Selection.Interior.Color=vbred.
Mais le test n'est jamais pris en compte comme s'il ne reconnaissait pas
la

couleur. J'ai aussi essayé avec ColorIndex=3 et je n'obtiens pas un
meilleur

résultat.

Merci de votre aide à l'avance!!!
:-)







Avatar
AV
lol malgré tout, mon problème n'est toujours pas résolu...
C'est vrai que je n'ai pas préciser que le fond des cellules se faisait par
mise en forme conditionnelle.


Le plus simple : tester avec le même test logique qui sert pour la MEFC !

J'ai bien vérifier dans les conditions de ma mise en forme conditionelle,
j'utilise les mêmes conditions et la même syntaxe.


Et si tu nous livrais la formule de la MEFC et la macro que tu utilises.. ?

AV

Avatar
lin kha
Voili Voilou:
'***MEFC***
For col2 = 2 To col
If Cells(4, col2).Value = wtest Then
Exit For
Else
Range(Cells(5, col2), Cells(i, col2)).Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _
Formula1:="35"
Selection.FormatConditions(1).Interior.ColorIndex = 3
Selection.FormatConditions.Add Type:=xlCellValue,
Operator:=xlGreaterEqual _
, Formula1:="35"
With Selection.FormatConditions(2).Interior
.ColorIndex = 4
'.PatternColorIndex = 4
End With
ActiveWindow.SmallScroll Down:=3
End If
Next

'***petit test pour vérifier ma couleur***
Range("A1").Select
If Selection.Interior.ColorIndex = 3 Then
MsgBox ("rouge")
End If


lol malgré tout, mon problème n'est toujours pas résolu...
C'est vrai que je n'ai pas préciser que le fond des cellules se faisait par
mise en forme conditionnelle.


Le plus simple : tester avec le même test logique qui sert pour la MEFC !

J'ai bien vérifier dans les conditions de ma mise en forme conditionelle,
j'utilise les mêmes conditions et la même syntaxe.


Et si tu nous livrais la formule de la MEFC et la macro que tu utilises.. ?

AV






Avatar
AV
'***petit test pour vérifier ma couleur***


Si tu teste sur la plage avec format conditionnel :

If ActiveCell < 35 Then MsgBox "Rouge " Else MsgBox "Vert"

AV