Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

commentaire d'une cellule soit égale à ce qu'il y a écrit dans la céllule

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

L

lis3

Guest
Bonjour à tous,

je découvre le vba et depuis ce matin je cherche à faire quelque chose et je n'arrive pas à trouver de solution
Voici mon problème :

J'aimerai que si ma cellule A7 est vide alors il y ait un commentaire disant "remplir la cellule" (commentaire présent sur cette cellule A7)

Et quand je complète la cellule A7, ce commentaire change et devient ce que je viens décrire dans ma cellule A7.

un truc genre :

Cell.Comment.Text("A7") = Cell.Value("A7")

J'espère que mes explications sont un peu claire 🙂
merci d'avance pour votre aide
 
Re : commentaire d'une cellule soit égale à ce qu'il y a écrit dans la céllule

Bonjour Lis, bonjour le forum,

Essaie comme ça :
Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet
If Target.Address <> "$A$7" Then Exit Sub 'si le changement a lieu ailleurs qu'en A7, sort de la procédure
If Target = "" Then 'condition : si la cellule est effacée
    On Error Resume Next 'passe à la ligne suivante en cas d'erreur
    Range("A7").AddComment 'ajoute un commentaire (provoque une erreur si il existe déjà)
    Range("A7").Comment.Visible = False 'masque le commentaire
    Range("A7").Comment.Text Text:="Remplir la Cellule" 'texte du commentaire
Else 'sinon (si la cellule n'est pas effacée mais modifiée)
    On Error Resume Next 'passe à la ligne suivante en cas d'erreur
    Range("A7").AddComment 'ajoute un commentaire (provoque une erreur si il existe déjà)
    Range("A7").Comment.Visible = False 'masque le commentaire
    Range("A7").Comment.Text Text:=Range("A7").Value 'texte du commentaire
End If 'fin de la condition
End Sub
 
Re : commentaire d'une cellule soit égale à ce qu'il y a écrit dans la céllule

Merci, c'est parfait, une macro qui fonctionne avec des explications très intéressante
Merci a toi
 
Re : commentaire d'une cellule soit égale à ce qu'il y a écrit dans la céllule

En fait, le script ne fonctionne pas.
Je voudrais que ma macro agisse sur plusieurs cellules du même onglet.
J'ai essayé de dupliquer ce script aux cases A8 A9 A10 A11 mais plus rien ne fonctionne comme je le souhaiterai
🙁🙁🙁🙁🙁🙁
 
Re : commentaire d'une cellule soit égale à ce qu'il y a écrit dans la céllule

Bonjour lis, Robert🙂

modifie comme suit :
Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet
If Intersect(Target, Range("A7:A11")) Is Nothing Then Exit Sub
If Target = "" Then 'condition : si la cellule est effacée
    On Error Resume Next 'passe à la ligne suivante en cas d'erreur
    Target.AddComment 'ajoute un commentaire (provoque une erreur si il existe déjà)
    Target.Comment.Visible = False 'masque le commentaire
    Target.Comment.Text Text:="Remplir la Cellule" 'texte du commentaire
Else 'sinon (si la cellule n'est pas effacée mais modifiée)
    On Error Resume Next 'passe à la ligne suivante en cas d'erreur
    Target.AddComment 'ajoute un commentaire (provoque une erreur si il existe déjà)
    Target.Comment.Visible = False 'masque le commentaire
    Target.Comment.Text Text:=Target.Value 'texte du commentaire
End If 'fin de la condition
End Sub

bonne journée
@+

Edition : j'ai remplacé un range("A7") qui restait par un target...
 
Dernière édition:
Re : commentaire d'une cellule soit égale à ce qu'il y a écrit dans la céllule

Bonjour pierrot93,
ton code n'est pas exactement ce que je recherche, en fait je voudrais que

le commentaire de la cellule A7 soit ce qui il y a écrit en A7
le commentaire de la cellule B7 soit ce qui il y a écrit en B7
le commentaire de la cellule C7 soit ce qui il y a écrit en C7
...
le commentaire de la cellule F7 soit ce qui il y a écrit en F7

Et deuxième chose, le script ne crée pas de commentaire dans la cellule avec écrit (Target.Comment.Text Text:="Remplir la Cellule")
pour qu'il fonctionne je dois créer un commentaire de manière classique (clic droit -> ajouter commentaire) et une fois créé, il fonctionne bien
 
Re : commentaire d'une cellule soit égale à ce qu'il y a écrit dans la céllule

j'ai essayé un truc comme cela :


Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet
If Intersect(Target, Range("A7:F7")) Is Nothing Then Exit Sub
If Target = "" Then 'condition : si la cellule est effacée
On Error Resume Next 'passe à la ligne suivante en cas d'erreur
Target.AddComment 'ajoute un commentaire (provoque une erreur si il existe déjà)
Target.Comment.Visible = False 'masque le commentaire
Target.Comment.Text Text:="Remplir la Cellule" 'texte du commentaire
Else 'sinon (si la cellule n'est pas effacée mais modifiée)
On Error Resume Next 'passe à la ligne suivante en cas d'erreur
Target.AddComment 'ajoute un commentaire (provoque une erreur si il existe déjà)
Target.Comment.Visible = False 'masque le commentaire
Target.Comment.Text Text:=Range("A7").Value
Target.Comment.Text Text:=Range("B7").Value
Target.Comment.Text Text:=Range("C7").Value
Target.Comment.Text Text:=Range("D7").Value
Target.Comment.Text Text:=Range("E7").Value
Target.Comment.Text Text:=Range("F7").Value
End If 'fin de la condition
End Sub
 
Re : commentaire d'une cellule soit égale à ce qu'il y a écrit dans la céllule

Bonjour à tous,

Peux-tu essayer ceci :

VB:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)    'au changement dans l'onglet
    If Intersect(Target, Range("A7:A11")) Is Nothing Then Exit Sub
    If Target = "" Then    'condition : si la cellule est effacée
        Target.ClearComments
        Target.AddComment    'ajoute un commentaire (provoque une erreur si il existe déjà)
        Target.Comment.Visible = True    'masque le commentaire
        Target.Comment.Text Text:="Remplir la Cellule"    'texte du commentaire
    Else    'sinon (si la cellule n'est pas effacée mais modifiée)
        Target.ClearComments
        Target.AddComment
        Target.Comment.Visible = True    'masque le commentaire
        Target.Comment.Text Text:=Target.Text  'texte du commentaire
    End If    'fin de la condition
End Sub

A + à tous
 
Re : commentaire d'une cellule soit égale à ce qu'il y a écrit dans la céllule

Re,
bonjour Jean-Claude🙂

j'ai édité mon message de tout à l'heur, restait une référence à la cellule A7 dans le code...
 
Re : commentaire d'une cellule soit égale à ce qu'il y a écrit dans la céllule

Bonjour à tous,
Salut Pierrot 🙂,

J'ai un peu modifié le code de notre ami Robert en gérant les erreurs par un effacement du commentaire et en le recréant...

A++
A + à tous
 
Re : commentaire d'une cellule soit égale à ce qu'il y a écrit dans la céllule

merci pour tous vos messages,
j'ai fait une adaptation de votre code et cela fonctionne avec :

Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet
If Intersect(Target, Range("A7:F7")) Is Nothing Then Exit Sub
If Target = "" Then 'condition : si la cellule est effacée
On Error Resume Next 'passe à la ligne suivante en cas d'erreur
Target.AddComment 'ajoute un commentaire (provoque une erreur si il existe déjà)
Target.Comment.Visible = False 'masque le commentaire
Target.Comment.Text Text:="Remplir la Cellule" 'texte du commentaire
Else 'sinon (si la cellule n'est pas effacée mais modifiée)
On Error Resume Next 'passe à la ligne suivante en cas d'erreur
Target.AddComment 'ajoute un commentaire (provoque une erreur si il existe déjà)
Target.Comment.Visible = False 'masque le commentaire
Range("A7").Comment.Text Text:=Range("A7").Value
Range("B7").Comment.Text Text:=Range("B7").Value
Range("C7").Comment.Text Text:=Range("C7").Value
Range("D7").Comment.Text Text:=Range("D7").Value
Range("E7").Comment.Text Text:=Range("E7").Value
Range("F7").Comment.Text Text:=Range("F7").Value
End If 'fin de la condition
End Sub

en grand merci au forum encore une fois 😉
 
Re : commentaire d'une cellule soit égale à ce qu'il y a écrit dans la céllule

Bonjour,

si tes cellules concernées sont dispersées (ou si tu veux simplifier les codes) :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    Dim Plage As Range
    Set Plage = Range("A1:A5,A7:F7") 'cellules concernées
    If Intersect(Target, Plage) Is Nothing Then Exit Sub
    Target.ClearComments
    If Target = "" Then Exit Sub
    Target.AddComment
    Target.Comment.Visible = False
    Target.Comment.Text Text:=Target.Text
End Sub
 
Re : commentaire d'une cellule soit égale à ce qu'il y a écrit dans la céllule

merci FO_rum

dans mes cellules je mets par défaut "Remplir la cellule" est il possible par hasard de définir la police dans ces commentaires?
 
Re : commentaire d'une cellule soit égale à ce qu'il y a écrit dans la céllule

j'ai bien lu tes messages et la macro fonctionne exactement comme je le souhaitais.

ma dernière question posait juste sur la police. peut on via la macro imposer la police (ex : arial 14 gras rouge)
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

C
Réponses
2
Affichages
2 K
Chapi_chapo
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…