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

Excel Discussion :

Envoi de mail par Excel : problème avec les destinataires


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Envoi de mail par Excel : problème avec les destinataires
    Bonjour amis Exceliens,

    Voilà depuis quelques jours que je tourne en rond, en effet, j'utilise un code pioché sur internet, et c'est nickel, il correspond exactement à mon besoin, mais j'arrive pas à lui faire dire d'aller chercher la liste des destinataires (env. 50 personnes), ça marche super bien avec 1 destinataires, mais dés qu'il faut chercher, en créant un objet, ou une variable sur la ligne Item To : paff.... ça bloque.

    Si quelqu'un a une idée je suis preneur.... là je sèche... Merci par avance de votre aide précieuse.

    Voici le code en question.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    dim destinataires as object
    destinataires=sheets("Destinataires").range("A1:A55")
    
    ActiveSheet.Range("A1:J50").Select 
    ActiveWorkbook.EnvelopeVisible = True
     
    With ActiveSheet.MailEnvelope
        .Item.To = destinataires
        .Item.Subject = "Recap du moi"
        .Item.Send
    End With
    End Sub

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    As-tu déclaré la variable destinataire ? Quel est son type ?
    Tu dois transformer ton tableau "A1:A55") en une seule chaîne de caractères contenant toutes les adresses mail séparées par des ";".

    Cordialement,

    PGZ

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Bonjour PGZ,

    Tout d'abord merci d'avoir répondu à mon SOS.

    Oui j'ai nommé ma variable comme object, donc si je comprends ce que tu me dis, je dois concatener l'ensemble des adresses mail dans une seule cellule. Ok, moi ça me va, par contre, pour que la ligne Item To: fonctionne, tu crois que le fait de déclarer la variable comme "dim destinataires as object" est une bonne idée ??

    MErci encore de ton aide.

  4. #4
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Auracle68,

    Il faut bien faire attention au type de variable. Pour alimenter la propriété To, il te faut une variable de type chaîne.
    Ton code pourrait ressembler à ceci :
    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
    Sub subEnvoiEmail()
    '...
    Dim vDestinataire As Variant, i As Integer
    Dim sDestinataire As String
     
    '...
     
    vDestinataire = ThisWorkbook.Worksheets("Destinataires").Range("A1:A55")
     
    For i = 1 To 55
        If Not IsEmpty(vDestinataire(i, 1)) Then sDestinataire = sDestinataire & ";" & vDestinataire(i, 1)
    Next i
     
    If sDestinataire <> vbNullString Then
        sDestinataire = Mid$(sDestinataire, 2)
        '...
     
        With ActiveSheet.MailEnvelope
            .Item.To = sDestinataire
            '...
        End With
    End If
     
    '...
     
    End Sub
    La boucle For... Next sert à créer à créer la chaîne de caractères à partir de la liste des adresses. On ne peut pas utiliser Join car même si tu n'as qu'une colonne, une plage a toujours 2 dimensions, et vDestinataire aussi.

    Cordialement,

    PGZ

  5. #5
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    En complément, tu peux utiliser ".Item.Recipients.Add" au lieu de ".Item.To" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim C As Range
    With ActiveSheet.MailEnvelope
        For Each C In Sheets("Destinataires").Range("A1:A55")
            If C.Value <> "" Then .Item.Recipients.Add C.Value
        Next C
    '...

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Merci a vous 2 pour votre aide précieuse. Merci encore

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

Discussions similaires

  1. [XL-2010] Envoi mail par excel avec boucle pour tous les champs
    Par jul2012 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/11/2012, 14h54
  2. VSTO EXCEL : problèmes avec les shapes.
    Par Frogman21 dans le forum VSTO
    Réponses: 0
    Dernier message: 17/08/2011, 12h58
  3. Réponses: 1
    Dernier message: 03/06/2009, 16h14
  4. Envoi mail par excel avec thunderbird
    Par siderfan49 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/09/2008, 10h09
  5. Réponses: 4
    Dernier message: 03/01/2007, 21h25

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