XL 2016 Format de cellule texte (afficher les 5 premiers caractères)

elgringo123456

XLDnaute Occasionnel
Bonjour,

Je me permets de vous solliciter sur la problématique suivante :
Afficher les X premiers caractères d'une cellule contenant du texte

Par exemple en pièce jointe la cellule B2 contient le texte il "fait beau".
Est-ce possible en utilisant le format de cellule de n'afficher que les X premiers caractères ?
Ex : "il fait beau" => "il fait b"

Le but est de garder tout le contenu de la cellule et de ne pas changer son contenu juste la mise en forme au travers par exemple de "Format de cellule"\"Personnalisée".
Je ne souhaite pas changer le contenu de la cellule et plutôt son affichage (mise en forme) car j'utilise une formule qui pointe directement sur la cellule.

Pourriez-vous m'aider ?

Merci d'avance,
El Gringo123456
 

Pièces jointes

  • Classeur1.xlsm
    8.1 KB · Affichages: 17
Dernière édition:

Dudu2

XLDnaute Barbatruc
Bonjour,
A mon avis aucun format personnalisé ne permettra de contrôler la couleur et encore moins à partir d'un nombre de caractères.

Je ne vois pas d'autre solution que du code dans la feuille.
VB:
Option Explicit

Private Const NBCAR = 9
Private Const PLAGECONTRÔLE = "A1:Z30"

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim RangeConcerné As Range
    Dim Cellule As Range
   
    Set RangeConcerné = Intersect(Me.UsedRange, Me.Range(PLAGECONTRÔLE), Target))
    If RangeConcerné Is Nothing Then Exit Sub
   
    For Each Cellule In RangeConcerné.Cells
        With Cellule
            If VarType(.Value) = vbString Then
                If Len(.Value) > NBCAR Then
                    .Characters(Start:=NBCAR + 1, Length:=Len(.Value) - NBCAR).Font.Color = .Interior.Color
                End If
            End If
        End With
    Next Cellule
End Sub
 
Dernière édition:

elgringo123456

XLDnaute Occasionnel
Hello
Je viens d'apprendre plein de chose :
1. Il est possible d'utilisé les accents pour les noms de variables ou d'objets.
Je m'étais fixé une norme sur ce sujet
2. Super astuce les caractères en blancs !
3. Je ne connaissais pas l'objet Me

Me.UsedRange est inconnu au bataillon j'ai du raté quelquechose
Je l'ai mis en commentaire et ça fonctionne

Merci encore
 

Discussions similaires

Statistiques des forums

Discussions
291 501
Messages
1 915 830
Membres
178 990
dernier inscrit
shadowtheone
Haut Bas