Afficher qu'un certain nombre de caractère
Bonjour,
est-il possible dans une feuille ou en colonne C nous avons des commentaires libres qui prennent beaucoup trop d'espace de n'afficher qu'un certain nombre de caractère ?
Exemple en C1: Le courtier n'a pas souhaité être recontacté car il travaille déjà avec la concurrence en assurance de prêt et en santé. Voir avec son responsable pour mettre en place un contrat en prévoyance professionnelle.
Qui deviendrait grâce à la formule:
Le courtier n'a pas souhaité...
Merci
Bonjour,
Je te propose 2 formules :
1/ Récupération des 6 premiers mots (je n'arrive pas à trouver plus simple) :
=GAUCHE(C1;CHERCHE(" ";C1;CHERCHE(" ";C1;CHERCHE(" ";C1;CHERCHE(" ";C1;CHERCHE(" ";C1)+1)+1)+1)+1)-1) & "..."2/ Récupération des 30 premiers caractères :
=GAUCHE(C1;30) & "..."Bonjour, voici une solution en VBA,
en gros, quand on change la valeur de n'importe quelle cellule de la colonne C, on teste le nombre de caractère. S'il est supérieur à celui défini, on créer un commentaire et la valeur de la cellule est tronqué. Si on double-clic sur la cellule, celle-ci prend la valeur de son commentaire. Enfin la macro AnnuleCommentaire permet d'afficher le texte en intégrale sans commentaire.
voici le code à placer dans la feuille cible
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Quand on double-clic sur la cellule, celle-ci prend la valeur de son commentaire
If Not Target.Comment Is Nothing Then
Application.EnableEvents = False
Target.Value = Target.Comment.Text
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ValeurCellule As String
Dim NombreDeCaractere As Integer
'Si on change une cellule de la colonne 3 ("C")
If Target.Column = 3 Then
Application.EnableEvents = False
'La valeur de la cellule est stocker dans une variable
ValeurCellule = Target.Value
'Le nombre de caractère à conserver
NombreDeCaractere = 2
Select Case Len(ValeurCellule)
'Si le nombre de caractère est inférieur à celui décider
'On efface le commentaire s'il est présent
Case Is <= NombreDeCaractere
If Not Target.Comment Is Nothing Then Target.ClearComments
'Si le nombre de caractère est supérieur ou égal à celui décider,
Case Is > NombreDeCaractere
If Target.Comment Is Nothing Then
'On ajoute un commentaire s'il n'existe pas
Target.AddComment Text:="" & ValeurCellule
Else
'On modifie le commentaire existant
Target.Comment.Text Text:="" & ValeurCellule
End If
'pour la valeur de la cellule, on garde les x premiers caractère
Target.Value = Left(ValeurCellule, NombreDeCaractere) & "..."
End Select
ValeurCellule = ""
Application.EnableEvents = True
End If
End Sub
Public Sub AnnulerCommentaire()
'Afficher le texte de la cellule au complet sans le commentaire
Application.EnableEvents = False
ActiveCell.Value = ActiveCell.Comment.Text
ActiveCell.ClearComments
Application.EnableEvents = True
End Sub[déplacé]