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 :

Mail aves pièce(s) jointe(s) sous lotus note [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 84
    Par défaut Mail aves pièce(s) jointe(s) sous lotus note
    Bonjour à tous,

    Mon problème est le suivant, après plusieurs heures de recherche sur internet et de test, je n'arrive toujours pas à joindre une pièce dans mon mail.

    Voici le 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
    Sub mail()
        Dim Session As Object
        Dim Dir As Object
        Dim Doc As Object
        Dim ObjNotesField As Object
        Dim Workspace As Object
        Dim EditDoc As Object
        
    On Error GoTo TraiteErreur
        
        'Création de la session Notes
        Set Workspace = CreateObject("Notes.NotesUIWorkspace")
        Set Session = CreateObject("notes.NOTESSESSION")
        Set Dir = Session.GETDATABASE("", "")
        Call Dir.OPENMAIL
        
        'Creation d'un document
        Set Doc = Dir.CREATEDOCUMENT
        Doc.body = "This is the body."
        Doc.form = "Memo"
        Doc.Subject = "Sujet du mail"
        Doc.sendto = "Receiver@mail.com"
       ' Doc.AddAttachment ("U:\\test.txt") ???
      ' Call ObjNotesField.EMBEDOBJECT(1454, "", ????)
        JE NE SAIS PAS COMMENT INSTANCIER ICI L'OBJET JOINT
        
        'Affichage du mail dans Lotus Notes
        Set EditDoc = Workspace.EditDocument(True, Doc)
        
        Set Session = Nothing
        Set Dir = Nothing
        Set Doc = Nothing
        Set Workspace = Nothing
        Set EditDoc = Nothing
        
        Exit Sub
        
    TraiteErreur:
        
        MsgBox "Problème de création du mail", vbCritical, "Error"
        
        Set Session = Nothing
        Set Dir = Nothing
        Set Doc = Nothing
        Set Workspace = Nothing
        Set EditDoc = Nothing
    
    End Sub
    Ce n'est malheureusement que le début de mon soucis .. Car je souhaite (après avoir déjà resolu ce soucis) optimiser le code pour joindre des fichier spécifique aux destinataires ... Mais nous verrons ça plus tard lol

    Merci d'avance !

    Cdt, arkhang !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    J'utilise cette macro dans mes applications, à adapter à votre cas :

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    Sub EnvoyerReponseCartoParMail(ObjetDuMail, MessageDuMail, AdresseMail)
     
    Dim ObjNotesSession As Object
    Dim ObjNotesMailFile As Object
    Dim ObjNotesDocument As Object
    Dim ObjNotesField As Object
    Dim SendMail As Boolean
    Dim Msg As String
     
    Dim EMailCCTo As String
    Dim EMailBCCTo As String
     
            ' Mpfe, auteur inconnu
            On Error GoTo SendMailError
            On Error Resume Next
            EMailCCTo = "" '' Optional
            EMailBCCTo = "" '' Optional
     
            ' Etablissement de la connection à Notes
            Set ObjNotesSession = CreateObject("Notes.NotesSession")
     
            ' Establish Connection to Mail File
            ' .GETDATABASE("SERVER", "FILE")
            Set ObjNotesMailFile = ObjNotesSession.GETDATABASE("", "")
     
            'Ouverture du Mail
            ObjNotesMailFile.OPENMAIL
     
            'Création d'un nouveau mémo
            Set ObjNotesDocument = ObjNotesMailFile.CREATEDOCUMENT
     
            'Create 'Subject Field'
            Set ObjNotesField = ObjNotesDocument.APPENDITEMVALUE("Subject", ObjetDuMail)
     
            'Create 'Send To' Field
            Set ObjNotesField = ObjNotesDocument.APPENDITEMVALUE("SendTo", AdresseMail)
     
            ' Adresser en copie
            On Error Resume Next
            Set ObjNotesField = ObjNotesDocument.APPENDITEMVALUE("CopyTo", EMailCCTo)
     
            ' Adresser en copie cachée
            Set ObjNotesField = ObjNotesDocument.APPENDITEMVALUE("BlindCopyTo", EMailBCCTo)
     
            ' Corps du message
            Set ObjNotesField = ObjNotesDocument.CREATERICHTEXTITEM("Body")
     
            With ObjNotesField
                .APPENDTEXT MessageDuMail
            End With
     
            ' Attacher le fichier --1454 indique un attachement de fichier
            ObjNotesField = ObjNotesField.EMBEDOBJECT(1454, "", ActiveWorkbook.FullName)
     
            ' Envoi de l'email
            ObjNotesDocument.SEND (0)
     
        'Release storage
        Set ObjNotesSession = Nothing
        Set ObjNotesMailFile = Nothing
        Set ObjNotesDocument = Nothing
        Set ObjNotesField = Nothing
     
        'Set return code
        SendMail = True
        Exit Sub
     
    SendMailError:
        Msg = "Error # " & Str(Err.Number) & " was generated by " _
        & Err.Source & Chr(13) & Err.Description
        MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext
        SendMail = False
     
    End Sub
    Nb : Pour envoyer des fichiers spécifiques à chacun des destinataires, il faudrait mettre le nom complet du fichier en paramètre (fullname).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sub EnvoyerReponseCartoParMail(ObjetDuMail, MessageDuMail, AdresseMail, NomCompletFichierZip)

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 84
    Par défaut
    Bonjour Eric,

    Je débute dans le monde de la programmation, et même si je ne pense pas que votre code soit très compliqué à comprendre, j'ai un peu de mal tout de même lol
    C'est pourquoi, j'aurais quelques questions à vous soumettre, sans vouloir vous offusquer.

    -Si je comprends bien dans la déclaration de la fonction Sub EnvoyerReponseCartoParMail(ObjetDuMail, MessageDuMail, AdresseMail), il faut considérer que l'objet, le message et l'adresse soit envoyé en paramètre par une autre fonction ?

    -dans l'EMBEDOBJECT, à quoi correspond ActiveWorkbook.FullName ? Dans mon cas, comme pourrais-je faire pour tester tout d'abord avec ma seul fonction actuelle, en joignant par exemple un fichier bidon se trouvant sur mon disque (par ex "U:\\test.txt") ?

    Merci d'avance de votre réponse,

    Cordialement, arkhang

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par arkhang Voir le message
    -Si je comprends bien dans la déclaration de la fonction "Sub EnvoyerReponseCartoParMail(ObjetDuMail, MessageDuMail, AdresseMail)", il faut considérer que l'objet, le message et l'adresse soit envoyé en paramètre par une autre fonction ?
    Les paramètres permettent d'envoyer des informations différentes en fonction de vos interlocuteurs.

    Dans l'exemple ci-dessous, le fichier d'envoi est inclu dans une boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        For X = LBound(MatriceDestinataires, 2) To UBound(MatriceDestinataires, 2)
          Select Case MatriceDestinataires(2, X)
            Case "A envoyer"
                EnvoyerReponseCartoParMail TexteObjet, TexteMessage, MatriceDestinataires(1, X)
          End Select
        Next X
    Dans cette boucle, j'aurais pû également faire varier l'objet et le message en fonction du contexte.

    Citation Envoyé par arkhang Voir le message

    -dans l'EMBEDOBJECT, à quoi correspond "ActiveWorkbook.FullName" ? Dans mon cas, comme pourrais-je faire pour tester tout d'abord avec ma seul fonction actuelle, en joignant par exemple un fichier bidon se trouvant sur mon disque (par ex "U:\\test.txt") ?
    Dans mon cas, c'est le fichier en cours qui est envoyé par mail (après l'avoir sauvegardé bien sûr). Mais vous pouvez joindre n'importe quel fichier, il vous faut pour cela indiqué le nom complet répertoire et nom de fichier.

    Cordialement.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 84
    Par défaut
    J'ai remplacé mes deux premières ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ' Doc.AddAttachment ("U:\\test.txt") ???
      ' Call ObjNotesField.EMBEDOBJECT(1454, "", ????)
    par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ObjNotesField = ObjNotesField.EMBEDOBJECT(1454, "", "U:\\test.txt")
    La syntaxe doit être mauvaise je pense car ça me met le programme en erreur, comment dois-je le corriger ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par arkhang Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ObjNotesField = ObjNotesField.EMBEDOBJECT(1454, "", "U:\\test.txt")
    La syntaxe doit être mauvaise je pense car ça me met le programme en erreur, comment dois-je le corriger ?
    Avec deux antislashs successifs, votre chemin n'est pas valide

    Cordialement

  7. #7
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 089
    Billets dans le blog
    20
    Par défaut
    Bonsoir
    Lotus notes n est pas facile à automatiser
    Si ton email est entièrement automatique tu pourrais plutôt le créer et l'envoyer avec Cdo et éventuellement te mettre en copie .
    Je suis bien content d être revenu à outlook mais regarde la
    http://www.developpez.net/forums/d12...s/#post7037562
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 84
    Par défaut
    Bonjour Oliv,

    En fait, avant la macro que je suis en train de réaliser, une autre macro s'occupe du découpage d'un fichier selon les différentes valeurs présente dans une colonne. Elle découpe et met dans des dossier ensuite les classeurs proposant cette valeur (ex: dans ma colonne nom, j'ai plusieurs Dupont, des Dupond, et des Dupons. Ça me créer des classeurs avec ces nom pour libellé, rangé dans des répertoires du même nom.) Ma mission est donc d'envoyer ces données découpée, aux personnes concerné (ex: Mon fichier Dupont est à envoyé à charlotte@bla.fr .... Dupond pour sylvain@bla.fr etc).
    Et ça n'envoie pas Automatiquement le mail, mais le laisse en mémo, afin de pouvoir ajouter des modifications (pour change le corps du texte par exemple)

    Mais merci de ton conseil, je ne connais pas CDO, je vais voir ton lien et reviendrait plus tard pour parler de mon avancement.


    cordialement, arkhang.

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 84
    Par défaut
    Merci Oliv !

    Le lien que tu m'as donné m'a fait grandement avancé.
    Je continue à travailler sur mon code car je n'ai pas tout à fait terminer, mais je peux clore ce topic, mon premier problème étant résolu.

    Encore une fois, merci !

    Cdt, Arkhang

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

Discussions similaires

  1. [FAQ]Extraire les mails de la boîte de reception avec Lotus Notes
    Par Coin dans le forum Vos contributions VB6
    Réponses: 7
    Dernier message: 11/07/2013, 15h41
  2. champs objet sous lotus notes 6.5
    Par benoit1983 dans le forum Lotus Notes
    Réponses: 2
    Dernier message: 25/08/2010, 22h24
  3. [HTML] Table sous Lotus Note
    Par drizztoli dans le forum Balisage (X)HTML et validation W3C
    Réponses: 0
    Dernier message: 10/03/2008, 13h33
  4. Problème sous Lotus Notes
    Par DidierSAN dans le forum Lotus Notes
    Réponses: 3
    Dernier message: 07/03/2008, 12h27
  5. Flux http sans utiliser de servlet (pb java sous Lotus Notes)
    Par berjaoui dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 08/02/2007, 13h25

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