Récupérer les information de mise en page d'une cellule multiligne en VBA

Bonjour,

J'ai une cellule avec plusieurs lignes chaque ligne peut etre en gras ou pas , souligne ou pas en couleur de texte ou pas etc..etc..

capture

Je cherche a récupérer en VBA chaque ligne avec sa mise en forme. j'arrive bien a récupérer dans une variable tableau le texte de chaque ligne avec la fonction split mais je ne trouve ni vois comment faire pour récupérer les informations de mise en forme de la ligne (gras / sousligné...)

je vous joint un fichier exemple.

D'avance merci pour votre aide .

Bonjour,

Avec la cellule en A1, la macro écrit les différentes lignes dessous :

Sub test1()
  lig = 1
  For i = 1 To Len([A1])
    If Mid([A1], i, i) = Chr(10) Then
      lig = lig + 1
    Else
      With [A1].Characters(i, 1)
      [A1].Offset(lig).Characters(i, 1).Text = .Text
      [A1].Offset(lig).Characters(i, 1).Font.Bold = .Font.Bold
      [A1].Offset(lig).Characters(i, 1).Font.Name = .Font.Name
      [A1].Offset(lig).Characters(i, 1).Font.ColorIndex = .Font.ColorIndex
      [A1].Offset(lig).Characters(i, 1).Font.Underline = .Font.Underline
      End With
    End If
  Next i
End Sub

Note : il y a d'autres options de formatage non prises en considération. AU besoin, demande-les.

Daniel

Bonjour DanielC

Oui, Characters(start, 1) est un objet Character qui permet d'avoir les propriétés du caractère d'indice start , mais le traitement que tu proposes affecte à une propriété d'un caractère la valeur de sa propriété elle-même : il a le mérite d'accéder aux options de formatage de caractères mais je ne sais pas si iciclemet va comprendre ce qu'il lui reste à faire. Le changement de ligne se fait sur Ascii 10, mais dans une ligne tous les caractères peuvent ne pas avoir les mêmes option de formatage.

IcicleMet; que veux tu faire avec ces lignes , les recopier dans d'autres colonnes ? Pour au final ...

Merci DanielC

Ta solution apporté même si elle ne correspond pas a mon "besoin" m'as permis de réalisé ce que je voulais faire.

je ne connaissais pas le ".Characters(i, 1)" et ces propriétés donc merci beaucoup.

@Scraper...Le but réel est de lire le texte de la cellule et ses options de mise en page pour les enregistrer sous un "pseudo" format RTF dans un fichier texte qui permet d'alimenter en automatique la base de donnée de l'ERP de ma société.

Dans tout les cas problème résolu. Merci a vous deux.

Rechercher des sujets similaires à "recuperer information mise page multiligne vba"