Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
re
ah ...
je sais pas si tu a fait une fusion dans le coin mais comme je te l'ai dis
avec les fusion il y a des choses que fait excel qui sont impossible encss2 en html les moitié de bordures ca n'existe pas en html
il faut passer par border-image

oui je sais pour les activX avec publier et je te parle meme pas des bordures sur des fusion croisées il les zape tout bonnement moi j'en récupère le max possible et compatible html
comme je te l'ai dis la seule solution c'est de tout construire
c'est ce que je fait avec ma méthode
 

patricktoulon

XLDnaute Barbatruc
après comme je te l'ai dis, les bordures c'est ""au plus près de l'original""
faire mieux je pourrais mais ce serait une usine a gaz( heu..pardon lionel )
et je t'embarquerait dans le css3 avec border-image sur le quel on peut régler le width,height,leftt,top
 

patricktoulon

XLDnaute Barbatruc
non non c'est bien publier aussi je viens de tester
en plus regarde le dossier image et comment veux tu choisir une image toi qui va a qui et a quoi et pour couronner le tout regarde celle tout a fait a droite
c'est une capture de groupes d'image va savoir pour quoi il fait ça


non moi publier c'est mort et en plus sur outlook 2013 c'est un carnage
 

Dudu2

XLDnaute Barbatruc
Oui, j'ai aussi essayé d'utiliser Publish pour récupérer les fichiers car c'est rapide.
Mais comme tu l'indiques ci-dessus, Publish créé plusieurs images pour une seule, parfois créé une image de plusieurs images et donc c'est totalement inexploitable.

comme je te l'ai dis la seule solution c'est de tout construire
c'est ce que je fait avec ma méthode
En effet, la méthode que tu as codée et qui suscite toute mon admiration car je ne comprends que 10% de ton code est celle qu'il faut utiliser pour éviter les risques de discordance entre le Range et sa représentation HTML.

Par contre je te confirme que c'est bien le Paste du Range.Copy qui exclut les Controls ActiveX.
En copiant ces contrôles par code pour compléter le Paste, Publish les prend en compte comme tu peux le constater avec ce fichier.
 

Pièces jointes

  • RangeToHTMLBase64WithPublish.xlsm
    288.9 KB · Affichages: 0

patricktoulon

XLDnaute Barbatruc
re j'ai tellement bossé pour te l'adapter à outlook que maintenant sans les corrections bordures pour outlook c'est nickel par contre pour le web c'est pas bon

regarde oulook sans correction bordure



et maintenant regarde FF sans correction bordure

pourtant c'est exactement le même code pour outlook et le fichier web
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour @Dudu2
aujourd'hui je reviens sur la 4.8 car le displayGridline ne me conviens pas trop dans le sens ou ca ne fonctionne pas comme tu veux à 100%

j'ai donc fait le test ultime pour les bordures de fusion inter croisée à outrance
et j'en ai raccourci le code
alors c'est pas parfait mais on voit bien que mon résultat est bien meilleur que le publish
démonstration

original excel


version publish


version avec ma fonction


voila c'est pas parfait mais le résultat est largement supérieur a publish
 

Dudu2

XLDnaute Barbatruc
Bonjour @patricktoulon,
Je ne doute pas un instant que pour Outlook au moins, ton code est indispensable car Outlook ne sait pas utiliser le code de Publish. Et Outlook l'objectif principal. Le code Web Browser est accessoire.

Il y a un petit bug sur la couleur du "1" de "B1" passé du noir au rouge et qui est masqué par la flèche.
 

patricktoulon

XLDnaute Barbatruc
re
a oui j'ai vu
je l'avais mis en rouge puis remis en noir et visiblement dans le xml du sheet il n'a pas corrigé
j'ai bien verifié dans le xml du sheet et le 1 de "B1" était bien en rouge alors que sur la feuille il est noir
c'est bizarre ça quand même il doit y avoir de belles fuites mémoire
 

patricktoulon

XLDnaute Barbatruc
re
j'avais laissé ça de coté mais maintenant qu'on est bons
je vais voir pourquoi le first FONT margin-left à 2px de fonctionne pas dans outlook
il va bien falloir trouver une solution même si somme toute c'est pas bien grave
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…