zesuila
XLDnaute Occasionnel
Bonjour à tous
J'ai ce code qui me permet après avoir rempli la cellule de la colonne a et les suivantes d'avoir un commentaire en AH de la ligne dès qu'une modification a été faite.
Le soucis c'est que lorsque je remplis les cellules de A4 à AF 21 pour la 1ere fois il considère (et c'est normal vu le code) que c'est une modification de cellule.
Y a t- un moyen de lui faire comprendre que ce n'est non pas à la premiere fois ou l'on entre une donnée que l'on met le commentaire mais lorsque cette 1ere fois a été elle modifiée . (ouh lala pas clair du tout ma demande !!!🙁)
edit : en fait pour simplifier peut on lui demander d'ajouter un commentaire lorsque la plage a4:af21 a été modifié
Private Sub worksheet_Change(ByVal Target As Range)
Dim ref As Range, txt$, com$, ret$ '$ signifie As String
Set ref = Intersect(Target, Range("A4:AF21"))
If ref Is Nothing Then Exit Sub
On Error Resume Next
txt = Range("A2") & " - " & Date
For Each ref In ref
If Range("Ah" & ref.Row) = "" Then
Range("Ah" & ref.Row) = txt
Else
com = ""
ret = Chr(10) 'retour à la ligne
com = Range("AH" & ref.Row).Comment.Text
If com = "" Then Range("AH" & ref.Row).AddComment: ret = ""
Range("AH" & ref.Row).Comment.Text Text:=com & ret & txt
Range("AH" & ref.Row).Comment.Shape.TextFrame.AutoSize = True
End If
Next
End Sub
merci
J'ai ce code qui me permet après avoir rempli la cellule de la colonne a et les suivantes d'avoir un commentaire en AH de la ligne dès qu'une modification a été faite.
Le soucis c'est que lorsque je remplis les cellules de A4 à AF 21 pour la 1ere fois il considère (et c'est normal vu le code) que c'est une modification de cellule.
Y a t- un moyen de lui faire comprendre que ce n'est non pas à la premiere fois ou l'on entre une donnée que l'on met le commentaire mais lorsque cette 1ere fois a été elle modifiée . (ouh lala pas clair du tout ma demande !!!🙁)
edit : en fait pour simplifier peut on lui demander d'ajouter un commentaire lorsque la plage a4:af21 a été modifié
Private Sub worksheet_Change(ByVal Target As Range)
Dim ref As Range, txt$, com$, ret$ '$ signifie As String
Set ref = Intersect(Target, Range("A4:AF21"))
If ref Is Nothing Then Exit Sub
On Error Resume Next
txt = Range("A2") & " - " & Date
For Each ref In ref
If Range("Ah" & ref.Row) = "" Then
Range("Ah" & ref.Row) = txt
Else
com = ""
ret = Chr(10) 'retour à la ligne
com = Range("AH" & ref.Row).Comment.Text
If com = "" Then Range("AH" & ref.Row).AddComment: ret = ""
Range("AH" & ref.Row).Comment.Text Text:=com & ret & txt
Range("AH" & ref.Row).Comment.Shape.TextFrame.AutoSize = True
End If
Next
End Sub
merci
Dernière édition: