Microsoft 365 excel : une cellule avec code html vers une autre avec formatage initial, OU fn SUBSTITUE

thireg

XLDnaute Junior
bonjour,
voila j'ai un fichier excel avec une colonne qui comprend , pour chaque ligne , en colonne A , des descriptions avec des caractères HTML .
j'aimerais une fonction ou ... pour transformer vers la colonne B , la description en gardant le formatage initial.
exemple en image ou fichier joint .
merci pour votre aide ,

EN FAIT, par la fn SUBSTITUE , je pourrais simplement remplacer les balises :
- <br> par "saut a la ligne"
- <b> par gras avec la fin du "gras" avec </b>

mais ca, je ne sais pas faire ....


:)

Classeur2.jpg
 

Pièces jointes

  • Classeur2.xlsx
    10.1 KB · Affichages: 5
Dernière édition:
Solution
Bonjour,

Partant de ce post j'ai essayé toutes les solutions en vain.
Une seule fonctionne qui est un code de transcodage direct des formats, pour les formats de caractères de base mais ne traite pas les couleurs par exemple.

Il existe certainement des solutions complètes / complexes / lourdes en passant par Word ou IE mais je n'ai pas approfondi.

Tu ne peux pas faire de fonction personnalisée car le formatage de la cellule exige qu'on y valorise des éléments directement ce qu'Excel détecte naturellement comme étant une référence circulaire.

La seule solution est de balayer la colonne A et de transcrire le HTML qu'on y trouve dans les cellules correspondantes de la colonne B formatée autant que possible selon les Tags du...

Dudu2

XLDnaute Barbatruc
Bonjour,

Partant de ce post j'ai essayé toutes les solutions en vain.
Une seule fonctionne qui est un code de transcodage direct des formats, pour les formats de caractères de base mais ne traite pas les couleurs par exemple.

Il existe certainement des solutions complètes / complexes / lourdes en passant par Word ou IE mais je n'ai pas approfondi.

Tu ne peux pas faire de fonction personnalisée car le formatage de la cellule exige qu'on y valorise des éléments directement ce qu'Excel détecte naturellement comme étant une référence circulaire.

La seule solution est de balayer la colonne A et de transcrire le HTML qu'on y trouve dans les cellules correspondantes de la colonne B formatée autant que possible selon les Tags du HTML.

Dans le fichier ci-dessous, il faut exécuter la Macro FormaterColonneB.
 

Pièces jointes

  • Copie de Classeur2.xlsm
    29.2 KB · Affichages: 10
Dernière édition:

Dudu2

XLDnaute Barbatruc
En passant par une application, par exemple:
- Copier le HTML dans dans fichier texte
- Modifier l'extension du fichier texte en .html
- Ouvrir ce fichier avec le navigateur par défaut (ex. FireFox)
- Tout sélectionner (Ctrl + A dans le navigateur)
- Copier dans la cellule Excel

Une autre difficulté apparait.
Les <br> se transforment en passage à la cellule suivante et donc le résultat, certes valide, se trouve splitté sur plusieurs cellules en hauteur.
Si on remplace les <br> par un caractère peu usité (ex "|") dans le fichier texte puis "|" par vbLf dans la cellule, on perd des formats car je ne sais pas faire ce replacement en n'utilisant pas le ".Value" de la cellule pour conserver les formats de caractères.
Et quand j'identifie les "|" par .Characters(i, 1).Text je n'arrive pas à les remplacer, le .Characters(i, 1).Text = vbLf ne fait strictement rien si la chaine va au-delà de 255 caractères.
 
Dernière édition:

thireg

XLDnaute Junior
Bonjour,

Partant de ce post j'ai essayé toutes les solutions en vain.
Une seule fonctionne qui est un code de transcodage direct des formats, pour les formats de caractères de base mais ne traite pas les couleurs par exemple.

Il existe certainement des solutions complètes / complexes / lourdes en passant par Word ou IE mais je n'ai pas approfondi.

Tu ne peux pas faire de fonction personnalisée car le formatage de la cellule exige qu'on y valorise des éléments directement ce qu'Excel détecte naturellement comme étant une référence circulaire.

La seule solution est de balayer la colonne A et de transcrire le HTML qu'on y trouve dans les cellules correspondantes de la colonne B formatée autant que possible selon les Tags du HTML.

Dans le fichier ci-dessous, il faut exécuter la Macro FormaterColonneB.
bonjour,

ben je trouve que ta macro fait très bien le boulot ...
En tout cas , cela correspond à mon besoin.
MERCI +++
 

thireg

XLDnaute Junior
Bonjour,

Partant de ce post j'ai essayé toutes les solutions en vain.
Une seule fonctionne qui est un code de transcodage direct des formats, pour les formats de caractères de base mais ne traite pas les couleurs par exemple.

Il existe certainement des solutions complètes / complexes / lourdes en passant par Word ou IE mais je n'ai pas approfondi.

Tu ne peux pas faire de fonction personnalisée car le formatage de la cellule exige qu'on y valorise des éléments directement ce qu'Excel détecte naturellement comme étant une référence circulaire.

La seule solution est de balayer la colonne A et de transcrire le HTML qu'on y trouve dans les cellules correspondantes de la colonne B formatée autant que possible selon les Tags du HTML.

Dans le fichier ci-dessous, il faut exécuter la Macro FormaterColonneB.
une question cependant :

si la colonne A doit se mettre "formatée" en colonne C (au lieu de B) , ou dois je changer ce parametre dans la MAcro ?
 

Discussions similaires

Réponses
10
Affichages
404

Statistiques des forums

Discussions
315 093
Messages
2 116 125
Membres
112 666
dernier inscrit
Coco0505