Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 trouver toutes les occurrences d'un caractère dans une chaine

teclim

XLDnaute Nouveau
Bonjour,
Je débute en vba et j'ai un souci avec la suppression d'une partie du texte d'une cellule.
Voila ce que j'ai au départ:

mais après suppression de la fin du texte avec la fonction mid() j'obtiens ceci :


Comment je peux supprimer du texte en gardant la mise en forme du texte ?
D'avance merci.
 

job75

XLDnaute Barbatruc
Bonjour teclim,

La solution est de stocker les propriétés des caractères dans des tableaux.

Puis de les restituer après modification du texte de la cellule :
VB:
Sub ConserverFormatTexte()
Dim cel As Range, supr%, conserve$, i%, a(), b()
Set cel = [A1] 'à adapter
supr = 62 'nombre de caractères à supprimer en fin de texte, à adapter
conserve = Left(cel.Text, Len(cel.Text) - supr)
For i = 1 To Len(conserve)
    ReDim Preserve a(1 To i): a(i) = cel.Characters(i, 1).Font.Color 'couleur
    ReDim Preserve b(1 To i): b(i) = cel.Characters(i, 1).Font.Bold 'gras
Next i
cel = conserve 'modifie le texte
For i = 1 To Len(conserve)
    cel.Characters(i, 1).Font.Color = a(i)
    cel.Characters(i, 1).Font.Bold = b(i)
Next i
cel.EntireRow.AutoFit 'ajustement hauteur, facultatif
End Sub
A+
 
Dernière édition:

Discussions similaires

Réponses
5
Affichages
353
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…