Mise en forme conditionnelle via macro

BOnjour le forum,

J'ai un petit souci au niveau de ma mise en forme conditionnelle.

J'ai utilisé l'enregistreur de macro, qui me donne cela:

   Private Sub Worksheet_Activate()
Dim x As Long

x = WorksheetFunction.Max(Range("A" & Rows.Count).End(xlUp).Row, Range("B" & Rows.Count).End(xlUp).Row, _
Range("C" & Rows.Count).End(xlUp).Row, Range("D" & Rows.Count).End(xlUp).Row, Range("E" & Rows.Count).End(xlUp).Row, _
Range("F" & Rows.Count).End(xlUp).Row, Range("G" & Rows.Count).End(xlUp).Row, Range("H" & Rows.Count).End(xlUp).Row, _
Range("I" & Rows.Count).End(xlUp).Row, Range("J" & Rows.Count).End(xlUp).Row, Range("K" & Rows.Count).End(xlUp).Row, _
Range("L" & Rows.Count).End(xlUp).Row, Range("M" & Rows.Count).End(xlUp).Row, Range("N" & Rows.Count).End(xlUp).Row, _
Range("O" & Rows.Count).End(xlUp).Row, Range("P" & Rows.Count).End(xlUp).Row, Range("Q" & Rows.Count).End(xlUp).Row, _
Range("R" & Rows.Count).End(xlUp).Row)

    Range("N2:R" & x).FormatConditions.AddIconSetCondition
    Range("N2:R" & x).FormatConditions(Range("N2:R" & x).FormatConditions.Count).SetFirstPriority
    With Range("N2:R" & x).FormatConditions(1)
        .ReverseOrder = False
        .ShowIconOnly = False
        .IconSet = ActiveWorkbook.IconSets(xl3Signs)
    End With
    With Range("N2:R" & x).FormatConditions(1).IconCriteria(2)
        .Type = xlConditionValueFormula
        .Value = "=AUJOURDHUI()-7"
        .Operator = 7
    End With
    With Range("N2:R" & x).FormatConditions(1).IconCriteria(3)
        .Type = xlConditionValueFormula
        .Value = "=AUJOURDHUI()+7"
        .Operator = 7
    End With

End Sub

J'ai placé ce code à l'activation de la feuille, mais malheureusement lorsqu'une de mes autres macros écris dans la plage de données, cela n'a aucun effet (lorsque je réactive la feuille). Par contre lorsque j'ajoute une date à la main dans ma plage de données et que je réactive la feuille, je n'ai aucun problème et cela fonctionne. Auriez-vous une explication pour cela?

Et si oui, comment faire pour que cela marche depuis VBA aussi?

Merci d'avance à vous.

Cordialement,

Xcelpowa

Bonjour,

En recopiant le code tel quel, je n'ai pas de souci sur mon poste.

Un fichier exemple peut être utile (et ça m'aurait évité de tout retaper).

Ci-joint le fichier : sur la feuille F2, macro qui met à jour la cellule "N3" de la feuille F1 (une seule cellule pour test)

Bouben

Bonjour bouben,

Merci pour votre réponse.

Toutes mes excuses pour le fichier, je n'avais pas pensé à en joindre un, car je pensais à une erreur de mon code.

Je ne comprends pas du tout comment cela peut ne pas marcher chez moi, puisque j'ai un userform qui me permet de rentrer la date comme vous l'avez fait avec votre fenêtre de message. Je fais exactement la même chose sur le principe et j'ai beau activer la page ça ne marche pas. Si je double clique sur la cellule où ma date est apparue par contre et que je réactive ensuite la page, cela me fait bien ce que je veux.

C'est à ni rien comprendre!

Est-ce qu'il existe qqch pour faire un double clic automatiquement sur une cellule? Je suis tellement désespéré que je suis prêt à bidouiller comme ça.

Merci en tout cas de votre aide.

Cordialement,

Xcelpowa

Peut-être en ajoutant à la fin de la copie de la valeur un rafraichissement du fichier

=> ThisWorkbook.RefreshAll

Je ne peux pas tester, n'ayant pas le souci

Bouben

A force de bricoler quelque chose j'ai réussi à m'en sortir.

J'utilise le CDate pour être sûr que j'ai bien une date (pourtant le IsDate me disait bien que oui...)

Et cette fois cela fonctionne. Le problème venait donc sûrement d'un format qui était pourtant bon.

N'empêche que ma bidouille fonctionne donc problème résolu.

En tout cas merci à vous Buben, car vous m'avez donné par votre programme la piste du problème (à savoir pas le code de mise en forme mais bien la valeur déjà présente dans la cellule).

PS:: Je ne connaissais pas le rafraichissement, très pratique également dans mon cas ici, merci .

BOnne journée à vous et merci encore.

Cordialement,

xcelpowa

Rechercher des sujets similaires à "mise forme conditionnelle via macro"