Forme excel de couleur suivant valeurs

Résolu
freddv Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
supraman46 Messages postés 53 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
voici mon problème, j'ai récupéré un bout de code vba pour excel qui ne me satisfait pas entièrement, je poste donc mon message si toutefois qq'un connait la réponse...

La problématique : prendre une forme excel (Ellipse par exemple)est la colorier en vert si le résultat est positif et en rouge si négatif.

Le code

Private Sub Worksheet_Change(ByVal Target As Range)

With ActiveSheet.Shapes("Ellipse 1").OLEFormat.Object
.Interior.ColorIndex = Range("A1").Interior.ColorIndex
End With
End Sub


Les problèmes de ce code : pas possible de fonctionner avec la mise en forme automatique, le code regarde juste la couleur de la cellule en A1 dans l'exemple et colorie l'Ellipse 1 de la couleur de fond de cette même case.

Si quelqu'un avait une idée, cela m'arrangerai bien.Merci beaucoup
A voir également:

2 réponses

Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Salut,

Si j'ai bien tout compris, si la valeur est positive en A1 l'éllipse est verte et si est A1 négatif en rouge qui s'applique sur l'Ellipse1.
Regardes ce code

Private Sub Worksheet_Change(ByVal Target As Range)
If [A1] < 0 Then
With ActiveSheet.Shapes("Ellipse 1").OLEFormat.Object
.Interior.ColorIndex = 3
End With
Else
With ActiveSheet.Shapes("Ellipse 1").OLEFormat.Object
.Interior.ColorIndex = 4
End With
End If
End Sub

Mais si tu remplaces l'éllipse par un rond police Webdings tu peux passer par une mise en forme conditionnelle directe
1
supraman46 Messages postés 53 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour Mike,

Premièrement merci beaucoup pour ton aide avec ce code :) Je voulais te demander s'il serait possible aussi d'y ajouter une couleur spécifique pour la police? Exemple pour le "color index 3 j'aimerais que la police soit noire et pour l'autre color index elle soit blanche.

est-ce possibe?

merci à l'avance pour ton aide
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Bonsoir,

tu aurais dû ouvrir ta propre discussion, regarde comme cela

Private Sub Worksheet_Change(ByVal Target As Range)
If [A1] < 0 Then
With ActiveSheet.Shapes("Ellipse 1").OLEFormat.Object
.Interior.ColorIndex = 3
.Font.ColorIndex = 1
End With
Else
With ActiveSheet.Shapes("Ellipse 1").OLEFormat.Object
.Interior.ColorIndex = 4
.Font.ColorIndex = 2
End With
End If
End Sub
0
supraman46 Messages postés 53 Date d'inscription   Statut Membre Dernière intervention   1 > Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention  
 
Salut Mike,

Merci pour la mise à jour et désolé la prochaine fois je vais ouvrir un nouveau sujet sans faute.

Un gros merci encore!

bonne soirée
0
freddv Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup Mike.
0