Modification du contenu d'une cellule

Bonjour à toutes et à tous,

Sur un onglet (genre Feuil1), j'ai un ensemble de cellule (disons A1:C10) que je désire garder à l'oeil dès lors que le contenu de l'une d'entre elle venait à être modifié.

Le résultat escompté serait de modifier le format de la cellule modifiée avec les éléments suivants:

Couleur de la Cellule : Bleu Clair - RGB (0, 176, 240)

Police : Gras

Couleur Police : Blanc - RGB (255, 255, 255)

J'ai visualisé plusieurs vidéos me présentant des exemples de Private Sub, mais elles ne semblent pas fonctionner.

J'utilise une version Desktop - Microsoft Office Professional Plus 2021

Merci d'avance pour votre support

Salut Horakhty,

Private Sub Worksheet_Change(ByVal Target As Range)
'
If Not Intersect(Target, Range("A1:C10")) Is Nothing Then _
    Range("A1:C10").Interior.ColorIndex = xlColorIndexNone: _
    Target.Interior.Color = RGB(0, 175, 240)
'
End Sub

A+

Bonjour Horakhty,

Je cherche à comprendre votre besoin.

Vous souhaitez mettre en couleur des cellules modifiées, mais quels sont les critères ?

Car quand vous créez une feuille, pour y mettre des données, vous modifiez des cellules, donc, par définition, toutes les cellules contenant des données, sont modifiées.

Il faudrait préciser ce que vous entendez par modifier ?

Depuis la dernière ouverture ?

Depuis 7 jours ?

Depuis....

Quoi qu'il en soit, il va vous falloir une base de référence et effectuer une comparaison.

Si vous pouvez répondre à ces quelques questions et mettre quelques exemples dans un fichier et dire ce que vous souhaitez surveiller, vous aurez probablement des réponses à vos attentes.

Cordialement.

Private Sub Worksheet_Change(ByVal Target As Range)
'
If Not Intersect(Target, Range("A1:C10")) Is Nothing Then _
    Range("A1:C10").Interior.ColorIndex = xlColorIndexNone: _
    Target.Interior.Color = RGB(0, 175, 240)
'
End Sub

On tient un bout, mais cette macro ne change que la dernière cellule modifiée.

Or je veux voir toutes les modifications qui ont eu lieu sur cette plage.

Par exemple, si les cellules A1, B5 et C7 ont été modifiés, je veux que ces trois cellules apparaissent dans le format désiré.

En d'autres termes, je veux pouvoir retracer l'historique de toutes les modifications appliquées sur cette plage.

Merci encore

Quand vous créez une feuille, pour y mettre des données, vous modifiez des cellules, donc, par définition, toutes les cellules contenant des données, sont modifiées.

Il faudrait préciser ce que vous entendez par modifier ?

Depuis la dernière ouverture ?

Depuis 7 jours ?

Depuis....

Il s'agit d'un fichier que je mets à jour en fonction des modifications horaires pris en compte par notre prestataire.

A chaque mise à jour de mon côté, je change le nom (V1 devient V2, etc...) et rétablis un formattage des cellules (polices, épaisseurs des traits...)

Dans un premier temps, cela me permet de voir si les modifications demandées par mes collègues, dans la version précédente, ont bien été pris en compte.

Après la création de la nouvelle version, je veux suivre les nouvelles modifications proposées par mes collègues dans ce nouveau fichier.

N'hésitez pas à me relancer si je ne suis pas assez clair.

Merci d'avance,

De mise à jour à mise à jour, cela risque de devenir un vrai sapin de Noël!
Je sais que c'est de saison mais faut-il garder les modif's de la veille ou de l'avant-veille?
Quand cela s'arrête-t-il?

De mise à jour à mise à jour, cela risque de devenir un vrai sapin de Noël!

Je sais que c'est de saison mais faut-il garder les modif's de la veille ou de l'avant-veille?

Quand cela s'arrête-t-il?

Une mise à jour du prestataire entraîne la création d'un nouveau fichier. Donc on recommence à zéro.

En comparant le fichier précédent, contenant des cellules modifiées et le nouveau, je peux savoir si les demandes de mes collègues ont bien été prises en compte.

Par contre, mes collègues peuvent exprimer le besoin de nouveaux changements. Ils ont accès au fichier. Je veux pouvoir suivre leurs nouvelles demandes en modifiant automatiquement le format des cellules qu'ils changent...

La difficulté n'est pas le code puisqu'il suffit de retirer une ligne.

Private Sub Worksheet_Change(ByVal Target As Range)
'
If Not Intersect(Target, Range("A1:C10")) Is Nothing Then _
    Target.Interior.Color = RGB(0, 175, 240)
'
End Sub

Est-ce bien cela que tu veux?

Private Sub Worksheet_Change(ByVal Target As Range)
'
If Not Intersect(Target, Range("A1:C10")) Is Nothing Then _
    Target.Interior.Color = RGB(0, 175, 240)
'
End Sub

Le code fonctionne. Merci déjà pour cela

Maintenant, comment dois-je procéder pour rajouter les caractères en gras et la fonte blanche?

Désolé, mais je ne connais que les bases du VBA...

Ainsi, simplement!

Private Sub Worksheet_Change(ByVal Target As Range)
'
If Not Intersect(Target, Range("A1:C10")) Is Nothing Then _
    Target.Interior.Color = RGB(0, 175, 240): _
    Target.Font.Color = RGB(255, 255, 255): _
    Target.Font.Bold = True
'
End Sub

A+

Un grand merci à toi Curulis !!!

Rechercher des sujets similaires à "modification contenu"