Excel > html ... comment récupérer la mise en forme interne

Bonjour,

Comment détecter la mise en forme interne d'une cellule, notamment les caractères soulignés, italiques et gras.

Mon but est de transformer le texte d'une cellule en format html. Je sais transformer les caractères supérieurs à 127 et les remplacer par &#nnn; , détecter les retours à la ligne et les remplacer par <br/>, mais pas les mises en forme quand celles-ci ne concernent qu'une partie du texte de la cellule.

Je précise que l'objectif est d'envoyer par messagerie des invitations au format .ics

Merci d'avance aux grands experts !

16html.xlsm (14.80 Ko)

Bonjour,

Il semblerait que :

20 Si tous les caractères dans la cellule ou seul le premier caractère dans la cellule est en caractères gras, renvoie VRAI ; sinon, FAUX.

21 Si tous les caractères dans la cellule ou seul le premier caractère dans la cellule est en caractères en italique, renvoie VRAI ; sinon, FAUX.

Voici quelques exemples d'utilisation ... Mais je vois que tu avais déjà pris part au fil donc ça ne t'aidera peut être pas plus ... Sait-on jamais.

https://forum.excel-pratique.com/cours-astuces/lire-cellule-excel4-t15442.html

Bonne journée,

Vbabeginner

Bonjour,

La solution est d'utiliser :

ActiveCell.Characters([Start], [Length]).Font etc.

Je vais l'incorporer à mon code.

voici le code final

42html.xlsm (16.52 Ko)

à utiliser avec parcimonie... car très consommateur de ressources !

Pour résoudre le problème de forte consommation de ressources, je suis donc revenu à LIRE.CELLULE

Mais ...

  • c'est compliqué à mettre en oeuvre
  • curieusement les valeurs ne se recalculent pas quand on change le format de la cellule !!

donc la seule solution est de faire soit-même une macro :

Function caracteristique(feuille As String, cellule As Range, code As Integer)
    caracteristique = Application.ExecuteExcel4Macro("get.cell(" & code & "," & feuille & "!R" & cellule.Row & "C" & cellule.Column & ")")
End Function

Il reste pas moins vrai que cette façon de programmer est assez obsolète même si elle fonctionne encore, en tous cas ce n'est pas du tout de la POO.

Bref je vais cumuler les 2, c'est à dire utiliser ActiveCell.Characters([Start], [Length]).Fontmais uniquement sur le premier caractère de la cellule (ou premier caractère de la ligne après un retour à la ligne dans la cellule).

29lire-cellule.xlsm (22.00 Ko)
Rechercher des sujets similaires à "html comment recuperer mise forme interne"