XL 2016 VBA, colorer la cellule valeur différente de l'onglet précédent

Laetitia.B

XLDnaute Nouveau
Bonjour,

j'ai un dilemne....j'ai un 1er onglet (sous forme de fomulaire). j'ai un bouton qui me permet de copier cet onglet avec les données. Certaines de ces données seront modifier et j'aimerai que ces cellules modifiées apparaissent d'une couleur. j'ai une macro aujourd'hui :

Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Sheets("Fiche projet").Range(Target.Address) <> Target Then ' Si valeur <> de la feuille Fiche projet
Range(Target.Address).Interior.Color = RGB(232, 226, 33) ' Mettre en vert anis de la charte graphique
End If


Cependant elle colore les cellules qui sont modifiées manuellement et non celles automatiquement (formule). Quel serait le bon code pour prendre en compte les 2 cas ?

Merci d'avance pour votre aide :)

A +
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @Laetitia.B :),

Voyez le code dans module1.

Une nouvelle feuille est créée sur le modèle de la feuille "Fiche Projet" quand on clique sur le bouton.
Sur chaque nouvelle feuille créée, une MFC colore en vert anis les cellules dont la valeur est différente par rapport aux mêmes cellules de la feuille modèle.

Code de module1:
VB:
Sub Nouvelle()
Dim Fplus, ZoneMFC As Range

   Sheets("Fiche Projet").Copy after:=Sheets(Sheets.Count)
   Set Fplus = ActiveSheet
   With Fplus
      .Shapes("NvelleFiche").Delete
      Set ZoneMFC = .Range(Range("a1"), .Cells.SpecialCells(xlCellTypeLastCell))
      With ZoneMFC
         .FormatConditions.Add Type:=xlExpression, Formula1:="=A1<>'Fiche Projet'!A1"
         .FormatConditions(.FormatConditions.Count).SetFirstPriority
         With .FormatConditions(1).Interior
             .Pattern = xlSolid
             .PatternColorIndex = xlAutomatic
             .Color = RGB(232, 226, 33)
             .TintAndShade = 0
         End With
       .FormatConditions(1).StopIfTrue = True
      End With
   End With
End Sub
 

Pièces jointes

  • Laetitia.B- Nouvelle Feuille- v1.xlsm
    18.9 KB · Affichages: 5
Dernière édition:

Laetitia.B

XLDnaute Nouveau
Bonsoir @Laetitia.B :),

Voyez le code dans module1.

Une nouvelle feuille est créée sur le modèle de la feuille "Fiche Projet" quand on clique sur le bouton.
Sur chaque nouvelle feuille créée, une MFC colore en vert anis les cellules dont la valeur est différente par rapport aux mêmes cellules de la feuille modèle.

Code de module1:
VB:
Sub Nouvelle()
Dim Fplus, ZoneMFC As Range

   Sheets("Fiche Projet").Copy after:=Sheets(Sheets.Count)
   Set Fplus = ActiveSheet
   With Fplus
      .Shapes("NvelleFiche").Delete
      Set ZoneMFC = .Range(Range("a1"), .Cells.SpecialCells(xlCellTypeLastCell))
      With ZoneMFC
         .FormatConditions.Add Type:=xlExpression, Formula1:="=A1<>'Fiche Projet'!A1"
         .FormatConditions(.FormatConditions.Count).SetFirstPriority
         With .FormatConditions(1).Interior
             .Pattern = xlSolid
             .PatternColorIndex = xlAutomatic
             .Color = RGB(232, 226, 33)
             .TintAndShade = 0
         End With
       .FormatConditions(1).StopIfTrue = True
      End With
   End With
End Sub
bonjour,

Merci à vous :)
ça marche mais la feuille "fiche projet" ne sera pas forcément la feuille référente. Je m'explique : mon bouton sert à copier la feuille fiche projet.cette copie est nommer projet avenant... Et je peux faire une copie de cette dernière et ainsi de suite. C'est pour cela que j'aimerai que la macro vérifie les données de la feuille précédente (source de la copie). Mon fichier est en pièce jointe.

(J'ai essayer de nommer la feuille active (feuille que l'on copie) pour ensuite l'utiliser à la place de 'fiche projet' dans votre macro mais je n'ai pas réussi).

Merci d'avance,

bonne journée
 

Pièces jointes

  • FNP-NT-016E-Projet.xlsm
    108.7 KB · Affichages: 3

Laetitia.B

XLDnaute Nouveau
Bonjour @Laetitia.B,

Voyez la version v2 ?
on s'y approche ! alors j'ai adapté votre macro à mon doc ci-joint.

il y a un problème avec la couleur qui (reste vert si = et reste lors de la copie de la feuille) dans la partie du tableau gauche. Par contre le petite tableau à droite fonctionne bien :)

Je pense que c'est la plage...mais j'ai un peu manipulé et je n'y arrive pas :-/
 

Pièces jointes

  • FNP-NT-016E-Projet-1.xlsm
    112.1 KB · Affichages: 5

Discussions similaires

Réponses
7
Affichages
292