mise à jour commentaire

  • Initiateur de la discussion Initiateur de la discussion zesuila
  • 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 !

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
 
Dernière édition:
Re : mise à jour commentaire

Bonjour zesuila,

Je vous avais en effet donné ce code dans un fil précédent.

Lors de la 1ère entrée dans la ligne de la cellule ref du tableau, la cellule de la colonne AH est renseignée, mais ensuite, c'est le commentaire AH obligatoirement.

Pour savoir si une cellule quelconque du tableau est renseignée pour la 1ère fois, c'est possible, mais je ne vois pas de solution simple pour l'instant.

A+
 
Dernière édition:
Re : mise à jour commentaire

Bonjour Job75

Je suis désolé j'ai omis d'indiquer que vous étiez "l'inventeur" de ce code !
je vais donc attendre pour avoir une réponse même si ce qui existe déjà me convient quand même.
merci
 
Re : mise à jour commentaire

Re,

Une solution simple, mais pas bien terrible je trouve :

- avant le remplissage du tableau, vérifier que toutes les cellules ont une couleur de police en "Automatique".

- puis dès le 1er remplissage d'une cellule, on donne la couleur noire à cette police.

Dans la macro, on teste la couleur de police de la cellule ref utilisant par exemple :

coul = ref.Font.ColorIndex

coul prend une valeur négative si la couleur est en "Automatique", 1 si elle est noire.

Ce n'est qu'une suggestion. Je pense que vous êtes capable de compléter le code, ce n'est pas très sorcier.

A+
 
Re : mise à jour commentaire

Re,

Bon zesuila, au cas où j'oublierais ce fil, voici le code modifié avec le test sur ref.Font.ColorIndex (en rouge).

J'ai aussi relooké avec With...End With :

Code:
Private Sub worksheet_Change(ByVal Target As Range)
Dim ref As Range, txt$, com$, ret$
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
  With Range("AH" & ref.Row)
   [COLOR="Red"] If ref.Font.ColorIndex < 0 Then
      If ref = "" Then Exit Sub 'au cas où on efface...rien
      ref.Font.ColorIndex = 1 'désormais police de couleur noire[/COLOR]
      .Value = txt
    Else
      com = ""
      ret = Chr(10) 'retour à la ligne
      com = .Comment.Text
      If com = "" Then .AddComment: ret = ""
      .Comment.Text Text:=com & ret & txt
      .Comment.Shape.TextFrame.AutoSize = True
    End If
  End With
Next
End Sub

A+
 
Dernière édition:
Re : mise à jour commentaire

Bonjour job75
vraiment sympa de t'occuper de "mon cas"!
Alors j'ai essayé ton code en changeant la couleur (j'ai mis 3 rouge au lieu de noir)sur une feuille à part et si j'écris dans la plage concerné une première fois, il me met la cellule en ..rouge et si je modifie la cellule il me met la cellule en ....rouge donc pas de changement
voilà ce que j'ai mis
Private Sub worksheet_Change(ByVal Target As Range)
Dim ref As Range, txt$, com$, ret$
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
With Range("AH" & ref.Row)
If ref.Font.ColorIndex = 1 Then
If ref = "" Then Exit Sub 'au cas où on efface...rien
ref.Font.ColorIndex = 3 'désormais police de couleur ROUGE
.Value = txt
Else
com = ""
ret = Chr(10) 'retour à la ligne
com = .Comment.Text
If com = "" Then .AddComment: ret = ""
.Comment.Text Text:=com & ret & txt
.Comment.Shape.TextFrame.AutoSize = True
End If
End With
Next
End Sub

me trompe je quelque part ?
 
Re : mise à jour commentaire

Bonjour zesuila, le forum,

si j'écris dans la plage concerné une première fois, il me met la cellule en ..rouge et si je modifie la cellule il me met la cellule en ....rouge donc pas de changement

Je ne comprends pas ce qui vous préoccuppe là-dedans, c'est tout à fait normal que la couleur ne change plus...

Pour une cellule quelconque de la plage A4:F21, au départ la couleur est automatique (couleur standard).

Si l'on écrit un texte dedans, la police devient rouge, et surtout la date s'inscrit dans la cellule colonne AH.

Si l'on modifie la même cellule, la date dans la cellule en AH n'est pas modifiée, mais la date du jour apparaît en commentaire.

Maintenant si l'on prend une autre cellule sur la même ligne, si la cellule est vierge, la date de remplissage s'inscrit en cellule AH (écrase la précédente), et ensuite dans le commentaire.

La mise en couleur n'est là que pour distinguer les cellules vierges des autres.

A+

A+
 
Re : mise à jour commentaire

non je ne comprends toujours pas.
je joins le fichier "test" avec votre code.
Et dedans lorsque je tape en a4 par exemple je n'ai pas la cellule ah qui se remplie mais le commentaire oui
Mais lorsque je remplie une cellule de cette ligne cela ecrit bien en rouge mais toujours pas dans la cellule ah et cela n'écrase pas le commentaire
 

Pièces jointes

Re : mise à jour commentaire

Re,

Bon, si en plus des inscriptions en colonne AH vous tenez absolument à distinger par la couleur le 1er remplissage des autres modifications, il faut utiliser les 2 couleurs noire (1) et rouge (3), mais ça, vraiment, vous pouviez le faire !

Code:
Private Sub worksheet_Change(ByVal Target As Range)
Dim ref As Range, txt$, com$, ret$
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
  With Range("AH" & ref.Row)
    If ref.Font.ColorIndex < 0 Then
      If ref = "" Then Exit Sub 'au cas où on efface...rien
      [COLOR="Red"]ref.Font.ColorIndex = 1 'police de couleur noire[/COLOR]
      .Value = txt
    Else
      [COLOR="Red"]ref.Font.ColorIndex = 3 'désormais police de couleur rouge[/COLOR]
      com = ""
      ret = Chr(10) 'retour à la ligne
      com = .Comment.Text
      If com = "" Then .AddComment: ret = ""
      .Comment.Text Text:=com & ret & txt
      .Comment.Shape.TextFrame.AutoSize = True
    End If
  End With
Next
End Sub

A+
 
Re : mise à jour commentaire

ca y est je viens de comprendre !
un truc bizarre !
Si je comprends bien la plage concernée est bien A4 AF21
ce que je ne comprenais pas c'est que lorsque je tapais en a4 un mot, il restait noir et rien en AH4 sauf le commentaire d'ou mon message précedent.
Et là je viens de reprendre votre code et cela me faisait la même chose !!!
Mais là j'ai rempli la cellule A5 et ... magie de job75 cela fonctionne. noir d'abord puis rouge si modif date dans AH5 écraséé si modif et commentaire dans AH5. Là je comprends !
Ce que je ne comprends pas c'est pourquoi cela ne fonctionne pas en ligne A4
 
- 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
8
Affichages
1 K
G
  • Question Question
Réponses
1
Affichages
803
Grouchet
G
Retour