Insertion auto d'un commentaire selon une condition logique

Pour toutes vos questions à propos d'Excel ...

Insertion auto d'un commentaire selon une condition logique

Messagepar gloub » 21 Juil 2010, 19:06

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.
gloub
Membre fidèle
 
Messages: 338
Inscription: 17 Juil 2007, 16:40
Localisation: paris
Version Excel: 2003 FR

Re: Insertion auto d'un commentaire selon une condition logique

Messagepar Math » 21 Juil 2010, 20:33

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.
Avatar de l’utilisateur
Math
Membre dévoué
 
Messages: 726
Inscription: 05 Déc 2007, 18:57
Localisation: Québec, Canada
Version Excel: 2003 FR

Re: Insertion auto d'un commentaire selon une condition logique

Messagepar gloub » 22 Juil 2010, 11:24

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.
gloub
Membre fidèle
 
Messages: 338
Inscription: 17 Juil 2007, 16:40
Localisation: paris
Version Excel: 2003 FR

Re: Insertion auto d'un commentaire selon une condition logique

Messagepar Math » 22 Juil 2010, 15:18

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:

Code: Tout sélectionner


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.
Avatar de l’utilisateur
Math
Membre dévoué
 
Messages: 726
Inscription: 05 Déc 2007, 18:57
Localisation: Québec, Canada
Version Excel: 2003 FR

Re: Insertion auto d'un commentaire selon une condition logique

Messagepar gloub » 24 Juil 2010, 21:45

Merci, c'est cool !!!
gloub
Membre fidèle
 
Messages: 338
Inscription: 17 Juil 2007, 16:40
Localisation: paris
Version Excel: 2003 FR


Retourner vers Excel - VBA

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Exabot [Bot], Google [Bot] et 4 invités