Insertion auto d'un commentaire selon une condition logique

Bonjour forum !

Pour uniformiser les hauteurs de lignes d’un tableau dont certaines cellules contiennent parfois beaucoup de caractères, j’ai décidé de figer la hauteur des lignes (de ne pas être en hauteur de lignes automatique).

Inconvénient du système : dès qu’il y a un retour à la ligne, le texte est caché.

Y a-t-il un moyen en VBA pour que, quand une cellule contient du texte sur plusieurs lignes, Excel insère automatiquement un commentaire qui signale la présence de texte caché ?

Luxe suprême, ce commentaire pourrait-il être effacé automatiquement si le contenu de la cellule est modifié et que le texte tient sur une ligne ?

Merci aux cracks qui pourraient m’aider.

Bonjour,

j'ai déjà fait un truc du genre sur ce post

Lien

regarde si ça te convient. Je peux t'aider à l'adapter au besoin.

Merci, ça m'a l'air cool.

Malheureusement, mes faibles connaissances en VBA ne me permettent pas d'adapter le code pour tester non pas le nombre de caractères mais la présence d'un saut de ligne automatique ou manuel.

Quelqu'un peut-il m'aider ?

Merci.

voici un code qui répondra , je pense, mieux à tes besoins. A chaque changement dans une cellule, on ajoute un commentaire si un saut de ligne est rencontré, sinon efface le commentaire:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Integer
    Dim Lettre As Integer

    'On teste toutes les lettes du texte de la cellule,
    'lettre par lettre
    For i = 1 To Len(Target.Value)

        'On traduit la lettre en code Ascii
        Lettre = Asc(Mid(Target.Value, i, 1))

        'Un saut de ligne comporte deux code Ascii 10 et 13
        'Donc dès qu'on rencontre un de ces codes, on ajoute le commentaire
        If Lettre = 10 Or Lettre = 13 Then

            If Target.Comment Is Nothing Then
                'On ajoute un commentaire s'il n'existe pas
                Target.AddComment Text:=Target.Value
            Else
                'On modifie le commentaire existant
                Target.Comment.Text Text:=Target.Value
            End If

            'On quitte la procedure
            Exit Sub
        End If
    Next i

    'Si on n'a pas trouver de saut de ligne, on efface le commentaire si existant
    Target.ClearComments
End Sub

ouvre l'éditeur VBA ( alt+F11 ), dans la fenêtre de gauche tu as les feuilles de ton classeur, clique avec le bouton de droit sur la feuille où tu veux que le code s'exécute et choisi "Code". Dans la fenêtre de droite, copie le code ci-dessus.

Merci, c'est cool !!!

Rechercher des sujets similaires à "insertion auto commentaire condition logique"