Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Couleur cellule

10 réponses
Avatar
Jacques \(BE\)
Bonjour,

Dans un premier temps je compare deux feuilles(A et B) cellule
à cellule. S'il y a une différence je met la cellule en rouge dans la
feuille A.

Je corrige la cellule en erreur et je refais une validation.
Lorsque je fais une validation, j'efface (ou plutôt, j'essaie) les cellules
déjà en couleur avant de faire la comparaison.
Mon problème est que je n'arrive pas à récupérer la couleur de la cellule
une fois qu'elle
a été mise en couleur.

Si erreur : ThisWorkbook.Sheets(Sec).Range(Cel).Interior.ColorIndex = 3
la cellule est mise en rouge.

Lorsque je veux détecter la couleur d'une cellule, je fais comme ceci :

'Si la cellule est rouge met la en blanc
If .Cells(X, Y).Interior.ColorIndex = 3 Then
.Cells(X, Y).Interior.ColorIndex = 2
End If

Et cela ne fonctionne pas !! :-(

J'ai donc ajouter : Z = .Cells(X, Y).Interior.ColorIndex pour détecter
l'index de la couleur
et Z me retourne -4142 !!!!!!

Y aurait-il une erreur de code que je n'ai pas vue ??

Merci de vos réponses

Jacques

10 réponses

Avatar
MichDenis
Pour mettre une cellule en rouge, Tu devrais utiliser la constante VBRED
car les index couleur peuvent changer selon la palette de couleur du classeur

Les constantes disponibles sont : VBRed,VBbleue, VbGreen, Vbblack, VbWhite, VbCyan, VbMagenta et
vbyellow

Exemple :
with ThisWorkbook
.Sheets(Sec).Range(Cel).Interior.Color = vbred

'si tu veux faire un test sur la couleur
if .Sheets(Sec).Range(Cel).Interior.Color = vbred then
Msgbox "oui elle est rouge"
end if
End With




"Jacques (BE)" a écrit dans le message de news:

Bonjour,

Dans un premier temps je compare deux feuilles(A et B) cellule
à cellule. S'il y a une différence je met la cellule en rouge dans la
feuille A.

Je corrige la cellule en erreur et je refais une validation.
Lorsque je fais une validation, j'efface (ou plutôt, j'essaie) les cellules
déjà en couleur avant de faire la comparaison.
Mon problème est que je n'arrive pas à récupérer la couleur de la cellule
une fois qu'elle
a été mise en couleur.

Si erreur : ThisWorkbook.Sheets(Sec).Range(Cel).Interior.ColorIndex = 3
la cellule est mise en rouge.

Lorsque je veux détecter la couleur d'une cellule, je fais comme ceci :

'Si la cellule est rouge met la en blanc
If .Cells(X, Y).Interior.ColorIndex = 3 Then
.Cells(X, Y).Interior.ColorIndex = 2
End If

Et cela ne fonctionne pas !! :-(

J'ai donc ajouter : Z = .Cells(X, Y).Interior.ColorIndex pour détecter
l'index de la couleur
et Z me retourne -4142 !!!!!!

Y aurait-il une erreur de code que je n'ai pas vue ??

Merci de vos réponses

Jacques
Avatar
JB
Bonjour,

On peut comparer des cellules feuille à feuille avec la MEFC sans VBA

http://cjoint.com/?bDr5jR5LSO

Cordialement JB

On 29 jan, 17:31, "Jacques (BE)" wrote:
Bonjour,

Dans un premier temps je compare deux feuilles(A et B) cellule
à cellule. S'il y a une différence je met la cellule en rouge dans la
feuille A.

Je corrige la cellule en erreur et je refais une validation.
Lorsque je fais une validation, j'efface (ou plutôt, j'essaie) les cell ules
déjà en couleur avant de faire la comparaison.
Mon problème est que je n'arrive pas à récupérer la couleur de la cellule
une fois qu'elle
a été mise en couleur.

Si erreur : ThisWorkbook.Sheets(Sec).Range(Cel).Interior.ColorIndex = 3
la cellule est mise en rouge.

Lorsque je veux détecter la couleur d'une cellule, je fais comme ceci :

'Si la cellule est rouge met la en blanc
If .Cells(X, Y).Interior.ColorIndex = 3 Then
.Cells(X, Y).Interior.ColorIndex = 2
End If

Et cela ne fonctionne pas !! :-(

J'ai donc ajouter : Z = .Cells(X, Y).Interior.ColorIndex pour détecter
l'index de la couleur
et Z me retourne -4142 !!!!!!

Y aurait-il une erreur de code que je n'ai pas vue ??

Merci de vos réponses

Jacques


Avatar
Jacques \(BE\)
Bonjour JB,

Merci pour l'information mais mon problème ne se situe pas à ce niveau mais
plutôt dans la detection de la couleur d'une cellule.


"JB" a écrit dans le message de
news:
Bonjour,

On peut comparer des cellules feuille à feuille avec la MEFC sans VBA

http://cjoint.com/?bDr5jR5LSO

Cordialement JB

On 29 jan, 17:31, "Jacques (BE)" wrote:
Bonjour,

Dans un premier temps je compare deux feuilles(A et B) cellule
à cellule. S'il y a une différence je met la cellule en rouge dans la
feuille A.

Je corrige la cellule en erreur et je refais une validation.
Lorsque je fais une validation, j'efface (ou plutôt, j'essaie) les
cellules

déjà en couleur avant de faire la comparaison.
Mon problème est que je n'arrive pas à récupérer la couleur de la cellule
une fois qu'elle
a été mise en couleur.

Si erreur : ThisWorkbook.Sheets(Sec).Range(Cel).Interior.ColorIndex = 3
la cellule est mise en rouge.

Lorsque je veux détecter la couleur d'une cellule, je fais comme ceci :

'Si la cellule est rouge met la en blanc
If .Cells(X, Y).Interior.ColorIndex = 3 Then
.Cells(X, Y).Interior.ColorIndex = 2
End If

Et cela ne fonctionne pas !! :-(

J'ai donc ajouter : Z = .Cells(X, Y).Interior.ColorIndex pour détecter
l'index de la couleur
et Z me retourne -4142 !!!!!!

Y aurait-il une erreur de code que je n'ai pas vue ??

Merci de vos réponses

Jacques


Avatar
JB
If Sheets(1).Cells(1, 1).Interior.ColorIndex = 3 Then
Sheets(1).Cells(1, 1).Interior.ColorIndex = xlNone
End If

JB
On 29 jan, 18:26, "Jacques (BE)" wrote:
Bonjour JB,

Merci pour l'information mais mon problème ne se situe pas à ce nivea u mais
plutôt dans la detection de la couleur d'une cellule.

"JB" a écrit dans le message denews:117008984
Bonjour,

On peut comparer des cellules feuille à feuille avec la MEFC sans VBA

http://cjoint.com/?bDr5jR5LSO

Cordialement JB

On 29 jan, 17:31, "Jacques (BE)" wrote:



Bonjour,

Dans un premier temps je compare deux feuilles(A et B) cellule
à cellule. S'il y a une différence je met la cellule en rouge dans la
feuille A.

Je corrige la cellule en erreur et je refais une validation.
Lorsque je fais une validation, j'efface (ou plutôt, j'essaie) les
cellules

déjà en couleur avant de faire la comparaison.
Mon problème est que je n'arrive pas à récupérer la couleur de la cellule
une fois qu'elle
a été mise en couleur.

Si erreur : ThisWorkbook.Sheets(Sec).Range(Cel).Interior.ColorIndex = 3
la cellule est mise en rouge.

Lorsque je veux détecter la couleur d'une cellule, je fais comme ceci :

'Si la cellule est rouge met la en blanc
If .Cells(X, Y).Interior.ColorIndex = 3 Then
.Cells(X, Y).Interior.ColorIndex = 2
End If

Et cela ne fonctionne pas !! :-(

J'ai donc ajouter : Z = .Cells(X, Y).Interior.ColorIndex pour détec ter
l'index de la couleur
et Z me retourne -4142 !!!!!!

Y aurait-il une erreur de code que je n'ai pas vue ??

Merci de vos réponses

Jacques- Masquer le texte des messages précédents -- Afficher le te xte des messages précédents -




Avatar
Misange
bonjour
les couleurs mises par la mise en forme conditionnelle n'ont pas de code
couleur comme les autres ce qui explique ton code d'erreur.
il te faut soit travailler à partir des conditions utilisées pour
appliquer la mefc soit utiliser cette macro de laurent Longre
http://www.excelabo.net/xl/conditions.php#couleurdeMEFC

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour,

Dans un premier temps je compare deux feuilles(A et B) cellule
à cellule. S'il y a une différence je met la cellule en rouge dans la
feuille A.

Je corrige la cellule en erreur et je refais une validation.
Lorsque je fais une validation, j'efface (ou plutôt, j'essaie) les cellules
déjà en couleur avant de faire la comparaison.
Mon problème est que je n'arrive pas à récupérer la couleur de la cellule
une fois qu'elle
a été mise en couleur.

Si erreur : ThisWorkbook.Sheets(Sec).Range(Cel).Interior.ColorIndex = 3
la cellule est mise en rouge.

Lorsque je veux détecter la couleur d'une cellule, je fais comme ceci :

'Si la cellule est rouge met la en blanc
If .Cells(X, Y).Interior.ColorIndex = 3 Then
.Cells(X, Y).Interior.ColorIndex = 2
End If

Et cela ne fonctionne pas !! :-(

J'ai donc ajouter : Z = .Cells(X, Y).Interior.ColorIndex pour détecter
l'index de la couleur
et Z me retourne -4142 !!!!!!

Y aurait-il une erreur de code que je n'ai pas vue ??

Merci de vos réponses

Jacques




Avatar
Jacques \(BE\)
Bonjour,

Je ne sais pas d'où vient le problème mais je peux affecter la couleur (que
ce soit avec IndexColor = 3 ou VbRed)
mais je ne peux pas la detecter !
La valeur retournée est -4142 !?????


Jacques


"JB" a écrit dans le message de
news:

If Sheets(1).Cells(1, 1).Interior.ColorIndex = 3 Then
Sheets(1).Cells(1, 1).Interior.ColorIndex = xlNone
End If

JB
On 29 jan, 18:26, "Jacques (BE)" wrote:
Bonjour JB,

Merci pour l'information mais mon problème ne se situe pas à ce niveau
mais

plutôt dans la detection de la couleur d'une cellule.

"JB" a écrit dans le message
denews:

Bonjour,

On peut comparer des cellules feuille à feuille avec la MEFC sans VBA

http://cjoint.com/?bDr5jR5LSO

Cordialement JB

On 29 jan, 17:31, "Jacques (BE)" wrote:



Bonjour,

Dans un premier temps je compare deux feuilles(A et B) cellule
à cellule. S'il y a une différence je met la cellule en rouge dans la
feuille A.

Je corrige la cellule en erreur et je refais une validation.
Lorsque je fais une validation, j'efface (ou plutôt, j'essaie) les
cellules

déjà en couleur avant de faire la comparaison.
Mon problème est que je n'arrive pas à récupérer la couleur de la
cellule


une fois qu'elle
a été mise en couleur.

Si erreur : ThisWorkbook.Sheets(Sec).Range(Cel).Interior.ColorIndex = 3
la cellule est mise en rouge.

Lorsque je veux détecter la couleur d'une cellule, je fais comme ceci :

'Si la cellule est rouge met la en blanc
If .Cells(X, Y).Interior.ColorIndex = 3 Then
.Cells(X, Y).Interior.ColorIndex = 2
End If

Et cela ne fonctionne pas !! :-(

J'ai donc ajouter : Z = .Cells(X, Y).Interior.ColorIndex pour détecter
l'index de la couleur
et Z me retourne -4142 !!!!!!

Y aurait-il une erreur de code que je n'ai pas vue ??

Merci de vos réponses

Jacques- Masquer le texte des messages précédents -- Afficher le texte
des messages précédents -




Avatar
Jacques \(BE\)
Bonjour Misange,

Je n'utilise pas de mise en forme conditionnelle. Je compare deux valeurs et
si elles sont différentes
alors j'affecte la couleur rouge à la cellule en erreur.
Lorsque la cellule est corrigée, je veux simplement enlever la couleur
rouge. Lors de la vérification,
la valeur retourn.est -4142. J'ai d'autre cellules est la valeur retournée
est correcte!

Merci de votre réponse


Jacques

"Misange" a écrit dans le message de
news:Om9an5%
bonjour
les couleurs mises par la mise en forme conditionnelle n'ont pas de code
couleur comme les autres ce qui explique ton code d'erreur.
il te faut soit travailler à partir des conditions utilisées pour
appliquer la mefc soit utiliser cette macro de laurent Longre
http://www.excelabo.net/xl/conditions.php#couleurdeMEFC

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour,

Dans un premier temps je compare deux feuilles(A et B) cellule
à cellule. S'il y a une différence je met la cellule en rouge dans la
feuille A.

Je corrige la cellule en erreur et je refais une validation.
Lorsque je fais une validation, j'efface (ou plutôt, j'essaie) les
cellules


déjà en couleur avant de faire la comparaison.
Mon problème est que je n'arrive pas à récupérer la couleur de la
cellule


une fois qu'elle
a été mise en couleur.

Si erreur : ThisWorkbook.Sheets(Sec).Range(Cel).Interior.ColorIndex = 3
la cellule est mise en rouge.

Lorsque je veux détecter la couleur d'une cellule, je fais comme ceci :

'Si la cellule est rouge met la en blanc
If .Cells(X, Y).Interior.ColorIndex = 3 Then
.Cells(X, Y).Interior.ColorIndex = 2
End If

Et cela ne fonctionne pas !! :-(

J'ai donc ajouter : Z = .Cells(X, Y).Interior.ColorIndex pour détecter
l'index de la couleur
et Z me retourne -4142 !!!!!!

Y aurait-il une erreur de code que je n'ai pas vue ??

Merci de vos réponses

Jacques






Avatar
Modeste
Bonsour® Jacques (BE) avec ferveur ;o))) vous nous disiez :

Je ne sais pas d'où vient le problème mais je peux affecter la couleur (que
ce soit avec IndexColor = 3 ou VbRed)


la syntaxe Couleur
avec les constantes (vbRed) s'applique à Cells(x,y).Interior.Color=vbRed
rouge valeur = 255 (entier long)

la syntaxe Index Couleur
Cells(x,y).Interior.ColorIndex= 3 (rouge dans la palette par défaut)
accepte une valeur entre 1 et 56 ou xlnone

ne pas confondre :
Function CouleurRVB(target)
Application.Volatile
CouleurRVB = target.Interior.Color
End Function

Function CouleurIdx(target)
Application.Volatile
CouleurIdx = target.Interior.ColorIndex
End Function

exemple
A B 5
"CelluleRouge" 255 =couleurRVB(A1)
3 =couleurIdx(A1)



--
--
@+
;o)))

Avatar
Jacques \(BE\)
Bonjour Modeste,

Merci pour cette précision !

Jacques


"Modeste" a écrit dans le message de
news:
Bonsour® Jacques (BE) avec ferveur ;o))) vous nous disiez :

Je ne sais pas d'où vient le problème mais je peux affecter la couleur
(que


ce soit avec IndexColor = 3 ou VbRed)


la syntaxe Couleur
avec les constantes (vbRed) s'applique à Cells(x,y).Interior.Color=vbRed
rouge valeur = 255 (entier long)

la syntaxe Index Couleur
Cells(x,y).Interior.ColorIndex= 3 (rouge dans la palette par défaut)
accepte une valeur entre 1 et 56 ou xlnone

ne pas confondre :
Function CouleurRVB(target)
Application.Volatile
CouleurRVB = target.Interior.Color
End Function

Function CouleurIdx(target)
Application.Volatile
CouleurIdx = target.Interior.ColorIndex
End Function

exemple
A B 5
"CelluleRouge" 255 =couleurRVB(A1)
3 =couleurIdx(A1)



--
--
@+
;o)))





Avatar
JB
-4142 représente XlNone (absence de couleur)

Il faudrait un échantillon des cellules:

Cette fonction affiche t-elle le no de couleur?

Function couleur(c As Range)
Application.Volatile
couleur = c.Interior.ColorIndex
End Function

Dans le tableur: =Couleur(A1)

JB

On 30 jan, 14:07, "Jacques (BE)" wrote:
Bonjour,

Je ne sais pas d'où vient le problème mais je peux affecter lacouleur (que
ce soit avec IndexColor = 3 ou VbRed)
mais je ne peux pas la detecter !
La valeur retournée est -4142 !?????

Jacques

"JB" a écrit dans le message denews:117009248

If Sheets(1).Cells(1, 1).Interior.ColorIndex = 3 Then
Sheets(1).Cells(1, 1).Interior.ColorIndex = xlNone
End If

JB
On 29 jan, 18:26, "Jacques (BE)" wrote:> BonjourJB,

Merci pour l'information mais mon problème ne se situe pas à ce niv eau
mais

plutôt dans la detection de lacouleurd'une cellule.

"JB" a écrit dans le messagedenews:11700898




Bonjour,

On peut comparer des cellules feuille à feuille avec la MEFC sans VBA

http://cjoint.com/?bDr5jR5LSO

CordialementJB

On 29 jan, 17:31, "Jacques (BE)" wrote:

Bonjour,

Dans un premier temps je compare deux feuilles(A et B) cellule
à cellule. S'il y a une différence je met la cellule en rouge dan s la
feuille A.

Je corrige la cellule en erreur et je refais une validation.
Lorsque je fais une validation, j'efface (ou plutôt, j'essaie) les
cellules

déjà encouleuravant de faire la comparaison.
Mon problème est que je n'arrive pas à récupérer lacouleurde la
cellule


une fois qu'elle
a été mise encouleur.

Si erreur : ThisWorkbook.Sheets(Sec).Range(Cel).Interior.ColorIndex = 3
la cellule est mise en rouge.

Lorsque je veux détecter lacouleurd'une cellule, je fais comme ceci :

'Si la cellule est rouge met la en blanc
If .Cells(X, Y).Interior.ColorIndex = 3 Then
.Cells(X, Y).Interior.ColorIndex = 2
End If

Et cela ne fonctionne pas !! :-(

J'ai donc ajouter : Z = .Cells(X, Y).Interior.ColorIndex pour dét ecter
l'index de lacouleur
et Z me retourne -4142 !!!!!!

Y aurait-il une erreur de code que je n'ai pas vue ??

Merci de vos réponses

Jacques- Masquer le texte des messages précédents -- Afficher le textedes messages précédents -- Masquer le texte des messages précé dents -- Afficher le texte des messages précédents -