copier une plage Excel et coller dans corps de mail

ET35

XLDnaute Nouveau
Bonjour,

J'ai déjà vu plusieurs forums avec des sujets similaires à ma demande.
Mais je ne trouve rien de simple à mon besoin.
J'aimerais faire un copier d'une plage d'Excel et coller cette plage dans le corps d'un mail avant de l'envoyer.
Vous trouverez en PJ un fichier test en PJ.
J'ai réussi à sélectionner ma plage et la copier, mais je n'arrive pas à la rajouter dans le corps de mon mail.
Pouvez-vous l'aider SVP ?

D'avance merci.
ET35
 

Pièces jointes

  • TEST1.xlsm
    44.7 KB · Affichages: 6

ET35

XLDnaute Nouveau
Bonjour,
Oui ça fonctionne en partie avec le lien. Merci beaucoup. :)
Mais j'ai encore besoin d'un peu d'aide.
En effet, le tableau s'insert bien dans le mail, mais la couleur de certaines cellules en rouge est enlevée.
et j'aimerais que ce tableau s'insert après la phrase "veuillez trouver ci-dessous ..." et avant le reste de mon texte.
Pouvez-vous m'aider, SVP ?
Pour enjoliver, la prochaine fois, je me corrige !
C'est vrai, je l'avoue c'est pas beau. Mais j'ai fait tellement de tests que je me suis perdue aussi! ;-)
D'avance merci pour votre aide.
 

Pièces jointes

  • TEST2.xlsm
    52.2 KB · Affichages: 6

ET35

XLDnaute Nouveau
Bonjour,

Je pense avoir pas mal avancé dans ma macro.
Mais je bloque juste au niveau de la couleur de mes cellules.
Certaines sont colorées suite à une mise en forme conditionnelle sur le tableau d'origine.
Pouvez-vous m'aider, SVP ?
 

Pièces jointes

  • TEST3.xlsm
    54.5 KB · Affichages: 14

Staple1600

XLDnaute Barbatruc
Bonsoir

ET35
Essaie en remplaçant la fonction RangeToHml existante par celle-ci.
Est-ce que le résultat est probant?
VB:
Function RangetoHTML(rng As Range)
  ' Code of Ron de Bruin - https://www.rondebruin.nl/win/s1/outlook/bmail2.htm
  ' Working in Excel 2000-2016
  ' (ZVI-2018-01-05: modified for CF supporting)
 
  Dim TempFile As String, ddo As Long
  TempFile = Environ$("temp") & "\" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"
 
  ' Temporary publish the rng range to a htm file
  ddo = ActiveWorkbook.DisplayDrawingObjects
  ActiveWorkbook.DisplayDrawingObjects = xlHide
  With ActiveWorkbook.PublishObjects.Add( _
       SourceType:=xlSourceRange, _
       Filename:=TempFile, _
       Sheet:=ActiveSheet.Name, _
       Source:=Union(rng, rng).Address, _
       HtmlType:=xlHtmlStatic)
    .Publish True
    .Delete
  End With
  ActiveWorkbook.DisplayDrawingObjects = ddo
 
  'Read all data from the htm file into RangetoHTML
  With CreateObject("Scripting.FileSystemObject").GetFile(TempFile).OpenAsTextStream(1, -2)
    RangetoHTML = Replace(.ReadAll, "align=center x:publishsource=", "align=left x:publishsource=")
    .Close
  End With
 
  'Delete the htm file we used in this function
  Kill TempFile
 
End Function
PS: Félicitations pour ton implication dans la résolution de ta question.
On voit que tu as mis les mains dans le cambouis.
Ça fait plaisir ;)
 

ET35

XLDnaute Nouveau
:pMerci pour ton message qui me fait bien plaisir. ;).
Malheureusement, avec la nouvelle fonction, cela ne fonctionne pas.
Le fichier Tmp ne se crée / ne s'ouvre pas j'ai l'impression.
A moins que je fais quelque chose de pas correct.

Je viens de me rendre compte également qu'à partir de la première fonction que tu m'avais donnée, cela ne tient pas compte des données copiées.
La macro colle toujours la première sélection de X1.
Pour cette dernière, j'ai peut-être aussi un problème de boucle. Il faut que je vérifie.
Mais je suis toujours preneuse pour l'aide concernant la couleur :p
Je t'en remercie par avance.
ET35
 

Discussions similaires

Réponses
1
Affichages
109
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 203
Messages
2 086 193
Membres
103 153
dernier inscrit
SamirN