Insérer un tableau dans un message outlook

Bonjour,

J'essaie d'insérer un tableau dans un message outlook mais il me signale cette variable : (Dim oTbl As Table) avec le message suivant :

"message d'Erreur de compilation : Type défini par l'utilisateur non défini"

Const cSujet = "Sujet bla bla bla..."

Const cIntroduction = "<Html><body style=""font-family:Times_New_Roman; font-size:118%; color:#3498DB; background-color:#F9E79F;""> Bonjour,<br/><br/> Ci-joint les stats depuis le 01/01/2009 au & DateStrg & "."

Const cRangeToeMail = "$B$24:$B$32"

Const cSignature = "<Html><body style=""font-family:Times_New_Roman; font-size:70%; color:#3498DB;""> -----------------------------------------------------------------------------------------------------------------------------------------------------------------<br/><br/> <i>M. Prenom NOM</i><br/> <i>Responsable</i><br/> <i>Direction</i><br/> <i>E -mail: <u style=""color:#0000FF;"">email</u></i><br/> <i>Fax : </i><br/> <i>Standard : </i><br/> <i><u style=""color:#800080"">site1</u> & <u style=""color:#800080"">site2</u></i><br/> <i>-------------------------------------------------------------------</i><br/> <i>Adresse</i><br/><br/> <b style=""font-size:130%; color:#808080;"">Suivez-nous sur :</b>" & _

"<a href = '

'> <img src ='cid:Facebook.ico'>  </a> " & _

"<a href = '

'> <img src ='cid:Linkedin.ico'>  </a> " & _

"<a href = '

'> <img src ='cid:Twitter.ico'>  </a> " & _

"<a href = 'https:/yb/channel/DDDDD'> <img src ='cid:Youtube.ico'>  </a> " & _

"<a href = '

'> <img src ='cid:Googleplus.ico' width='0.5%' height='0.5%'> </a> <br/><br/> " & _

"<img src ='cid:Signature_Email.jpg' width='315' height='125'> </Html></body>"

Const xEMailAddr = "email1"

Const xEMailAddrCopy = "email2; email3"

Const xEMailAddrHidden = "email4"

Dim oSheet As Worksheet

Dim xOutlook As Object

Dim xMailItem As Object

Dim oTbl As Table

Set oSheet = Sheets("Stat Reporting") ' Dans ce module dont lequel y a le code, la page "Stat Reporting" est dans un autre fichier excel.

Set xOutlook = CreateObject("Outlook.Application")

Set xMailItem = xOutlook.CreateItem(0)

With xMailItem

.To = xEMailAddr

.CC = xEMailAddrCopy

.BCC = xEMailAddrHidden

.HTMLBody = composeBody(oSheet, cIntroduction, cRangeToeMail, cSignature)

.Subject = cSujet

.Display

End With

Function composeBody(zSheet As Worksheet, zIntroduction As String, zRange As String, zSignature As String) As String

Const cTmpFile = "TemporaryFile.htm"

Dim sTempFilename As String

Dim oFS As Object

Dim oTS As Object

Dim oPO As Excel.PublishObject

Dim sBuffer As String

Dim oTbl As Table

'On compose le nom du fichier temporaire

sTempFilename = CreateObject("WScript.Shell").SpecialFolders("Documents") & "\" & cTmpFile

'On met en forme le début du corps du mail

composeBody = "<html> <body>" & zIntroduction & "<br/>"

'On exporte le tableau dans le fichier temporaire en HTML

Set oPO = ThisWorkbook.PublishObjects.Add(xlSourceRange, sTempFilename, zSheet point Name, zRange, xlHtmlStatic, "", "")

oPO.Publish (True)

oPO.Delete

'On récupère le contenu du fichier temporaire dans une variable string locale

Set oFS = CreateObject("Scripting.FileSystemObject")

Set oTS = oFS.OpenTextFile(sTempFilename)

sBuffer = oTS.ReadAll

oTS.Close

Set oTS = Nothing

Set oFS = Nothing

'On ajoute le tableau contenu dans la variable locale au corps du mail en la cadrant à gauche

composeBody = composeBody & Replace(sBuffer, "align=center", "align=left")

'On ajoute la signature

composeBody = composeBody & "<br/>" & "Cordialement.<br/><br/>" & zSignature

'On ferme le corps du mail

composeBody = composeBody & "</Body>"

End Function

Merci par avance pour ton support

Bonjour,

"Table" n'est pas une classe d'Excel mais d'Outlook.

Donc :

Dim oTbl As Object

ou si vous avez ajouté la référence Microsoft Outlook dans l'éditeur VB :

Dim oTbl As Outlook.Table

NB: utiliser la balise </> pour affichage du code.

Bonjour Thev,

Merci pour ta réponse,

Apparemment ça marcha mais mnt j'ai un autre message qui me met ce qui suit en surbrillance avec message : Erreur d'exécution 9 : L'indice n'appartient pas à la sélection.

Set oSheet = Sheets("Stat Reporting")

N.B : ' Dans ce module dont lequel y a le code ci-dessus, la page "Stat Reporting" est dans un autre fichier excel externe.

Merci par avance pour ton support

Bonsoir,

Il vous suffit d'ouvrir le fichier contenant cette feuille :

    Dim oSheet As Worksheet
    Dim xOutlook As Object
    Dim xMailItem As Object
    Dim oTbl As Object
    Dim id_fichier As String
    Dim wb_stats As Workbook

    id_fichier = répertoire & nom_fichier & "." & extension
    Set wb_stats = Workbooks.Open(id_fichier, ReadOnly:=True) 'ouverture en lecture seule
    Set oSheet = wb_stats.Sheets("Stat Reporting")
    '............................................
    '...........................................
    wb_stats.Close False

Par ailleurs, dans votre fonction, des instructions sont erronées, rectif ci-dessous :

sTempFilename = CreateObject("WScript.Shell").SpecialFolders("MyDocuments") & "\" & cTmpFile
Set oPO = zSheet.Parent.PublishObjects.Add(xlSourceRange, sTempFilename, zSheet.Name, zRange, xlHtmlStatic, ",")

et

Bonjour Thev,

Merci beaucoup Thev pour tes réponses ça fonctionne à merveille

Une petite aide encore si possible, sur cette phrase je veux insérer dans un paragraphe en HTML une variable de date personnalisée ( DateStrg ) que j'ai déjà paramétré mais la syntaxe est erronée.

 Const cIntroduction = "<Html><body style=""font-family:Times_New_Roman; font-size:118%; color:#3498DB; background-color:#F9E79F;""> Bonjour,<br/><br/> Ci-joint les stats depuis le 01/01/2009 au & DateStrg & "."

Merci par avance pour ton support

Bonjour,

 Const cIntroduction = "<Html><body style=""font-family:Times_New_Roman; font-size:118%; color:#3498DB; background-color:#F9E79F;""> Bonjour,<br/><br/> Ci-joint les stats depuis le 01/01/2009 au & DateStrg & ""."" "

Bonjour,

Pas de résultat, sur l'e-mail j'ai cette ligne :

Ci-joint les stats depuis le 01/01/2009 au & DateStrg & "."

A noter que le code HTML modifié est :

Const cSujet = "Sujet bla bla bla..."
Const cIntroduction = "<Html><body style=""font-family:Times_New_Roman; font-size:118%; color:#3498DB; background-color:#F9E79F;""> Bonjour,<br/><br/> Ci-joint les stats depuis le 01/01/2009 au & DateStrg & ""."" "
Const cRangeToeMail = "$B$24:$B$32"
Const cSignature = "<Html><body style=""font-family:Times_New_Roman; font-size:70%; color:#3498DB;""> -----------------------------------------------------------------------------------------------------------------------------------------------------------------<br/><br/> <i>M. Prenom NOM</i><br/> <i>Responsable</i><br/> <i>Direction</i><br/> <i>E -mail: <u style=""color:#0000FF;"">email</u></i><br/> <i>Fax : </i><br/> <i>Standard : </i><br/> <i><u style=""color:#800080"">site1</u> & <u style=""color:#800080"">site2</u></i><br/> <i>-------------------------------------------------------------------</i><br/> <i>Adresse</i><br/><br/> <b style=""font-size:130%; color:#808080;"">Suivez-nous sur :</b>" & _
"<a href = 'https://fb/AAAAA'> <img src ='cid:Facebook.ico'>&nbsp </a> " & _
"<a href = 'https://ln/BBBBB'> <img src ='cid:Linkedin.ico'>&nbsp </a> " & _
"<a href = 'https://tw/CCCCC'> <img src ='cid:Twitter.ico'>&nbsp </a> " & _
"<a href = 'https:/yb/channel/DDDDD'> <img src ='cid:Youtube.ico'>&nbsp </a> " & _
"<a href = 'https://gl/u/0/EEEEE'> <img src ='cid:Googleplus.ico' width='0.5%' height='0.5%'> </a> <br/><br/> " & _
"<img src ='cid:Signature_Email.jpg' width='315' height='125'> </Html></body>"

Bonjour,

    Const cIntroduction = "<Html><body style=""font-family:Times_New_Roman; font-size:118%; color:#3498DB; background-color:#F9E79F;""> Bonjour,<br/><br/> Ci-joint les stats depuis le 01/01/2009 au " & datestrg & "."

Bonjour,

Toujours rien , il m'affiche le message de : Erreur de compilation.

Constante requise.

J'ai déclaré

Const cDteStr = datestrg

Mais tjrs rien.

Bonjour,

Exemple de déclaration pour votre constante (avec la date au format anglo-saxon : mois/jour/année) :

Const datestrg = #4/1/2020#

(01/04/2020)

Rechercher des sujets similaires à "inserer tableau message outlook"