Modif mise en page si changement formule

A priori ça marche quand même, mais j'ai l'impression qu'il y avait trop d'éléments, car en retirant une partie ça fonctionne parfaitement et même avec les plages fusionnées.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

  Dim Plg$

  Plg = "A5:A16, C5:F16, H5:H16, J5:R16"

  If Not Application.Intersect(Target, Range(Plg)) Is Nothing Then
    Target.Interior.Color = RGB(255, 0, 0) 'Couleur Rouge
  End If
End Sub

En revanche dernière question (je l'espère) la case apparaît en rouge même lorsque l'on place le curseur sur la formule et que l'on appuie sur entrée ensuite. Est-ce possible d'empêcher ça ?

merci pour ton info à propos des plages fusionnées.


« placer le curseur sur la formule » ? si tu veux dire par là que tu veux modifier la formule d'une cellule, alors le plus simple est de le faire dans la barre de formule : là, tu seras pas gêné par la couleur rouge de la cellule.

mais j'ai p't'être mal compris ta dernière question ?

dhany

Oui je pense, mais c'est assez dur à expliquer.

Je reprends :

En gros ce code est là pour que la cellule se colore en rouge quand quelqu'un modifie la formule.

Ce qui marche très bien.

Le désagrément que j'ai pour l'instant est que si je vais par exemple dans la barre de formule, mais que je ne modifie rien et que j'appuie sur entré la cellule se colore quand même en rouge malgré le fait qu'il n'y ai eu aucune modification.

Est-ce plus clair comme explication ?

oui, tu as très bien décris ce qui se passe ; mais attention :

1) tu as écrit : « ce code est là pour que la cellule se colore en rouge quand quelqu'un modifie la formule » ; non, ce n'est pas ça ! c'est : « quand une cellule de la plage Plg est modifiée » d'où le nom de la sub Worksheet_Change et l'événement de changement est en fait le changement de la valeur de la cellule ; quand tu modifies la formule, la valeur change, donc l'événement se déclenche : appel de la sub Worksheet_Change(), donc mise en couleur rouge.

2) « si je vais par exemple dans la barre de formule, mais que je ne modifie rien et que j'appuie sur entrée la cellule se colore quand même en rouge malgré le fait qu'il n'y ait eu aucune modification » ; c'est comme si tu sélectionnes une cellule, puis tu appuies sur la touche F2 puis Entrée : même sans changer la valeur de la cellule, ça déclenche l'événement Worksheet_Change ; donc ce qui est au point 1) est aussi dans ce cas.

il faudrait modifier le code pour prendre la valeur avant changement, celle après changement, et comparer les deux ; si identique, ne rien faire ; sinon, colorer en rouge ; cela pour les cellules concernées de la plage Plg.

dhany

Oui, oui c'est bien ce que je voulais dire, je me suis mal exprimé.

Bon je vais faire quelques recherches pour voir ce que je peux faire dans ce sens !

Merci beaucoup !

Rechercher des sujets similaires à "modif mise page changement formule"