XL 2016 Macro convertir commentaires en notes

ViroMajor

XLDnaute Nouveau
Bonjour à tous,

Version Excel : 365. Via cette mouture, les anciens commentaires sont devenus des “notes” (coche rouge dans le coin de la cellule) et ce qui s’intitule des commentaires (coche violette) désormais inclus la mention de l’auteur avec horodatage avec possibilité de fil de discussion par réponses intercalées

Y’aurait-il une macro capable de transformer la totalité des nouveaux commentaires (fonds gris avec auteur, corps de texte et horodatage), d’une feuille ou d’un classeur entier, en notes (anciens commentaires sur fond jaune), en ne gardant que le corps texte et en ôtant auteur et horodatage ?

NB HS : lors de la transition aux nouvelles versions d’Excel, Excel rajoute aux notes le nom de l’auteur (ce qui est chiant pour ainsi dire)

Si un saint sauveur pas nommé Bernard passe par là... merci
Bien à vous
 

ViroMajor

XLDnaute Nouveau
La loi européenne indique que les licences usagées sont revendables entre particuliers, n’en déplaise aux vendeurs de software qui essaient d’en dissuader dans leur CGV (celà correspond à une clause absive), donc une cession gratuite devrait passer ;)

 

NicoPup

XLDnaute Nouveau
Bonjour,
Confronté au même type de problème, j'ai trouvé une solution en jonglant entre le support Office et différents forums. Microsoft a visiblement étoffé les bibliothèques relatives aux nouveaux commentaires (CommentThreaded).
Mon problème : j'avais de très nombreux commentaires (avec 0 ou 1 réponse) dans l'onglet Sheet1, que je souhaitais copier dans l'onglet Comments mais cette fois comme valeur de la cellule. Les cellules commentées étant espacées latéralement de 3 cellules, je pouvais copier les commentaires et leurs réponses sur des cellules voisines sans chevauchement.
Voici le code que j'ai écrit et qui a fonctionné pour résoudre ce problème :
VB:
Sub CopyComments()
    Dim i, j, k As Integer
    Dim MyComment As String
    Dim cell As Range
    For Each cell In Worksheets("Sheet1").Range("A1:DA99")
        i = cell.Row
        j = cell.Column
        If Not cell.CommentThreaded Is Nothing Then
            MyComment = cell.CommentThreaded.Text
            Worksheets("Comments").Cells(i, j) = MyComment
            For k = 1 To cell.CommentThreaded.Replies.Count
                MyComment = cell.CommentThreaded.Replies(k).Text
                Worksheets("Comments").Cells(i, j + k) = MyComment
            Next
        End If
    Next
End Sub

Vous notez que le premier commentaire est directement contenu dans l'objet CommentThreaded, tandis que les suivants (réponses) sont contenus dans le sous-objet CommentThreaded.Replies (array). De plus, Range("A1").CommentThreaded retourne une erreur si la cellule A1 ne possède pas de commentaire (d'où le If Not cell.CommentThreaded Is Nothing).

Bonne journée !
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T