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
et en plus je vais faire les captures pour te prouver
sur ton fichier ma fonction avec ta methode marche

et des que je la met dans la version 4.9 ou la 5.0 elle ne marche pas du tout
(donc mes fichiers)
la par contre cest important de savoir pourquoi
meme feuille meme nom , meme shapes , tout pareil

???????????????????????????????????????????????:oops:
 

patricktoulon

XLDnaute Barbatruc
voila
dans ton fichier
demo.gif



dans mon fichier maintenant
demo2.gif


et je le redis
même feuille , même shapes , même endroit et même code
 

Dudu2

XLDnaute Barbatruc
Rien n'est simple !

Avec la 4.9 j'obtiens un bon résultat en Outlook envoi et réception (sauf le '1' du 'B1' toujours en rouge)

1663094172594.png


Mais en réception Thunderbird, ce n'est plus vraiment WYSIWYG. même si ce n'est pas faux.
Outlook a sûrement bidouillé dedans et je crois pas qu'on puisse y faire grand chose.

1663094328571.png
 

patricktoulon

XLDnaute Barbatruc
bon va savoir ca remarche peut etre je force un peu trop sur la memoire avec ce truc

bon alors ta methode pour arriver au bout (outlook afficher a tout le toutim
vue1.JPG


avec ma méthode
et pareil au bout avec tout le toutim

vue2.JPG



testé sur le pc portable
quand je te dis que c'est un poil de C... c'est un euphémisme
 

patricktoulon

XLDnaute Barbatruc
re
oui le rendering de outlook et bloqué a 640 pixel de large (c'est la norme officieusement adopté par tout les client mail )donc des que ton message est plus grand il adapte et nous on les dépasse largement
certains vont jusque à 700 mais pas plus
je te retrouve l'article si tu veux
 

patricktoulon

XLDnaute Barbatruc
re
on y peut rien
c'est bien pour ça que j'ai fait un code multiple

il adapte a notre sauce pour outlook mais si tu regarde bien les positions et dimensions elles ne sont pas tout a fait les mêmes pour "<V:rect> et <img>

avec l’expérience je peaufinerais
mais on a là un bloc table html solide avec le css inline
le code peut être implanté ou l'on veut
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
allez tiens special pour toi
la méthode 5.1 hors serie tu sera le seul a l'avoir
elle utilise ta methode pour les images

Un question...
Pour Outlook, je vois que tu n'utilises pas les CIDs.
Comment le lien est-il alors fait entre le HTML et l'Attachement ?
réponse :
ben c'est simple
un mail c'est quoi
un paquet avec du texte et des pièces jointes
les pièces jointes sont dans le même paquet
donc le lien c'est le nom de la pièce jointe tout simplement
c'est pas plus compliqué que ça
les vrect dans mon code sont les shape visible dans outlook
le lien c'est le nom de l'image
les image pour le fichier web c'est le nom de dossier ou se trouve le fichier web +le nom de dossier des images +le nom de l'image

alors ou c'est formidable
c'est que sur Thunderbird ou comme moi emClient les shapes vml walouh!!!!! et comme le lien src des images (compatible thunderbird et emclient ) sont avec le dossier qui dans le mail n'existe pas bien sur 🤣
et bien on vois quand meme les images

mais alors que se passe t'il ????? comment cela est possible

et bien avant le display de outlook fait un debug.print .htmlbody

Hoh!! ben ça alors !!! 🤣


on ne nous dis pas tout je vous dis moi 🤣
 

Pièces jointes

  • 1Range to Html by code early bindig 2022 V 5.1 hors serie.xlsm
    301.8 KB · Affichages: 3

Dudu2

XLDnaute Barbatruc
Pour en finir (peut-être) avec ce sujet je poste les solutions à la question initiale.

Pour voir le code de @patricktoulon utilisé dans ces fonctions, voir ici.
  1. Range vers HTML avec les images des Objets du Range "inline" (incluses) en Base64
    Cette conversion fonctionne avec à peu près tout SAUF Outlook & Word.
    Pour cela 2 options 100% WYSIWYG:
    1 - RangeToHTMLOutlookWithPublish.xlsm qui utilise le PublishObject.Publish
    2 - RangeToHTMLBase64WithPatrickCode.xlsm qui utilise le code de @patricktoulon

  2. Range vers HTML pour Outlook
    Pour cela PublishObject.Publish est à éviter et reste 1 seule option 100% WYSIWYG(*):
    1 - RangeToHTMLOutlookWithPatrickCode.xlsm qui utilise le code de @patricktoulon
    (*) Attention, ce n'est 100% WYSIWYG uniquement pour Outlook en Envoi et Réception.
    Ça ne l'est pas à 100% pour les autres clients de mail (ex. Thunderbird) en Réception et sans doute pour les Web mails pour ce qui concerne le placement des images des objets du Range qui subissent un "certain" décalage.
Les 3 fichiers correspondants sont joints.
 

Pièces jointes

  • RangeToHTMLBase64WithPatrickCode.xlsm
    328.9 KB · Affichages: 1
  • RangeToHTMLOutlookWithPatrickCode.xlsm
    325.7 KB · Affichages: 0
  • RangeToHTMLBase64WithPublish.xlsm
    297.1 KB · Affichages: 0
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
314 018
Messages
2 104 608
Membres
109 086
dernier inscrit
CD_Mirantin