IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E et Lotus]Erreur d'Automation lors de l'envoie du mail


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Profil pro
    chomeur
    Inscrit en
    Août 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Août 2006
    Messages : 343
    Points : 246
    Points
    246
    Par défaut [VBA-E et Lotus]Erreur d'Automation lors de l'envoie du mail
    Bonjour bonjour,

    J'ai un souci lors d'une liaison entre LotusNote et Excel. J'aimerai pouvoir envoyer des mail depuis une macro sur Excel. En parcourant le forum et le site j'ai trouvé des pistes pour y arriver.

    Tout fonctionne bien sauf l'envoi de mail en lui même. Je bugue toujours au niveau de la sub EnvoieLeMail pile à la ligne "objDocument.send true".
    J'ai l'erreur suivante : "Runtime Error Automation Error".

    Je ne comprends pas la raison de ce bug. Est ce que quelqu'un pourrait m'expliquer l'origine et comment le corriger? (je met l'ensemble du code de la classe)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Dim objMaSessionLotus As NotesSession
    Dim objDir As NotesDbDirectory
    Dim objLotusDB As NotesDatabase
    Dim objDocument As Object
     
    Private Sub Class_initialize()
    Set objMaSessionLotus = New NotesSession
    Dim stPassWord As String
    stPassWord = "unmotdepasse"
     
    With objMaSessionLotus
      .Initialize stPassWord
      Set objDir = .GetDbDirectory(stMonServeur)
    End With
     
    Set objLotusDB = objDir.OpenMailDatabase
    Set objDocument = objLotusDB.CreateDocument
     
    End Sub
     
    Public Sub EnvoieLeMail(ByRef stMonSujet As String, ByRef stMonCorpsDeMail As String, ByRef stMonAdressMail As String)
    Dim ritem As NotesRichTextItem
     
    With objDocument
      .AppendItemValue "Form", "Memo"
      .AppendItemValue "Sendto", stMonAdressMail
      .AppendItemValue "subject", stMonSujet
      .SaveMessageOnSend = True
      Set ritem = .CreateRichTextItem(stMonCorpsDeMail)
      .Send True
    End With
     
    Set ritem = Nothing
     
    End Sub

  2. #2
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Salut,

    essaie ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MailDoc.SEND True, stMonAdressMail
    je ne sais pas ce que fait le True.
    j'ai un code qui fonctionne basé sur que quelquechose que j'avais trouvé dans la FAQ, il y un certain temps.

    le send y est écrit comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    maildoc.SEND 0, récipient
    Je ne sais pas ce que fait le 0. Je ne retrouve pas le code dans la FAQ.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  3. #3
    Membre actif
    Profil pro
    chomeur
    Inscrit en
    Août 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Août 2006
    Messages : 343
    Points : 246
    Points
    246
    Par défaut
    Merci Godzestla! En fait le truc qui bloquait était juste le true...
    Par contre l'envoi se fait correctement, mais le corps du mail n'est pas dedans... :-/
    je vais trifouiller de mon coté.

  4. #4
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Salut EvaristeGaloisBis (comme dirait mon fils, voilà un pseudo qui le fait !!)

    Par contre l'envoi se fait correctement, mais le corps du mail n'est pas dedans... :-/
    Normal, il te manque l'instruction suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Body = stMonCorpsDeMail
    à la place à mon avis de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set ritem = .CreateRichTextItem(stMonCorpsDeMail)
    mais peux-être que le mix fonctionne : ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    .Body = .CreateRichTextItem(stMonCorpsDeMail)
    A tester
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  5. #5
    Membre actif
    Profil pro
    chomeur
    Inscrit en
    Août 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Août 2006
    Messages : 343
    Points : 246
    Points
    246
    Par défaut
    oups..! J'avais oublié de dire que j'ai rajouté la ligne de code suivante dans la sub EnvoieLeMail() la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .AppendItemValue "Body", stMonCorpsDeMail
    Au temps pour moi!

    En tout cas merci pour ton message... ça me permet de voir une autre méthode pour mettre le corps du mail.

  6. #6
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    No problemo.

    Histoire d'être complet voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
     
            'Retrieve Parms from Ini
     
        'Crée une session notes
        Set Session = CreateObject("Notes.NotesSession")
     
        '*** Cette ligne est réservée aux versions 5.x et supérieur : ***
        'Session.Initialize (Password)
     
        'Notes Database Name
        MailDbName = Notes_Dbname
     
        'Ouvre la base des mails
        Set Maildb = Session.GETDATABASE("", MailDbName)
        If Not Maildb.IsOpen Then Maildb.OPENMAIL
     
        'Split recipient list
        length = Len(Recipient)
        idx = 0
        off_out = 1
        Start = 1
        For off_in = 1 To Len(Recipient)
     
           If (off_in = Len(Recipient)) Then
              recip(idx) = Mid(Recipient, Start, off_in - Start + 1)
              idx = idx + 1
            End If
           If (Mid(Recipient, off_in, 1) = ",") Then
              recip(idx) = Mid(Recipient, Start, off_in - Start)
              idx = idx + 1
              Start = off_in + 2
            End If
        Next
     
        Set MailDoc = Maildb.CREATEDOCUMENT
        MailDoc.Form = "Memo"
        MailDoc.sendto = recip
        MailDoc.CopyTo = CCRecipient
        MailDoc.BlindCopyTo = BCCRecipient
        MailDoc.Subject = Subject
        MailDoc.Body = Bodytext & " " & Sender
        MailDoc.SAVEMESSAGEONSEND = SaveIt
     
        'Prend en compte les pièces jointes
        If Attachment <> "" Then
            Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment")
            Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment, "Attachment")
        End If
     
        'Envoie le mail
        MailDoc.PostedDate = Now()
        MailDoc.SEND 0, recip
     
        Set Maildb = Nothing
        Set MailDoc = Nothing
        Set AttachME = Nothing
        Set Session = Nothing
        Set EmbedObj = Nothing
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur de variable lors de l'envoi du form
    Par Lenezir dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 02/02/2009, 15h54
  2. Réponses: 3
    Dernier message: 22/10/2007, 10h30
  3. [VBA] Gérer la taille des cellules lors de l'envoi de mail depuis excel
    Par Arschney dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/06/2007, 10h58
  4. [VB.NET 2005] Erreur lors d'un envois de mail
    Par mimil77210 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 08/06/2006, 14h00
  5. [Mail] Erreur lors de l'envoi de mail
    Par PAYASS59 dans le forum Langage
    Réponses: 1
    Dernier message: 11/05/2006, 14h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo