'**********************************************************************************
' __ ___ ___ . ___ _____ ___ ___
'|__| /\ | | | | | | / | | | | | | | | |\ |
'| /__\ | |--- | | |/\ | | | | | | | | | \ |
'| / \ | | \ | |___ | \ | |___| |___| |__ |___| | \|
'***********************************************************************************
''***********************************************************************************
' FONCTION RANGE TO HTML ET OUTLOOK SHAPES VML VERSION 4.8 2022
' MODULE DE TEST POUR LA FONCTION RANGE TO HTML VERSION 4.8 2022
'Function pour créer le code html d'une plage de cellule avec ou sans les images et shapes pour outlook
'Version du module de test 3.0 2022
'Date Version:11/09/2022
'Auteur: patricktoulon sur exceldownloads
'le code html obtenu contient les deux formats d'embbed pour les images (html web et outlook)
'************************************************************************************
Option Explicit
' TESTS POUR OUTLOOK
'*******************************************************************************************************************
Sub testdemoi()
SendSelectionWithOutlook Feuil1.[c4:i13], 2, False
End Sub
Sub SendSelectionWithOutlook(addr, mode&, Optional DisplayGriLine As Boolean = True)
Dim code$, i&, FichierHTML$, DossierImages$, nom$, Rng As Range, Q, tim#
Dim ob As Object, Adresse, OL As Object, OLmail As Object
tim = Timer
If TypeName(addr) = "String" Then Set Rng = ActiveSheet.Range(addr) Else Set Rng = addr
nom = "imgTable_" & Replace(Rng.Address(0, 0), ":", "-")
FichierHTML = ThisWorkbook.Path & "\" & nom & ".html"
spaceMargin = " "
code = CreateTableBase2(Rng, DisplayGriLine)
If mode = 2 Then
DossierImages$ = ThisWorkbook.Path & "\" & nom
ShapesInRangeToImageFiles Rng, DossierImages
code = PutShapOnHtmlOutlook(code, Rng, DossierImages) 'on ajoute les images avec (src du fichier) dans le code html de la table
End If
'i = FreeFile: Open FichierHTML For Output As #i: Print #i, code: Close #i
Set OL = CreateObject("Outlook.Application")
Set OLmail = OL.CreateItem(0) '0
With OLmail
'.From = CStr("guillaumepothier@hotmail.com")
.To = "dudu@youmémélle.com"
'.BodyFormat = olFormatHTML
.Subject = "plage+shape" & Date
.BodyFormat = 2
If mode = 2 Then
Q = Dir(DossierImages & "\*.png")
If Q <> "" Then
Do While Q <> ""
OLmail.Attachments.Add DossierImages & "\" & Q, 0, 0 ' les image sont invisibles dans les pieces jointes
OLmail.Attachments.Add DossierImages & "\" & Q ' on les rattache une 2d fois si on veut qu'elles soient visibles et télechargeables
Q = Dir
Loop
End If
End If
.htmlbody = "bonjour salut<br>ci-joint le tableau des ventes du mois<br>" & code & "<br>en vous souhaitant bonne reception<br>patrick à votre service"
.display
'.Save
'.Send 'envoi automatique
End With
CommandBars("Cell").Reset
CommandBars("List Range Popup").Reset
MsgBox Format(Timer - tim, "#0.000 Sec")
End Sub