condition selon couleur du texte de la cellule

7 réponses
Avatar
Dominique
Bonjour le forum
La cellule C15 peut etre ecrite en rouge ou en noir. Par quoi je peux
remplacer "texte en rouge" dans la formule ci dessous pour que ma formule s
applique. Je ne souhaite pas passer par la MFC.
merci

=SI(C15=texte en
rouge;ARRONDI((H15/100*(U15-(U15*$B$4/100)));0);ARRONDI(H15/100*U15;0))

7 réponses

Avatar
FFO
Salut à toi

A mon avis et je ne crois pas me tromper les formules restes insensibles au
format des cellules

Tu n'as que la solution VBA pou répondre à ton besoin
Avatar
Dominique
Salut
OUps! ca va pas etre facile .
Car il faut que sur chaque cellule de ma colonne qui commence à V15 jusqu'a
la derniere ligne ( Derlig = Sheets("Lievre").Range("C65536").End(xlUp).Row)
se mette a jour a chaque modification de la cellule $b$15.
Pour appliquer la formule :
FormulaR1C1 = "=ROUND((RC[-15]/100*(RC[-1]-(RC[-1]*R4C2/100))),0)"
Si la cellule C de la meme ligne est ecrit en rouge
sinon apliquer la formule :
FormulaR1C1 = "=ROUND(RC[-14]/100*RC[-1],0)"
si quelqu un peu m orienter merci

"FFO" wrote:

Salut à toi

A mon avis et je ne crois pas me tromper les formules restes insensibles au
format des cellules

Tu n'as que la solution VBA pou répondre à ton besoin




Avatar
FFO
Rebonjour Dominique

Mets dans le VBA de ta feuille (ALT+F11) ces lignes :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("B15").Address Then
For Each c In Range("V15", "V" & Range("C65535").End(xlUp).Row)
If Range("C" & c.Row).Font.ColorIndex = 3 Then
c.FormulaLocal = "=ARRONDI((G" & c.Row & "/100*(U" & c.Row & "-(U" & c.Row &
"*$B$4/100)));0)"
Else
c.FormulaLocal = "=ARRONDI(H" & c.Row & "/100*U" & c.Row & ";0)"
End If
Next
End If
End Sub

Celà devrait te convenir

Dis moi !!!!!

"Dominique" wrote:
Avatar
Dominique
C'est super, ca marche. Merci beaucoup pour ton aide.
Une autre question si cela ne te derange pas.

Ton code modifie le type de formule selon ce que l'on change dans B4 (pas
B15, je me suis trompé desolé). je voudrais qu'il change si on change la
couleur de la cellule C. Je suppose que c'est le meme code mais que je dois
changer l'entete de code. Si c'est cela quel titre je dois mettre? Merci pour
ton aide

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = Range("B4").Address Then
For Each c In Range("V15", "V" & Range("C65535").End(xlUp).Row)
If Range("C" & c.Row).Font.ColorIndex = 3 Then
c.FormulaLocal = "=ARRONDI((G" & c.Row & "/100*(U" & c.Row & "-(U" &
c.Row & "*$B$4/100)));0)"
Else
c.FormulaLocal = "=ARRONDI(H" & c.Row & "/100*U" & c.Row & ";0)"
End If
Next
End If

End Sub



"FFO" wrote:

Rebonjour Dominique

Mets dans le VBA de ta feuille (ALT+F11) ces lignes :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("B15").Address Then
For Each c In Range("V15", "V" & Range("C65535").End(xlUp).Row)
If Range("C" & c.Row).Font.ColorIndex = 3 Then
c.FormulaLocal = "=ARRONDI((G" & c.Row & "/100*(U" & c.Row & "-(U" & c.Row &
"*$B$4/100)));0)"
Else
c.FormulaLocal = "=ARRONDI(H" & c.Row & "/100*U" & c.Row & ";0)"
End If
Next
End If
End Sub

Celà devrait te convenir

Dis moi !!!!!

"Dominique" wrote:



Avatar
FFO
Rebonjour à toi

Ce code evennementiel : "Private Sub Worksheet_Change(ByVal Target As
Range)" n'agit que sur le changement de la valeur d'une cellule et non pas
sur le changement de son format
Ici effectivement je filtre à B4 :If Target.Address = Range("B4").Address Then

Tu peux le changer pour B15 ainsi : If Target.Address = Range("B15").Address
Then

Je ne connais pas de procédure evennementielle qui réagissent sur le format

Tu peux par contre utiliser un module ordinaire que tu actives par un bouton
à la demande avec ces lignes de code :

For Each c In Range("V15", "V" & Range("C65535").End(xlUp).Row)
If Range("C" & c.Row).Font.ColorIndex = 3 Then
c.FormulaLocal = "=ARRONDI((G" & c.Row & "/100*(U" & c.Row & "-(U" &
c.Row & "*$B$4/100)));0)"
Else
c.FormulaLocal = "=ARRONDI(H" & c.Row & "/100*U" & c.Row & ";0)"
End If
Next
End If


Espérant avoir répondu à tes attentes

Dis moi !!!!!
Avatar
Jac
Bonjour Dominique,

et si tu écrivais dans une cellule quelque chose qui serait la
condition de ta cellule : Rouge ou Payé ou Impayé ou Premier calcul ou
..., ta formule pourrait devenir :

=SI(D15="Rouge";ARRONDI((H15/100*(U15-(U15*$B$4/100)));0);ARRONDI(H15/100*U15;0))

et la mise en couleur pourrait être un formatage conditionnel dépendant
de D15 par exemple, donc ce serait ce qui est écrit en D15 qui mettrait
du rouge sur C15.

@+

Jac

Le 07/08/2009, Dominique a supposé :
Bonjour le forum
La cellule C15 peut etre ecrite en rouge ou en noir. Par quoi je peux
remplacer "texte en rouge" dans la formule ci dessous pour que ma formule s
applique. Je ne souhaite pas passer par la MFC.
merci

=SI(C15=texte en
rouge;ARRONDI((H15/100*(U15-(U15*$B$4/100)));0);ARRONDI(H15/100*U15;0))


Avatar
Dominique
Le 07/08/2009 17:41, FFO a écrit :
Merci beaucoup FFO je vais utiliser le systeme bouton en option. comme
tu me l indique.
merci beaucoup, j ai encore appris beaucoup de chose. je te souhaite un
bon week end

Rebonjour à toi

Ce code evennementiel : "Private Sub Worksheet_Change(ByVal Target As
Range)" n'agit que sur le changement de la valeur d'une cellule et non pas
sur le changement de son format
Ici effectivement je filtre à B4 :If Target.Address = Range("B4").Address Then

Tu peux le changer pour B15 ainsi : If Target.Address = Range("B15").Address
Then

Je ne connais pas de procédure evennementielle qui réagissent sur le format

Tu peux par contre utiliser un module ordinaire que tu actives par un bouton
à la demande avec ces lignes de code :

For Each c In Range("V15", "V"& Range("C65535").End(xlUp).Row)
If Range("C"& c.Row).Font.ColorIndex = 3 Then
c.FormulaLocal = "=ARRONDI((G"& c.Row& "/100*(U"& c.Row& "-(U"&
c.Row& "*$B$4/100)));0)"
Else
c.FormulaLocal = "=ARRONDI(H"& c.Row& "/100*U"& c.Row& ";0)"
End If
Next
End If


Espérant avoir répondu à tes attentes

Dis moi !!!!!