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:

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



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

Statistiques des forums

Discussions
315 109
Messages
2 116 320
Membres
112 717
dernier inscrit
doguet