probleme de formule

lolman14

XLDnaute Nouveau
Bonjour a tous ,
voila j'ai un petit probleme , je voudrait faire une formule "si la cellule c8 (par exemple)est rouge alors la copier et la coller sur une autre feuille sinon fin " en sachant que le fond de la cellule et faite par une mise en forme conditionnel.
voila ce que j'ai fait :
Dim cellule As Range

For Each cellule In Range("S7:S12")

If cellule.Font.ColorIndex = 3 Then
MsgBox "gagner"
Else
MsgBox "perdu"
End If
Next cellule

(pour le message box c'etait pour voir si ma formule marcher)
merci d'avance pour vos reponse
 

Gurgeh

XLDnaute Occasionnel
Re : probleme de formule

Salut lolman14,

J'imagine (car tu ne l'as pas mentionné explicitement) que ton problème est que tu as coloré une cellule en rouge et que ça n'affiche jamais le message "gagné"...

Le code que tu nous as indiqué teste la couleur du texte, et pas la couleur du fond de la cellule. Si ce que tu veux tester est la couleur du fond, il faut utiliser la propriété Interior.Color

Gurgeh
 

lolman14

XLDnaute Nouveau
Re : probleme de formule

salut R@chid , il faut que je le face absolument par macro
salut Gurgeh , j'ai tester comme tu ma dit mais sa ne marche toujours pas voici se que j'ai mit des fois que je me serai tromper "If cellule.Interior.Color = 3 Then" et oui ma cellule est rouge et il ne m'affiche jamais gagner alors que en S11 le fond est rouge
merci pour vos reponse
 
Dernière édition:

lolman14

XLDnaute Nouveau
Re : probleme de formule

salut Dugenou , je suis d'accord mais je vois pas comment je pourrai faire pour reprendre les conditions de mets MFC pour faire se que j'attend (si la cellule c8 (par exemple)est rouge alors la copier et la coller sur une autre feuille sinon fin)
si tu retrouve la formule en tout cas , je veut bien car sa me parrait la seul solution .
 

Dugenou

XLDnaute Barbatruc
Re : probleme de formule

Salut,
et bien si ta cellule est rouge quand la valeur est > 100 par exemple, il faudrait faire la même chose en vba.
J'ai retrouvé la syntaxe sur le site de Boisgontier (Compter le nombre de cellules d'un champ ayant une couleur MFC) : c.FormatConditions(i).Interior.ColorIndex
Cordialement
 

lolman14

XLDnaute Nouveau
Re : probleme de formule

merci beaucoup mais j'ai encore un probleme , une erreur 424 . voici mon code en entier
Sub Verif()

Dim cellule As Range

For Each cellule In Range("S7:S12")

'If cellule.Interior.Color = 3 Then
If c.FormatConditions(cellule).Interior.ColorIndex = 3 Then
'If CouleurMFC(cellule) = 3 Then
MsgBox "gagner"
Else
MsgBox "perdu"
End If
Next cellule


End Sub
 

Dugenou

XLDnaute Barbatruc
Re : probleme de formule

Re,
Je suis ignorant en VBA mais en regardant la fonction écrite par Boisgontier je pesne que c'est plutot
cellule.formatCondition(1).interior.colorindex.
Function CouleurMFC(cel)
Application.Volatile
Set c = Range(cel.Address)
ff = Array("Somme", "aujourdhui()", "nb.si", "equiv", "recherchev", _
"Nbval", "sommeprod", "joursem", "gauche", "droite", "stxt")
fa = Array("Sum", "today()", "countif", "match", "vlookup", _
"counta", "sumproduct", "weekday", "left", "right", "mid")
a = Array("=", ">", "<", ">=", "<=", "<>", "BETWEEN")
b = Array(xlEqual, xlGreater, xlLess, xlGreaterEqual, xlLessEqual, xlNotEqual, xlBetween)
i = 1
Do While i <= c.FormatConditions.Count And Not témoin
If c.FormatConditions(i).Type = xlCellValue Then
tmp1 = Evaluate(c.FormatConditions(i).Formula1)
oper = a(Application.Match(c.FormatConditions(i).Operator, b, 0) - 1)
If oper <> "BETWEEN" Then
If Evaluate(c & oper & tmp1) Then
coul = c.FormatConditions(i).Interior.ColorIndex
 

Discussions similaires

Statistiques des forums

Discussions
312 775
Messages
2 092 023
Membres
105 150
dernier inscrit
maxissof