Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro envoie de mail marche que sur un fichier

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

creolia

XLDnaute Impliqué
Bonjour j'ai un soucis j'ai essayer d'adapter une macro d'envois de mail sur mon fichier et cela fonctionne pas alors que sur l'exemple tous fonction aurais je oublier quelque chose merci.


Pj

Mail = sa fonctionne
classeur2 = sa fonctionne pas
 

Pièces jointes

Re : Macro envoie de mail marche que sur un fichier

re je met toujour le code et l'erreur en cas ou.

l'erreur c'est
erreur de compile
type definie par l'utilisateur non definie.

Code:
Sub EnvoiMail()
    ' Ajouter la référence Lotus Domino Objects (domobj.tlb)
    Dim EMailPJ As String
    Dim Email(3) As String
    EMailPJ = "C:\Excel\1-Developpement\VBA\Mail Lotus\Envoi Mail par Lotus.xls"
    Email(1) = "erenaud@deutsch.net"
    Email(2) = "support@ericrenaud.fr"
    Email(3) = "erenaud@orange.fr"
    ' Boucle pour envoyer les mails
    For Z = 1 To 3
    Application.StatusBar = "Envoi du mail à " & Email(Z)
        EnvoiRef = prvSendNotes("Envoi auto d'un mail depuis Lotus Notes v.7", EMailPJ, Email(Z), SaveIt:=False)
    Next Z
End Sub
[COLOR="yellow"]Function prvSendNotes(Subject As String, Attachment As String, Recipient As String, SaveIt As Boolean) As Boolean[/COLOR]    '*********************************************
    ' * Cocher la référence Lotus Domino Objects dans Outils, Références
    ' /////////////////////////////////////////////////////////////////////////
    ' * Modifier la ligne en remplaçant par le nom du Serveur Domino utilisé :
    '          Set dbDirectory = oSession.GetDbDirectory("EVREUX01/DEUTSCH")
    ' /////////////////////////////////////////////////////////////////////////
    ' * Mettre le mot de passe adapté dans la ligne :
    '           oSession.Initialize ("password")
    ' /////////////////////////////////////////////////////////////////////////
    ' Repris et développé par EvilGost
    ' Adapté par Eric RENAUD
    ' Subject: On met le sujet du mail
    ' Attachment: Chemin complet du fichier à attacher (ex: "C:\Excel\Test.xls"), sinon, mettre ""
    ' Recipient: Destinataire (ex: "support@ericrenaud.fr")
    ' Bodytext: Texte du mail
    ' SaveIt: Sauvegarde du mail dans les courriers envoyés
    '*************************************************************************************************************
    'Set up the objects required for Automation into lotus notes
    [COLOR="royalblue"]Dim Maildb As NotesDatabase    [/COLOR]'The mail database
    Dim UserName As String    'The current users notes name
    Dim MailDoc As Object    'The mail document itself
    Dim AttachME As Object    'The attachment richtextfile object
    Dim oSession As NotesSession
    Dim dbDirectory As NotesDbDirectory
    Dim EmbedObj As Object    'The embedded object (Attachment)
    Dim maDate As String
    maDate = Format(Date, "dd-mm-yy")
    Dim objNotesField As Object

    On Error GoTo ErrHandle

    Set oSession = New NotesSession
    'Démarre une session de notes
    'La ligne suivante ne marche qu'avec les versions 5.x et 6.x , c'est l'injection du mot de passe

    oSession.Initialize ("password")

    'Récupère le nom par défaut de la session
    UserName = oSession.UserName

    'Ouvre la base mail en utilisant le serveur par défaut
    Set dbDirectory = oSession.GetDbDirectory("EVREUX01/DEUTSCH")    'vous pouvez mettre l'adresse du serveur dans ces parentheses
    Set Maildb = dbDirectory.OpenMailDatabase

    'Création du formulaire d'envoi de mail
    Set MailDoc = Maildb.CreateDocument()

    MailDoc.AppendItemValue "Subject", Subject    'remplissage du Sujet
    MailDoc.AppendItemValue "SendTo", Recipient
    MailDoc.AppendItemValue "ReturnReceipt", "1"    ' pour avoir un accusé réception (qu'avec des clients Lotus, Orange)
    Set objNotesField = MailDoc.CreateRichTextItem("Body")

    With objNotesField
        .AppendText "   Fichier Excel avec la fonction Envoi mail par Lotus V7"
        .AddNewLine 2
        .AppendText "*************************************************************************************************"
        .AddNewLine 2
        .AppendText "Ce message a été envoyé avec le fichier que j'ai joint."
        .AddNewLine 2
        .AppendText "Le fichier Envoi mail par Lotus du : " & Date & " à " & Time
        .AddNewLine 2
        .AppendText "est en pièce jointe"
        .AddNewLine 2
        .AppendText "--------------------------------------------------------------------------------------------------"
        .AddNewLine 2
        .AppendText "Cet e-mail a été généré par un processus automatique."
        '.APPENDTEXT "Please follow established contact " & _
         "procedures should you have any questions."
        .AddNewLine 2
        .AppendText "Cordialement"
        .AddNewLine 1
        .AppendText "Eric RENAUD"

        .AddNewLine 1
    End With

    'Permet d'attacher un document au mail
    If Attachment <> "" Then
        Set AttachME = MailDoc.CreateRichTextItem("Attachment")
        Set EmbedObj = AttachME.EmbedObject(1454, "", Attachment, "Attachment")
    End If

    'Envoi le document

    If SaveIt = True Then
        MailDoc.SaveMessageOnSend = SaveIt    'si à True, Lotus sauvegarde le mail envoyé
    End If

    Call MailDoc.Send(False)    'j'obtiens une erreur lorsque je mets true au lieu de false, si quelqu'un sait pourquoi

    prvSendNotesMail = True
    GoTo ExitHandle

ErrHandle:
    MsgBox Err.Description
    prvSendNotesMail = False

ExitHandle:
    'Vidage mémoire
    Set Maildb = Nothing
    Set MailDoc = Nothing
    Set AttachME = Nothing
    Set oSession = Nothing
    Set dbDirectory = Nothing
    Set EmbedObj = Nothing
End Function

merci en cas ou
 
Re : Macro envoie de mail marche que sur un fichier

Bonjour Creolia 🙂,
Comme indiqué au début de la macro, il faut que la référence "Lotus Domino Objects" soit ouverte 😛...
Pour cela, dans l'éditeur VB, Outils -> Références et la tu cherches dans la liste la référence Lotus et tu la coches 🙄...
Bonne soirée 😎
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Réponses
5
Affichages
626
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…