Les Allergies
Alimentaires
Posez votre question Signaler

[Excel] Utilise Macro Couleur fond -> Texte

Demky 15Messages postés 20 août 2006Date d'inscription 26 mars 2012Dernière intervention - Dernière réponse le 7 oct. 2009 à 10:47
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 :/
Lire la suite 

[Excel] Utilise Macro Couleur fond -> Texte »

4 réponses
Réponse
+0
moins plus
up...
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

essaies:
Target.Offset(0, -1).EntireColumn.Interior.ColorIndex
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Ce document intitulé « [Excel] Utilise Macro Couleur fond -> Texte » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?