Mise en forme conditionnelle à appliquer sur une colonne variable

Bonjour,

Margré mes recherches je cale,

Comme expliqué j'ai une mise en forme conditionnelle que je dois appliquer à une colonne dont la première cellule est nomée ("DELAY_REASON_COL")

Je sélectionne la colonne complète et applique la mise en forme conditionnelle via le code que j'ai enregistré via "record macro" seulement il me met la colonne "AN" qui est la colonne actuelle.

Si je dois insérer des nouvelles colonnes, il va toujours sélectionner la bonne mais du à la sélection de la colonne AN dans le code du conditionnal formating, il ne mettra pas la conditions dans la bonne.

Voici le bout de code

Range("DELAY_REASON_COL").Select
ActiveCell.EntireColumn.Select
      Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=AN1 = ""TO DETERMINE"""
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Font
        .Color = -11489280
        .TintAndShade = 0
    End With
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent4
        .TintAndShade = 0.599963377788629
    End With
    Selection.FormatConditions(1).StopIfTrue = False

Je cherche donc à remplacer le

=AN1

par la colonne actuelle celle déterminée sur la ligne pr&écédente.

Merci pour votre aide

bav

Xavier

Bonjour,

Voici un fichier créé avec cette partie de code.

Je dois donc faire le conditionnal formating dans la colonne où la première cellule porte le nom "DELAY_REASON_COL"

actuellement c'est bon car ca correspond à la colonne c que j'ai indiqué dans le conditionnal formating, mais si j'ajoute une colonne entre avant la colonne C, la colonne sohaitée pour recevoir le conditionnal formating sera la D et sur base de mon code il continuera à mettre dans la C

Merci

6book2.xlsm (17.97 Ko)

A tester

10book2.xlsm (25.50 Ko)

Merci celà correspond à ce que je souhaite.

j'ai transposé dans mon code mais il existe deux problèmes, le titre de la cellule "Delay reason" n'est pas dans la ligne 1 mais en ligne 3

je suppose que je dois modifier ici

pos = Application.WorksheetFunction.Match("DELAY REASON", Rows(3), False)

et le deuxième problème c'est que l'on travaille dans une feuille appelée "YEAR 2024" pour cette année et non pas "sheet1" comme dans l'exemple, mais celle ci

changera tout les ans. Il faudrait donc aller checher le nom de la feuille active pour la placer ici

ActiveWorkbook.Names("DELAY_REASON_COL").RefersToR1C1 = "=Sheet1!R1C" & pos

Désolé je n'ai pas mis le fichier complet très lourd et qui comprend des codes qui implique d'autres feuilles

Merci pour votre retour

bàv

Xavier

Bonjour,

Exact pour le numéro de la ligne.

Pour le nom de la feuille active :

    nomFeuilleActive = ActiveSheet.Name
    ActiveWorkbook.Names("DELAY_REASON_COL").RefersToR1C1 = "=" & nomFeuilleActive & "!R1C" & pos

Je vous laisse corriger.

Re

Je vous fourni la feuille comme elle est cofigurée dans un fichier à part, il semble qu'il y ait un problème quand il donne le nom à la cellule et donc il ne sait pas localiser le range.

Pouvez vous y regarder?

Merci encore

6book1.xlsm (33.41 Ko)

Bonjour,

A tester, normalement, c'est bon.

14book1.xlsm (38.76 Ko)

Parfait un grand merci celà fonctionne parfaitement

bav

Xavier

Rechercher des sujets similaires à "mise forme conditionnelle appliquer colonne variable"