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 :

Ajouter destinataire dans l'envoi des mails automatique [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Novembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2016
    Messages : 5
    Par défaut Ajouter destinataire dans l'envoi des mails automatique
    Bonjour à tous et à toutes.

    J'ai un petit soucis sur Excel au travail,
    J'ai une maccro pour envoyer un mail automatiquement aprés modification d'aun tableau
    Cela fonctionne bien mais je souhaiterai l'envoyer à 4 personnes et là problèmes je n'y arrive pas
    j'ai essayée aprés SendTo de mettre les 4 adresses séparées d'un ; ou d'une , mais rien n'y fait il me met en erreur. Idem pour le CopyTo
    Quelqu'un pourrait m'expliquer svp?
    Je suis sur Lotus notes 8.5 en messagerie
    voici ma macro ci aprés
    Merci de votre aide
    Cordialement

    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
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim Session As Object
    Dim db As Object
    Dim doc As Object
     
    Set Session = CreateObject("Notes.NotesSession")
    Set db = Session.GETDATABASE("", "")
    Call db.OPENMAIL
     
    Set doc = db.CREATEDOCUMENT()
    With doc
        .Form = "Memo"
        .SendTo = "1adresse@xcel.fr"
        .CopyTo = "2adresse@excel.com"
        .Subject = "Alerte"
        .body = "merci de consulter le tableau alerte"
        .From = Session.COMMONUSERNAME
        .PostedDate = Now
        .SAVEMESSAGEONSEND = True
    End With
    Call doc.SEND(False)
     
    Set Session = Nothing
    Set db = Nothing
    Set doc = Nothing
    End Sub

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    il attend peut être un Array plutôt qu'un String ?


    si tu essayes comme ceci ?
    J'ai mis la conversion des destinataires en un Tableau sous forme de fonction, mais ce n'était pas nécessaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function DestinatairesEnArray(MaListe As String, MonSeparateur As String) As Variant
        DestinatairesEnArray = Split(MaListe, MonSeparateur)
    End Function
     
    Sub TestDestinataires()
    Dim MesDestinataires As String, Destinataires
        MesDestinataires = "toto@toto.fr,titi@titi.fr"
        Destinataires = DestinatairesEnArray(MesDestinataires, ",")
    End Sub
    Ici, c'est la variable Destinataires qu'il faut tenter de fournir à SendTo

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563

  4. #4
    Membre à l'essai
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Novembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2016
    Messages : 5
    Par défaut
    Désolé Unparia mais je ne gère pas l'anglais et la macro n'est pas du tout la même que la mienne et si je modifie je vais repartir dans des heures à essayer de comprendre
    je suis trés trés trés novice en macro

    Joelevrai merci de ta réponse, je dois coprier ton code à partir de ou dans ma macro existante??

    Merci

  5. #5
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    C'était bien un array à fournir


    sans savoir lire l'anglais, on devine sans mal que ceci devrait t'intéresser

    Also for multiple email addresses you just set MailDoc.sendto to an array of variants each of which will receive the message. So
    Dim recip(25) as variant
    recip(0) = "emailaddress1"
    recip(1) = "emailaddress2" e.t.c

    maildoc.sendto = recip
    tu remplaces 25 par le nombre de destinataires - 1
    et tu remplies chaque "position" de ce tableau avec l'adresse mail

  6. #6
    Membre à l'essai
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Novembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2016
    Messages : 5
    Par défaut
    Ok merci j'essaierai demain matin au travail.
    Bonne soirée à vous et merci de vos réponses.

  7. #7
    Membre à l'essai
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Novembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2016
    Messages : 5
    Par défaut
    Bonjour.
    Alors voilà j'ai fait au mieux avec la macro que vous m'avez donné mais ça ne fonctionne pas j'ai peut être taper un truc en trop ou en moins.
    Voici le copier coller exact de la macro que j'ai inséré
    Merci à vous.

    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
    'Public Sub SendNotesMail(Subject as string, attachment as string,
    'recipient as string, bodytext as string,saveit as Boolean)
    'This public sub will send a mail and attachment if neccessary to the
    'recipient including the body text.
    'Requires that notes client is installed on the system.
    Public Sub SendNotesMail(Subject As String, Attachment As String, Recipient As String, BodyText As String, SaveIt As Boolean)
    'Set up the objects required for Automation into lotus notes
        Dim Maildb As Object 'The mail database
        Dim UserName As String 'The current users notes name
        Dim MailDbName As String 'THe current users notes mail database name
        Dim MailDoc As Object 'The mail document itself
        Dim AttachME As Object 'The attachment richtextfile object
        Dim Session As Object 'The notes session
        Dim EmbedObj As Object 'The embedded object (Attachment)
        Dim recip(2) As Variant
        recip(0) = "1adresse@mail.com"
        recip(1) = "2adresse@mail.com"
     
        'Start a session to notes
        Set Session = CreateObject("Notes.NotesSession")
        'Next line only works with 5.x and above. Replace password with your password
        Session.Initialize ("password")
        'Get the sessions username and then calculate the mail file name
        'You may or may not need this as for MailDBname with some systems you
        'can pass an empty string or using above password you can use other mailboxes.
        UserName = Session.UserName
        MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
        'Open the mail database in notes
        Set Maildb = Session.GETDATABASE("", MailDbName)
         If Maildb.IsOpen = True Then
              'Already open for mail
         Else
             Maildb.OPENMAIL
         End If
        'Set up the new mail document
        Set MailDoc = Maildb.CREATEDOCUMENT
        MailDoc.Form = "Memo"
        MailDoc.sendto = recip
        MailDoc.Subject = Subject
        MailDoc.Body = BodyText
        MailDoc.SAVEMESSAGEONSEND = SaveIt
        'Set up the embedded object and attachment and attach it
        If Attachment <> "" Then
            Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment")
            Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment, "Attachment")
            MailDoc.CREATERICHTEXTITEM ("Attachment")
        End If
        'Send the document
        MailDoc.PostedDate = Now() 'Gets the mail to appear in the sent items folder
        MailDoc.SEND 0, Recipient
        'Clean Up
        Set Maildb = Nothing
        Set MailDoc = Nothing
        Set AttachME = Nothing
        Set Session = Nothing
        Set EmbedObj = Nothing
    End Sub

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

Discussions similaires

  1. Ajouter destinataire dans le mail
    Par Xilver dans le forum WinDev
    Réponses: 3
    Dernier message: 01/02/2016, 12h23
  2. Envoi de mail automatique depuis Excel + ajout condition temporelle
    Par l'acrobate dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/05/2012, 11h46
  3. [VB6]envoie de mail automatiquement
    Par riesseg dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 28/04/2006, 14h14
  4. Réponses: 14
    Dernier message: 17/11/2005, 17h16
  5. Envoi de mail automatique avec Visual C++
    Par cza dans le forum MFC
    Réponses: 2
    Dernier message: 22/02/2005, 15h59

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