Bonjour,
Je viens de trouver ce code permettant d'afficher des commentaires(utilisateur,date,valeur avant et valeur après) dans toute cellule modifiée. Il fonctionne bien sauf que les utilisateurs n'arrivent pas à supprimer une ligne ou l'insérer !!
Je sais pas si je dois ajouter des lignes à ce code pour permettre l’insertion et la suppression des lignes !?
Ou si quelqu’un a une autre idée pour suivre les modifications sans partage du classeur parce qu'il contient des macros
Merciii
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
Const xRg As String = "A1:Z1000"
Dim strOld As String
Dim strNew As String
Dim strCmt As String
Dim xLen As Long
With Target(1)
If Intersect(.Cells, Range(xRg)) Is Nothing Then Exit Sub
strNew = .Text
Application.EnableEvents = False
Application.Undo
strOld = .Text
.Value = strNew
Application.EnableEvents = True
strCmt = "Edit: " & Format$(Now, "dd Mmm YYYY hh:nn:ss") & " by " & _
Application.UserName & Chr(10) & "Previous Text :- " & strOld
If Target(1).Comment Is Nothing Then
.AddComment
Else
xLen = Len(.Comment.Shape.TextFrame.Characters.Text)
End If
With .Comment.Shape.TextFrame
.AutoSize = True
.Characters(Start:=xLen + 1).Insert IIf(xLen, vbLf, "") & strCmt
End With
End With
End Sub
Je viens de trouver ce code permettant d'afficher des commentaires(utilisateur,date,valeur avant et valeur après) dans toute cellule modifiée. Il fonctionne bien sauf que les utilisateurs n'arrivent pas à supprimer une ligne ou l'insérer !!
Je sais pas si je dois ajouter des lignes à ce code pour permettre l’insertion et la suppression des lignes !?
Ou si quelqu’un a une autre idée pour suivre les modifications sans partage du classeur parce qu'il contient des macros
Merciii
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
Const xRg As String = "A1:Z1000"
Dim strOld As String
Dim strNew As String
Dim strCmt As String
Dim xLen As Long
With Target(1)
If Intersect(.Cells, Range(xRg)) Is Nothing Then Exit Sub
strNew = .Text
Application.EnableEvents = False
Application.Undo
strOld = .Text
.Value = strNew
Application.EnableEvents = True
strCmt = "Edit: " & Format$(Now, "dd Mmm YYYY hh:nn:ss") & " by " & _
Application.UserName & Chr(10) & "Previous Text :- " & strOld
If Target(1).Comment Is Nothing Then
.AddComment
Else
xLen = Len(.Comment.Shape.TextFrame.Characters.Text)
End If
With .Comment.Shape.TextFrame
.AutoSize = True
.Characters(Start:=xLen + 1).Insert IIf(xLen, vbLf, "") & strCmt
End With
End With
End Sub