Envoi de mail compatible 32bits et 64bits

Bonjour,

J'ai modifié un code qui permet de mettre en forme un tableau excel dans un mail et de l'envoyer à une liste de diffusion via outlook.

Ma problématique aujourd'hui est la suivante : les utilisateurs de mon fichier qui ont une version excel 64 bits n'arrive pas à faire fonctionner la macro "problème de sécurité"

Ayant vu qu'il est possible de modifier le code pour le rendre compatible j'espère trouver de l'aide sur ce forum car je n'arrive pas à comprendre comment faire et comment tester si ca fonctionne car j'ai une version 32 bits sur mon pc.

Merci par avance pour votre aide :

Sub Declaration()
'Déclaration des variables

    Dim EmailSup, Signature As String
    Dim MyOlapp As Object
    Dim myItem
    Dim olMailItem
    Dim myRecipients
    Dim myAttachments
    Const olFolderInbox As Long = 6

    EmailSup = "..........@mail.com"
    Signature = Range("D3")

 ' Là, je créé mon tableau 5x2

 Dim strHTML As String

    strHTML = ""
    strHTML = strHTML & "<HEAD>"
    strHTML = strHTML & "<BODY>"
    strHTML = strHTML & "Bonjour , <BR>Veuillez trouver ci-dessous<BR><BR>"
    strHTML = strHTML & "<B><SPAN STYLE='background-color:red;font-size:5mm'>Déclaration : </SPAN></B><BR><BR>"
    strHTML = strHTML & "<TABLE BORDER>"

    For i = 5 To 15 'nombre de lignes (exemple plage A1:B5)

        strHTML = strHTML & "<TR justify>"
        For j = 3 To 4 'nombre de colonnes
        strHTML = strHTML & "<TD bgcolor='white'align='center'><FONT COLOR='black'SIZE=3>" _
                & Cells(i, j) & "</FONT></TD>"
        Next j
        strHTML = strHTML & "</TR>"

    Next i

    strHTML = strHTML & "</TABLE>"

    strHTML = strHTML & "<BR><BR>Cordialement<BR>" & Signature
    strHTML = strHTML & "</BODY>"
    strHTML = strHTML & ""

 ' Là, j'envoie le mail
        Set MyOlapp = CreateObject("Outlook.application")
        Set myItem = MyOlapp.CreateItem(olMailItem)
        Set myRecipients = myItem.Recipients
        myRecipients.Add (EmailSup)
        Set myAttachments = myItem.Attachments

        myItem.Subject = " ! Déclaration !"
        myItem.HTMLBody = strHTML
        myItem.Send

MsgBox "Mail envoyé"

End Sub

Bonjour ZAM144 et

Une petite présentation ICI serait la bienvenue

Si vous ne l'avez pas encore fait, je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER] ainsi que ses fonctionnalités
qui vous aideront dans vos demandes et réponses sur ce forum.

Concernant votre demande, pour moi le "problème de sécurité" ne vient pas de la version d'Excel en 64 bits mais des GPO déployées sur les PC
Ceci dit, vous ne déclarer pas vos variables correctement, voici un exemple avec les paramètres possible, à adapter.

Option Explicit

' Constantes type d'élément Outlook (pour le late binding)
Const olMailItem As Integer = 0
Const olAppointmentItem As Integer = 1
Const olContactItem As Integer = 2
Const olTaskItem As Integer = 3
Const olJournalItem As Integer = 4
Const olNoteItem As Integer = 5
Const olPostItem As Integer = 6
Const olDistributionListItem As Integer = 7
' Constantes Formats de l'email
Const olFormatUnspecified As Integer = 0
Const olFormatPlain As Integer = 1
Const olFormatHTML As Integer = 2
Const olFormatRichText As Integer = 3

Sub EnvoyerEmail()
  Dim OutApp As Object, OutMail As Object
  Dim MailBody As String
  Dim sPath As String, sFic As String
  ' Créer une instance Outlook
  Set OutApp = CreateObject("Outlook.Application")
  ' Créer un nouveau mail
  Set OutMail = OutApp.CreateItem(olMailItem)
  ' Définir l'adresse de l'expéditeur
  OutMail.SentOnBehalfOfName = "nom@domaine.com"
  '
  ' Texte du mail HTML
  MailBody = "<HTML><BODY><span style=""color:#80BFFF"">Font Color</span style=""color:#80BFFF""><br>" _
    & "the <b>bold text</b> here.</br>" _
    & "<br><u>New line with underline</u></br>" _
    & "<br><p style='font-family:calibri;font-size:25'>Font size</br></p>" _
    & "</BODY></HTML>"
  '
  ' Création de l'email
  With OutMail
    .BodyFormat = olFormatHTML  ' Format HTML
    '.BodyFormat = olText ' Format texte simple
    '.BodyFormat = olFormatRichText ' Format texte riche
    .Display  ' Afficher l'email vide pour la signature (si existe)
    .To = "destinataire@mail.fr"
    .CC = "copie@mail.fr"
    .BCC = "copiecachée@mail.fr"
    .Subject = "SUJET du MAIL"
    .HTMLBody = MailBody & .HTMLBody
    If sPath <> "" And sFic <> "" Then
      If Right(sPath, 1) <> "\" Then sPath = sPath & "\"
      .Attachments.Add sPath & sFic
    End If
    ' sauvegarde l'email avant l'envoi (pas obligatoire)
    .Save
    ' Envoyer le mail
    '.Send
  End With
  ' Vider les variables objet
  Set OutMail = Nothing: Set OutApp = Nothing
End Sub

Merci de votre participation

Cordialement

Bonjour BrunoM45

Merci beaucoup pour votre retour, j'ai essayé de modifier votre code mais malheureusement je n'arrive plus à générer mon tableau dans le corps du message, voici le fichier en PJ. qui permettra de mieux comprendre mon besoin

7declaration.xlsm (31.34 Ko)

Re,

Désolé, je n'ai pas dû être assez explicite

Mon code n'est pas à reprendre dans sa globalité, juste les lignes dont vous avez besoin pour la compatibilité 32/64 bits
Voici le fichier modifié

A+

Rechercher des sujets similaires à "envoi mail compatible 32bits 64bits"