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 des destinataires (CC) avant d'envoyer un mail


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut ajouter des destinataires (CC) avant d'envoyer un mail
    Bonjour le Forum,

    je voudrais savoir le code qui me permettrai d'ajouter des destinataires en copie (CC) avant d'envoyer mon mail.Le "Recipent.add" permet uniquement d'ajouter des destinataires principales et non pas en copies.

    Merci pour votre aide.

  2. #2
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut
    Bonjour LANGAZOU

    De mémoire c'est CC.Add (non testé)

  3. #3
    Invité
    Invité(e)

  4. #4
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut
    salut,

    Mr antonysansh , non ça ne fonctionne pas avec "CC.add ".

    Mr rdurupt , je travaille sous EXCEL 2010.

    Merci.

  5. #5
    Invité
    Invité(e)
    Par défaut
    ma question ne portais pas sur la version d'Excel, mais sur le client lourd (logiciel Mail).
    pour Outlook ou Cdo la réponse est dans le lien!
    Dernière modification par AlainTech ; 07/02/2016 à 14h33. Motif: Suppression de la citation inutile

  6. #6
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut
    salut,

    c'est pour OUTLOOK.

    Merci

  7. #7
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut
    Donc Rdurupt et moi t'avons déjà répondu.

    Regarde dans la propriété .CC de ton objet MailItem
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With MonMail
        .CC = "copiecache@mail.truc"
    End With

  8. #8
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut
    re bonjour,

    Merci de noter que ma macro (sous Excel) répond automatiquement à un mail déjà sélectionné sur OUTLOOK(MailOutLook = ObjCurrentMessage.ReplyAll). par conséquent lorsque j'utilise le ".CC = "copiecache@mail.truc"" elle efface toutes les destinataires en copie en gardant uniquement "copiecache@mail.truc".mon but c'est d'ajouter des destinataires (en gardant les destinataires en copie du mail sélectionné).

    Merci de votre retour.

  9. #9
    Invité
    Invité(e)
    Par défaut
    normal .CC correspond au destinataire en copy pas en copy cache!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .BCC= "copiecache@mail.truc""
    si tu avais regardé mon lien tu l’aurais vu!
    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
    With MailObj
        .To = Destinataire
        .CC = DestinataireCopy
        .BCC = DestinataireCopyCacher
        .Subject = Sujet
        .BodyFormat = 2
        .HTMLBody = Message
        If Trim("" & Pj) <> "" Then
            p = Split(Pj & ";", ";")
            For i = 0 To UBound(p)
                If Trim("" & p(i)) <> "" Then .Attachments.Add Trim("" & p(i))
            Next
        End If
        '.Display 'Can be .Send but prompts for user intervention before sending without 3rd party software like ClickYes
        .Send
    End With

  10. #10
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut
    slt,

    vous n'avez pas compris ma demande.mon but c'est d'ajouter des destinataires en copie et non pas cachés (en gardant les destinataires en copie du mail sélectionné).

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par LANGAZOU Voir le message
    re bonjour,

    Merci de noter que ma macro (sous Excel) répond automatiquement à un mail déjà sélectionné sur OUTLOOK(MailOutLook = ObjCurrentMessage.ReplyAll). par conséquent lorsque j'utilise le ".CC = "copiecache@mail.truc"" elle efface toutes les destinataires en copie en gardant uniquement "copiecache@mail.truc".mon but c'est d'ajouter des destinataires (en gardant les destinataires en copie du mail sélectionné).

    Merci de votre retour.
    désolé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .CC= .CC & ";copiecache@mail.truc"

  12. #12
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut
    Merci beaucoup c'est ce que je cherchais ;-)

    une dernière question: Comment faire pour empêcher le add du " .CC= .CC & ";copiecache@mail.truc " si l'adresse mail existe déjà parmi les destinataires en copies ?

    Merci infiniment.

  13. #13
    Invité
    Invité(e)
    Par défaut
    if instr(.cc,"copiecache@mail.truc") =0 then .cc=.cc & ";copiecache@mail.truc "

  14. #14
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut
    Bonjour rdurupt,


    J'ai essayé ta proposition mais ça ne marche pas si l’adresse mail se trouve au milieu des destinataires CC. j'ai fait cette modification mais ça ne fonctionne toujours pas :/


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If InStr(1, MailOutLook.CC, "copiecache@mail.truc", vbTextCompare) = 0 Then
     
    MailOutLook.CC = .CC & ";copiecache@mail.truc>"
     
    End If

    Merci.

  15. #15
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    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 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Bonjour,

    .bcc ou . cc est une méthode rapide mais on peut aussi utiliser la méthode .recipients.add
    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
     
      Dim objRecipient As Outlook.Recipient
            'Ajout d'un destinataire principal
            Set objRecipient = .Recipients.add("toto@toto.com")
            objRecipient.Type = olTo    
            objRecipient.Resolve
     
            'Ajout d'un destinataire en copie
            Set objRecipient = .Recipients.add("titi@toto.com")
            objRecipient.Type = olCC    'olBCC, olCC, olOriginator ou olTo.
            objRecipient.Resolve
     
     
    'Ajout d'un destinataire en copie cachée
            Set objRecipient = .Recipients.add("titi@toto.com")
            objRecipient.Type = olBCC
            objRecipient.Resolve
    C'est pas forcément grave si ton destinataire est en double à priori il ne le recevra qu'une fois.

  16. #16
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut
    Bonjour Oliv-,

    J'espère que vous allez bien ;-)

    y'a t-il un moyen d'ajouter des destinataires en copie que s'ils n'existaient pas ?

  17. #17
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    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 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Re,
    tu ajoutes tes destinataires puis tu lances cette macro

    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
    Sub PurgeRecipients()
        Dim objOL As Outlook.Application
        Dim objMail As MailItem
        Dim MyRecips As Recipients
        Dim ThisRecip As Recipient
     
        Set objOL = CreateObject("Outlook.Application")
        Set objMail = objOL.ActiveInspector.CurrentItem
        Set MyRecips = objMail.Recipients
        Dim mondico As Object
        Set mondico = CreateObject("Scripting.Dictionary")
     
        For Each ThisRecip In MyRecips
            'eventuellement tester le Type olBCC, olCC, olOriginator ou olTo
            'If ThisRecip.Type = olTo Then MsgBox "A:" & ThisRecip & "-" & ThisRecip.Address
     
     
            If Not mondico.Exists(ThisRecip.Address) Then
                mondico.add ThisRecip.Address, ThisRecip.Address
            Else    'doublon
                ThisRecip.Delete
            End If
        Next
     
    End Sub

  18. #18
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut
    Bonjour Oliv-,

    J'ai fait le call de votre macro (sans faire de modification) à la fin mais ça déboge ( Erreur de compilation: type défini par l'utlisateur non défini)

    Merci pour votre réponse.


    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
    Function GetCurrentItem() As Object
        Dim objApp As Object
     
        'Set objApp = Application
    Set objApp = CreateObject("Outlook.Application")
        On Error Resume Next
        Select Case TypeName(objApp.ActiveWindow)
            Case "Explorer"
                Set GetCurrentItem = objApp.ActiveExplorer.Selection.item(1)
            Case "Inspector"
                Set GetCurrentItem = objApp.ActiveInspector.CurrentItem
        End Select
     
        Set objApp = Nothing
    End Function
     
    Sub mail
     
    Dim objApp As Object
    Dim MailOutLook As Object
    Dim Fichier As String
    Dim rep_fic As String
    Dim strbody As String
     
    Set objApp = CreateObject("Outlook.Application")
     
    rep_fic = "C:/Desktop/Fichier"
     
    Set MailOutLook = ObjCurrentMessage.ReplyAll
     
    strbody = "<BODY style=font-size:12pt;font-family:Calibri> Bonjour, <br>" _
              & "<br>" _
              & "<BODY style=font-size:12pt;font-family:Calibri>Veuillez ... <br>" _
              & "<br>" _
              & "<BODY style=font-size:12pt;font-family:Calibri>Bonne réception." & "<br>" _
     
     
     
     
    With MailOutLook
     
    .Display
    .Subject = "Facture" 
    .CC = .CC & "TOTO @yahoo.fr"
    .Recipients.ResolveAll
    .HTMLBody = strbody & "<br>" & .HTMLBody
    .Attachments.Add rep_fic
     
    .Display
     
    End With
     
    Set MailOutLook = Nothing
    Set appOutLook = Nothing
     
    Call PurgeRecipients
     
    end sub

  19. #19
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    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 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Bonjour,
    Il faut un peu l'adapter :

    dans ta macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call PurgeRecipients (mailoutlook)

    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
    Sub PurgeRecipients(objMail As MailItem)
        Dim MyRecips As Recipients
        Dim ThisRecip As Recipient
     
        Set MyRecips = objMail.Recipients
        Dim mondico As Object
        Set mondico = CreateObject("Scripting.Dictionary")
     
        For Each ThisRecip In MyRecips
            'eventuellement tester le Type olBCC, olCC, olOriginator ou olTo
            'If ThisRecip.Type = olTo Then MsgBox "A:" & ThisRecip & "-" & ThisRecip.Address
     
     
            If Not mondico.Exists(ThisRecip.Address) Then
                mondico.add ThisRecip.Address, ThisRecip.Address
            Else    'doublon
                ThisRecip.Delete
            End If
        Next
     
    End Sub

  20. #20
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut
    re,

    Toujours le même erreur ( Erreur de compilation: type défini par l'utlisateur non défini) :/

Discussions similaires

  1. VBA OUTLOOK: Ajouter des destinataires "CC"
    Par LANGAZOU dans le forum VBA Outlook
    Réponses: 0
    Dernier message: 04/04/2015, 19h30
  2. VBA excel: Ajouter des zéros après une virgule
    Par kimai81 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 17/02/2008, 21h54
  3. [VBA Excel] Ajouter, supprimer une ligne ou collone range
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/11/2005, 15h53
  4. [VBA Excel] Fiabilité des controles Actives X
    Par Farbin dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/08/2005, 12h28
  5. [VBA-E] Ajouter des fonctions dans Excel
    Par Clezio dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/03/2004, 01h18

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