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 ?
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
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
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).
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 :-/
en plus de mon message précédent, je constate que toutes les MFC sont supprimés. :/
Avez-vous un autre code à proposer en prenant en compte mes remarques ?
Encore moi, finalement j'ai compris pourquoi tout ne fonctionnait pas avec votre macro. Une autre la bloquait.
Tout es nickel. Je l'ai adapté à mon besoin.