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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 +
 
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

Dernière édition:
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

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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
14
Affichages
371
Réponses
7
Affichages
547
Retour