XL 2016 VBA - Range to HTML incluant les objets de la feuille (boutons, images, ...)

Dudu2

XLDnaute Barbatruc
Bonjour,

Je n'ai rien trouvé qui fonctionne pour convertir un Range en HTML qui inclurait tout ce qu'il y a dans le Range en question.

J'ai bien récupéré la fonction de Ron de Bruin omni-présente sur le Web qui fonctionne uniquement pour les valeurs de cellules et leurs formats, sauf pour les tableaux structurés qui ne sont pas en exclusivité dans le Range qui perdent alors leurs formats (qui n'en sont pas vraiment !).
 

Pièces jointes

  • Classeur1.xlsm
    261.1 KB · Affichages: 11

patricktoulon

XLDnaute Barbatruc
bonjour @Dudu2


ne préfère tu pas le résultat de ma methode ?

2 emporter les images impliquerais la création d'un dossier de fichier comme tout page web en bon et due forme

car l'enregistrement en page web(publier) de excel en fichier unique ne refait pas tout comme dans excel

cela dit selon l'utilisation de tes pages web apres , je peux te montrer comment on met une image dans une page web en base 64(pas besoins de fichier ;j'ai mon convertisseur vba
si tu cherche dans DVP tu le trouvera dans les ressources vba sinon je t'en ferais un exemple
ci joint ton classeur avec ma méthode range to html


  1. accepte les fusion
  2. reproduit les couleur (sauf celle des tableau structurés)
  3. reproduit le texte(avec son format)
  4. reproduit l'alignement du texte
  5. reproduit au plus pres les bordures et leur formats
tu n'a pas cela avec publier ;)
 

Pièces jointes

  • Classeur1.xlsm
    273.7 KB · Affichages: 5

Dudu2

XLDnaute Barbatruc
Bonjour @patricktoulon,

En cliquant ton bouton j'ai ce problème...
1660556964429.png


1660556893794.png
 

Dudu2

XLDnaute Barbatruc
Lorsque tu dis...
  1. accepte les fusion
  2. reproduit les couleur (sauf celle des tableau structurés)
  3. reproduit le texte(avec son format)
  4. reproduit l'alignement du texte
  5. reproduit au plus pres les bordures et leur formats
La version récupérée de Ron de Bruin fait ça aussi, sauf pour les bordures dont le style (épaisseur, double) n'est pas reproduit. Mais c'est assez mineur.
Range:
1660561934364.png

HTML:
1660561992049.png


Par contre pour un tableau structuré qui couvre la totalité du Range, le code de Ron de Bruin fonctionne.
Range:
1660562368757.png

HTML:
1660562401034.png
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
cette capture fixe est plus parlante
en ce moment je travaill avec le pc portable le fixe a explosé
tu n'a pas ce résultat avec" publier"
1660562534018.png


est ce que tu peux créer un doc html en mémoire oui ou non

set doc=create("htmlfile")
ou
dim doc as object
set doc = new htmldocument (avec les librairies cochées bien sur)
 

Dudu2

XLDnaute Barbatruc
Voilà ce que j'ai avec la méthode Ron de Bruin (Publier).
Ça me semble assez semblable à ta méthode, non ?
Envoie ton fichier fusions / fonts / couleurs que j'essaie...
1660563109107.png

Et oui je peux faire:
VB:
Sub b()
    Dim Doc As Object
    Set Doc = CreateObject("htmlfile")
End Sub
 

patricktoulon

XLDnaute Barbatruc
Voilà ce que j'ai avec la méthode Ron de Bruin (Publier).
Ça me semble assez semblable à ta méthode, non ?
Envoie ton fichier fusions / fonts / couleurs que j'essaie...
Regarde la pièce jointe 1147350
Et oui je peux faire:
VB:
Sub b()
    Dim Doc As Object
    Set Doc = CreateObject("htmlfile")
End Sub
alors je ne vois pas ou est le probleme
peut etre un conflit avec un de tes code ayant un nom de variable identique ou je ne sais pas
chez moi cette version fonctionne sur 2007/2013/2016 en 32 bits
c'est pour quoi que tu a besoins de convertir cette plage en html ???
si c'est pour outlook il y a un autre moyen
 

Dudu2

XLDnaute Barbatruc
En effet, je vise Outlook pour améliorer une ressource que je vais publier.
En fait je l'ai publiée avec un Bug (dû à des Rename non vérifiés !) donc je l'ai supprimée.
Idéalement j'aurais aimé récupérer les objets du Range avec.
 

Dudu2

XLDnaute Barbatruc
Yes !
En modifiant le code de Ron de Bruin, j'arrive à:
1 - Exporter les tableaux structurés avec leur format natif
2 - Exporter les objets du Range (boutons, images, ...)

A ce stade, la conversion ne permet pas une utilisation Outllook car les fichiers images sont externes et référencés dans le code HTML généré en tant que imagedata src= nom du fichier temporaire. Je vais tenter de trouver un moyen pour les rendre utilisables par Outlook.

1660567679010.png
 

Pièces jointes

  • RangeToHTML.xlsm
    261 KB · Affichages: 9
Dernière édition:

patricktoulon

XLDnaute Barbatruc
test avec outlook application avant de crier victoire
il te faudra changer les chemin des images dans le code html
actuellement dans le dossier automatiquement créé pour les chemin des addrelativepart du mail
de plus outlook application ou OWA et meme d'autre apps(mail) n 'acceptent plus les balises style en entete car il créé le sien
c'est pour cela que je t'ai proposé ma méthode qui a le style "inline"

affaire a suivre ;)
 

Discussions similaires

Statistiques des forums

Discussions
314 496
Messages
2 110 236
Membres
110 708
dernier inscrit
novy16