Microsoft 365 Une barre de données avec des nuances de couleurs

M92_

XLDnaute Junior
Bonjour à tous,

J'ai un petit soucis avec un code VBA.

Quand je saisie une valeur (de 0 à 100) dans une cellule vide de la plage A1:21, le résultat est bien celui souhaité (ou presque!) = colonne D
Mai le comportement du code devient assez bizarre quand une cellule de la plage A1:21 contient déjà une valeur (de 0 à 100) = Colonne A

1635683763958.png


VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A1:E21")) Is Nothing Then
    Target.FormatConditions.AddDatabar
  With Target.FormatConditions(1)
        .MinPoint.Modify newtype:=xlConditionValueNumber, newvalue:=0
        .MaxPoint.Modify newtype:=xlConditionValueNumber, newvalue:=100
           Select Case Target.Value
       Case 0 To 35
       .BarColor.Color = RGB(239, 50, 69) 'Rouge foncé ' "&HFF" 'vbRed
       Case 35 To 50
       .BarColor.Color = RGB(237, 172, 73) 'Orange
       Case 50 To 65
       .BarColor.Color = RGB(161, 243, 106) 'Vert clair
       Case 65 To 100
        .BarColor.Color = RGB(11, 162, 0) 'Vert foncé 'vbGreen
   End Select
   End With
   End If
End Sub

Pouvez-vous m'aider sur ce sujet, s'il vous plaît ?

Merci par avance,

Cdlt,
M92
 
Dernière édition:

Rouge

XLDnaute Impliqué
Bonjour,

Essayez ceci
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("A1:A21")) Is Nothing Then
        Target.Offset(0, 3).Value = Target
        Target.Offset(0, 3).FormatConditions.AddDatabar
        With Target.Offset(0, 3).FormatConditions(1)
            .MinPoint.Modify newtype:=xlConditionValueNumber, newvalue:=0
            .MaxPoint.Modify newtype:=xlConditionValueNumber, newvalue:=100
         End With
        Select Case Target.Value
        Case 0 To 35
             Target.Offset(0, 3).FormatConditions(1).BarColor.Color = RGB(239, 50, 69) 'Rouge foncé ' "&HFF" 'vbRed
        Case 35 To 50
             Target.Offset(0, 3).FormatConditions(1).BarColor.Color = RGB(237, 172, 73) 'Orange
        Case 50 To 65
             Target.Offset(0, 3).FormatConditions(1).BarColor.Color = RGB(161, 243, 106) 'Vert clair
        Case 65 To 100
             Cells(Target.Row, "D").FormatConditions(1).BarColor.Color = RGB(11, 162, 0) 'Vert foncé 'vbGreen
        End Select
    End If
End Sub

Cdlt
 

Discussions similaires

Réponses
3
Affichages
592