Colorer une cellule si la valeur de la cellule a été modifiée

  • Initiateur de la discussion Initiateur de la discussion Marco56
  • Date de début Date de début

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 !

Marco56

XLDnaute Nouveau
Bonjour à tous,

J'ai développé une macro qui change la valeur de la cellule en fonction de deux conditions. J'ai deux feuilles avec en feuille 1 un planning sur une semaine, et en feuille 2 des heures travaillées en fonction des personnes et de la date. La macro a pour but de modifier la valeur de la cellule en feuille 1 si le nom et la date des deux feuilles correspondent.

Voici la macro qui fonctionne, juste à titre indicatif :

Code:
Sub Macro()
Dim datejour As Range
Dim datej As Range
Dim X As Integer

' ActiveSheet.Paste Destination:=Worksheets("Feuil1").Range(.Cells(4, X + 1), .Cells(200, X + 1))

Dim Nom As String, i As Long, j As Long                 'Collage en fonction des conditions (PROBLEME A PARTIR DE LA)
Sheets(1).Select
i = 4
With Sheets(2)
  Do While Cells(i, 2) <> "FIN"
    Nom = Cells(i, 2)
    For j = 4 To .Range("B200").End(xlUp).Row
      If Nom = .Cells(j, 2) Then
      Set datejour = Worksheets("Feuil2").Cells(j, 5)
With Worksheets("Feuil1").Range("A2:Z2")
Set datej = .Find(datejour, LookIn:=xlFormulas)
X = datej.Column
       End With
        Sheets(1).Cells(i, X).Value = Sheets(2).Cells(j, 17).Value
            Exit For
      End If
    Next
    i = i + 1
  Loop
End With
End Sub

Ce que je souhaite maintenant, c'est que la macro puisse colorier la cellule si la valeur a changée. En effet, la plage de cellules est importante et si je dois vérifier si chaque valeur a changée une par une, ça ne servait à rien de faire une macro... ^^

Donc je voudrais que si la valeur d'une cellule sur la plage "A1:I200" a été modifiée, alors la macro colore cette cellule en jaune.

Merci de votre aide,

Bonne journée 🙂
 
Re : Colorer une cellule si la valeur de la cellule a été modifiée

Bonjour Marco56,

Donc je voudrais que si la valeur d'une cellule sur la plage "A1:I200" a été modifiée, alors la macro colore cette cellule en jaune.

Pas sûr que ce soit une excellente idée, mais on va faire comme si.

1) Dans Module1 :

Code:
Public mem 'mémorisation du tableau de valeurs
2) Dans ThisWorkbook :

Code:
Private Sub Workbook_Open()
mem = Feuil1.[A1:I200] 'CodeName de la feuille
End Sub
3) Dans le code de la feuille :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
mem = [A1:I200] 'tableau des valeurs
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim tablo, ub&, i&, j&
tablo = [A1:I200]
ub = UBound(tablo, 2)
For i = 1 To UBound(tablo)
  For j = 1 To ub
    If tablo(i, j) <> mem(i, j) Then Cells(i, j).Interior.ColorIndex = 6 'couleur jaune
  Next
Next
End Sub
A+
 
- 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
5
Affichages
235
Réponses
4
Affichages
177
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
169
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
  • Question Question
Réponses
7
Affichages
324
Retour