Bonjour,
Je débute en VBA.
Je souhaiterais un programme permettant de couper le contenu d'une cellule pour le passer en "note" de cette meme cellule, tout simplement !
Evidemment, je souhaite obtenir cette macro non pas pour l'opérer sur une seule cellule... Dans ce cas, je ferais l'opération manuellement.
Je dois le faire sur des centaines de cellule.
L'idée est donc d'obtenir une macro qui m'applique cette opération sur un ensemble de cellules sélectionnées.
Si, en parlant de "note", vous pensez "commentaire" , essayez :
VB:
Sub AjouteCommentaire()
Selection.ClearComments
For Each c In Selection
c.AddComment CStr(c.Offset(0, 1).Value)
c.Comment.Shape.TextFrame.AutoSize = True
c.Comment.Shape.OLEFormat.Object.Font.Size = 8
Next c
End Sub
Sinon, précisez votre demande
Edit : Pour effacer le contenu après l'avoir mis en commentaire :
Code:
Sub AjouteCommentaire()
Selection.ClearComments
For Each c In Selection
c.AddComment CStr(c.Value)
c.Comment.Shape.TextFrame.AutoSize = True
c.Comment.Shape.OLEFormat.Object.Font.Size = 8
c.ClearContents
Next c
End Sub
Une autre version qui comme celle de Victor21 interprète "note" comme "commentaire" :
VB:
Sub Commentaires()
For Each cel In Selection
With cel
If .Value <> "" Then
If .Comment Is Nothing Then
.AddComment
.Comment.Text Text:=.Value
Else
.Comment.Text Text:=.Comment.Text & Chr(10) & .Value
End If
End If
End With
Next
Selection.ClearContents
End Sub
s'il n'y a pas de données dans la cellule => pas de commentaire
s'il y a déjà un commentaire => ajout du nouveau commentaire
Paf, Victor21, danielco,
Parfait, c'est exactement ce qu'il me fallait.
Merci beaucoup pour ces compétences que vous mettez au service des autres !
Deremon 70