Macro pour coloriser une cellule après un contrôle de tableau

Salut à tous, je cherche à coloriser via une macro une cellule d'un tableau automatiquement, j'ai joins la feuille excel en annexe avec un exemple et l'explication, je n'y arrive malheureusement pas avec l'outil d'enregistrement en "live" d'une macro.

En gros dans mon tableau j'ai à chaque fois la même date qui se suit, pour chaque paquet de date je dois avoir la cellule C en jaune et le reste en rouge. Mais parfois la cellule tout en bas reste en jaune, il faudrait donc coloriser en rouge uniquement celles après la première qui est en jaune.

Merci d'avance !

6feuille-excel.xlsx (12.03 Ko)

Bonjour,

Pourquoi ne pas passer par une mise en forme conditionnelle (MEFC) qui est plus simple à mettre en place ? Cf exemple joint sous Acceuil > Mise en forme conditionnelle > Gérer les règles

Cdlt,

13feuille-excel.xlsx (12.54 Ko)

Salut, merci pour ta réponse, est ce que c'est déclenchable via un raccourci clavier comme une macro ?

C'est pour moi ajouter la macro a un autre ensemble de macros pour traiter un tableau brut, c'est pour cela que le vba est plus pratique pour moi je sais tout faire via un seul raccourci clavier

Bonjour,

Pas d'élément déclencheur c'est automatique. Tout élément déclenchant le calcul lance alors la MEFC (donc entrée d'une valeur, F9, etc etc ...). C'est l'un des avantages de la MEFC, pas besoin de raccourci ou quoique ce soit. Un avantage qui peut être un inconvénient lorsqu'on a des macros bases de données de plusieurs centaines de milliers de lignes avec des multiples MEFC très complexes où la navigation peut s'en retrouvée ralentie. Ce qui n'a pas l'air d'être votre cas.

Cdlt,

Edit : les MEFC sont manipulables sous VBA via l'objet FormatConditionning de l'objet Range il me semble.

Salut, je suis en train de tester, le problème c'est que mon tableau ne fait pas toujours 41 lignes, c'est toujours variable, du coup ça me met tout en jaune, il faudrait prendre en compte quand le tableau prend fin, c'est pour ça que par macro ce serait plus simple pour moi

Bonjour,

Un exemple pour modifier la plage d'application si le nombre de ligne change :

Sub ETENDRE_MEFC()
Dim LR%, R%
With ActiveSheet
    For R = 1 To Columns(3).FormatConditions.Count
        LR = .Cells(.Rows.Count, 3).End(xlUp).Row
        Columns(3).FormatConditions(R).ModifyAppliesToRange Range("$C$2:$C$" & LR)
    Next R
End With
End Sub

A noter que cette étape n'est pas nécessaire si vous travaillez avec une table structurée.

Cdlt,

Rechercher des sujets similaires à "macro coloriser controle tableau"