Format conditionnel d'une colonne appartenant à une cellule détectée

Bonjour,

Sous VBA, je recherche un moyen de réaliser un format conditionnel de plusieurs colonnes contenant sur une ligne donnée un texte précis.

Dans l'illustration, par exemple, toute colonne ayant le texte "toto 4" dans la ligne 7 aura pour condiction fonctionnelle "couleur x".

J'arrive à réaliser quelques fonctions sur VBA mais pas à mixer l'ensemble de ces codes.

Edit :

Voici le code que je n'arrive pas à débugger.

Private Sub Worksheet_Activate()

        Dim Cel As Range
        Dim db As Databar

   Set db = Cel.Columns.FormatConditions.AddDatabar

   With db

    For Each Cel In Range("A4:CC4")
    If Cel.Value = "Delta" Then

    .BarColor.Color = vbGreen
    .BarFillType = xlDataBarFillGradient
    .BarBorder.Type = xlDataBarBorderSolid
    .BarBorder.Color.Color = vbGreen
    .AxisPosition = xlDataBarAxisAutomatic
    .AxisColor.Color = vbRed

      With .NegativeBarFormat
        .ColorType = xlDataBarColor
        .Color.Color = vbRed
        .BorderColorType = xlDataBarColor
        .BorderColor.Color = vbRed

        End With
        End If
        Next Cel
        End With

End Sub

En vous remerciant par avance,

illustration

Bonjour,

Je m'excuse par avance de relancer le sujet sans réponse datant du 17 avril. Je pense que je ne suis pas très loin du bon code mais je n'ai pas trouvé ce qui bloque. C'est dans le cadre d'un fichier de travail.

Merci à vous,

A défaut d'avoir une réponse, même une idée d'orientation, je vous laisse tout de même une solution alternative si jamais vous tombez dans ce même cas :

  • Renommer les colonnes concernées (exemple Colonne AM1 = Deltat1, Colonne BD1 = Delta2, etc.)
  • Intégrer le code VBA en incluant les noms des colonnes au lieu d'une plage classique

Exemple :

 
Private Sub Worksheet_Activate()

    Dim rg As Range
    Dim db As Databar
    'rename 2 targeted columns by "Delta1" and "Delta2"
Set rg = Range("Delta1,Delta2")
Set db = rg.FormatConditions.AddDatabar
With db
    'positive bar formatted with green gradient & green border
    .BarColor.Color = vbGreen
    .BarFillType = xlDataBarFillGradient
    .BarBorder.Type = xlDataBarBorderSolid
    .BarBorder.Color.Color = vbGreen
    'the axis positioned automatically and coloured red
    .AxisPosition = xlDataBarAxisAutomatic
    .AxisColor.Color = vbRed
    'the negative bar formatted with a red gradient and red border
    With .NegativeBarFormat
        .ColorType = xlDataBarColor
        .Color.Color = vbRed
        .BorderColorType = xlDataBarColor
        .BorderColor.Color = vbRed
    End With
End With

End Sub

Cet exemple compare un format conditionnel de type "Data Bars" rouge/vert sur l'ensemble des valeurs des 2 colonnes renommées Delta1 et Delta 2.

L'avantage : Si vous ajouter/supprimer des colonnes avant celles-ci, ça n'impacte pas le ciblage des colonnes.

Au moins, si ça peut servire à quelqu'un....

Rechercher des sujets similaires à "format conditionnel colonne appartenant detectee"