Option Explicit
'La boucle
Sub CompareTout()
Dim i As Integer
For i = 2 To Feuil1.ListObjects("Tableau1").ListColumns.Count Step 2
CompareCol i, i + 1
Next i
End Sub
'La comparaison colonne à colonne
Sub CompareCol(col1 As Integer, col2 As Integer)
Dim r As Range
Dim variable1 As Variant
Dim variable2 As Variant
Dim variable3 As Variant
For Each r In Feuil1.ListObjects("Tableau1").ListColumns(1).DataBodyRange
'comparer les colonnes colonne1 old avec colonne1 new
If r.Offset(0, col1 - 1).Value <> r.Offset(0, col2 - 1).Value Then
'si les 2 cellules des colonnes ont des différences
'enregistrer dans une variable1 la valeur de la cellule de la colonne1 new
'enregistrer dans une variable2 la valeur de la cellule de la colonne1 old
variable1 = r.Offset(0, col1 - 1).Value
variable2 = r.Offset(0, col2 - 1).Value
'regarder s'il y a un commentaire dans la cellule de la colonne1 old
If Not r.Offset(0, col1 - 1).Comment Is Nothing Then
'si oui le sauvegarder dans une variable3
variable3 = r.Offset(0, col1 - 1).Comment.Text
'mettre dans le commentaire "date du jour : + variable2 + à la ligne + variable3"
r.Offset(0, col1 - 1).Comment.Text (Format(Now(), "dd/mm/yy") & ":" & vbCrLf & variable2 & vbCrLf & variable3)
'mettre dans la cellule la variable1
' ??? DANS QUELLE CELLULE ???
Else
'si non mettre dans le commentaire "date du jour : + variable2"?
r.Offset(0, col1 - 1).AddComment (Format(Now(), "dd/mm/yy") & ":" & variable2)
'- mettre dans la cellule de la colonne1 old la variable1
' ??? DANS QUELLE CELLULE ???
End If
End If
Next r
End Sub