Forme excel de couleur suivant valeurs

Résolu
freddv Messages postés 13 Statut Membre -  
supraman46 Messages postés 57 Statut Membre -
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
Configuration: Windows XP
Firefox 3.5.2

2 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. supraman46 Messages postés 57 Statut Membre 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
    2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
       
      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
      1. supraman46 Messages postés 57 Statut Membre 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
  2. freddv Messages postés 13 Statut Membre
     
    Merci beaucoup Mike.
    0