[Excel] Utilise Macro Couleur fond -> Texte
Demky
Messages postés
18
Statut
Membre
-
Demky Messages postés 18 Statut Membre -
Demky Messages postés 18 Statut Membre -
Bonjour,
J'utilise dans mon fichier exccel, cette macro :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 8 _
And Target.Row >= 2 Then
If UCase(Target.Value) = "0" Then
Target.EntireRow.Interior.ColorIndex = 22
Else
Target.EntireRow.Interior.ColorIndex = 0
End If
End If
End Sub
Celle-ci, me permet Lorsque l'Une des case de la collone 8 est egale a 0, de changer toute la couleur de la ligne en question.
N'y connaissant rien en VB, j'essaye, sans trouver la solution, d'ajouter dans cette macro, une option afin qu'en plus de changer la couleur de toute la ligne;
Lorsque la condition précedente est vrai, Cela change la couleur du texte de la collone precedante (soit la collone 7) egalement...
J'ai essayer d'inventer pas mal de ligne de code mais rien n'y fait... la programation soit on connait les "bon" termes soit on n'y arrive pas...
Ce que j'ai essayer :/
Case.(Target.Column -1).Font.ColorIndex = 22 -> J'etait parti sur le principe que la macro se rendant compte que la Case X etait modifier, celle-ci aurai été apte a trouver la case x-1...
Bref j'ai essayer pas mal de chose qui ne fonctionne helas pas :/
J'utilise dans mon fichier exccel, cette macro :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 8 _
And Target.Row >= 2 Then
If UCase(Target.Value) = "0" Then
Target.EntireRow.Interior.ColorIndex = 22
Else
Target.EntireRow.Interior.ColorIndex = 0
End If
End If
End Sub
Celle-ci, me permet Lorsque l'Une des case de la collone 8 est egale a 0, de changer toute la couleur de la ligne en question.
N'y connaissant rien en VB, j'essaye, sans trouver la solution, d'ajouter dans cette macro, une option afin qu'en plus de changer la couleur de toute la ligne;
Lorsque la condition précedente est vrai, Cela change la couleur du texte de la collone precedante (soit la collone 7) egalement...
J'ai essayer d'inventer pas mal de ligne de code mais rien n'y fait... la programation soit on connait les "bon" termes soit on n'y arrive pas...
Ce que j'ai essayer :/
Case.(Target.Column -1).Font.ColorIndex = 22 -> J'etait parti sur le principe que la macro se rendant compte que la Case X etait modifier, celle-ci aurai été apte a trouver la case x-1...
Bref j'ai essayer pas mal de chose qui ne fonctionne helas pas :/
A voir également:
- [Excel] Utilise Macro Couleur fond -> Texte
- Excel cellule couleur si condition texte - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word couleur de fond texte - Guide
- Somme si couleur excel - Guide
4 réponses
Bonjour Michel_m ta ligne de code est dans l'idée de ce que je cherche a faire :
Private Sub Worksheet_Change(ByVal Target As Range)
' Quantité = 0 ?
' adapter le numéro de la colonne (ici 8)...
' et de ligne pour ne pas toucher aux lignes entête (ici 2)
If Target.Column = 8 _
And Target.Row >= 2 Then
If UCase(Target.Value) = "0" Then
Target.EntireRow.Interior.ColorIndex = 22
Target.Offset(0, -1).EntireColumn.Interior.ColorIndex = 22
Else
Target.EntireRow.Interior.ColorIndex = 0
End If
End If
End Sub
Le probleme, c'est que toute la colonne G passe en Color=22
Comment faire pour que seulement la case Gx passe en couleur ? (la case de la ligne ou G9 est egal a 0)
Plus compréhensible avec l'exemple :
/ A B C D
1 * * * *
2 * * * 0
3 * * * *
D2=0
La Ligne 2 passe en "color22".
Le texte de la Case C2 passe en "color22"
**-> nb : si, c'est D3 qui est egale a 0, c'est C3 qui passera son texte en couleur22.
Je vais essayer de chercher, mais si tu es toujours là, tu es le bienvenue :)
Edit :J'ai mis Font à la place de Interior, la modification s'effectue bien sur le texte, reste plus qu'a trouver comment n'agir que sur la case dx
Target.Offset(0, -1).EntireColumn.Font.ColorIndex = 22
Private Sub Worksheet_Change(ByVal Target As Range)
' Quantité = 0 ?
' adapter le numéro de la colonne (ici 8)...
' et de ligne pour ne pas toucher aux lignes entête (ici 2)
If Target.Column = 8 _
And Target.Row >= 2 Then
If UCase(Target.Value) = "0" Then
Target.EntireRow.Interior.ColorIndex = 22
Target.Offset(0, -1).EntireColumn.Interior.ColorIndex = 22
Else
Target.EntireRow.Interior.ColorIndex = 0
End If
End If
End Sub
Le probleme, c'est que toute la colonne G passe en Color=22
Comment faire pour que seulement la case Gx passe en couleur ? (la case de la ligne ou G9 est egal a 0)
Plus compréhensible avec l'exemple :
/ A B C D
1 * * * *
2 * * * 0
3 * * * *
D2=0
La Ligne 2 passe en "color22".
Le texte de la Case C2 passe en "color22"
**-> nb : si, c'est D3 qui est egale a 0, c'est C3 qui passera son texte en couleur22.
Je vais essayer de chercher, mais si tu es toujours là, tu es le bienvenue :)
Edit :J'ai mis Font à la place de Interior, la modification s'effectue bien sur le texte, reste plus qu'a trouver comment n'agir que sur la case dx
Target.Offset(0, -1).EntireColumn.Font.ColorIndex = 22
Je pense avoir trouver la solution...
Je ne sais pas si c'est la bonne façon mais avec :
Private Sub Worksheet_Change(ByVal Target As Range)
' Quantité = 0 ?
' adapter le numéro de la colonne (ici 8)...
' et de ligne pour ne pas toucher aux lignes entête (ici 2)
If Target.Column = 8 _
And Target.Row >= 2 Then
If UCase(Target.Value) = "0" Then
Target.EntireRow.Interior.ColorIndex = 22
Target.Offset(0, -1).Font.ColorIndex = 22
Else
Target.EntireRow.Interior.ColorIndex = 0
End If
End If
End sub
Cela semble fonctioner :)
Merci beaucoup.
Je ne sais pas si c'est la bonne façon mais avec :
Private Sub Worksheet_Change(ByVal Target As Range)
' Quantité = 0 ?
' adapter le numéro de la colonne (ici 8)...
' et de ligne pour ne pas toucher aux lignes entête (ici 2)
If Target.Column = 8 _
And Target.Row >= 2 Then
If UCase(Target.Value) = "0" Then
Target.EntireRow.Interior.ColorIndex = 22
Target.Offset(0, -1).Font.ColorIndex = 22
Else
Target.EntireRow.Interior.ColorIndex = 0
End If
End If
End sub
Cela semble fonctioner :)
Merci beaucoup.