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 :

Envoyer un mail à plusieurs destinataires à choisir dans une liste [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juin 2021
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2021
    Messages : 9
    Par défaut Envoyer un mail à plusieurs destinataires à choisir dans une liste
    Bonjour,

    Je viens de créer un fichier qui, une fois complété par une personne, va intéresser une ou plusieurs autres personnes.
    Il convient donc de les informer de la création ou de la mise à jour de ce fichier partagé sur le réseau.

    Je souhaite donc faciliter l'envoi (presque) automatique d'un mail pré-rempli aux utilisateurs sélectionnés (nous utilisons Zimbra).

    Pour cela, j'ai utilisé la fonction suivante :
    Code formule : Sélectionner tout - Visualiser dans une fenêtre à part
    =LIEN_HYPERTEXTE("mailto:"&D11&"?cc="&D12&"&subject="&D13&"&body="&D14;"envoyer le mail")

    Mon soucis, c'est D11 et D12 sont "fixes" et que j'aimerai pouvoir, à partir d'une liste ajouter d'autres adresses si nécessaire.
    A mon niveau, facile s'il n'y a qu'une personne, mais comment créer une macro qui ajouterait à la cellule D11 l'adresse mail 001@xxx.com si D11 n'est pas vide et contient déjà une autre adresse mail ?
    Si D11 n'est pas vide, il faudrait conserver l'adresse déjà présente, en séparant par ";"

    Les adresses sont dispo dans un tableau H9:I46 qui comprend nom prénom en colonne H puis l'adresse correspondante en colonne I.

    Je ne sais pas si ma demande est très claire...

    Merci aux bonnes volontés qui pourront me proposer des pistes !

    JiBé

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2021
    Messages
    334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2021
    Messages : 334
    Par défaut
    Salut,si tu veux partir sur du vba tu peux faire l'envoi d'un mail programmé avec l'ajout variable de contacts dans a partir d'une liste fixe.

    Tu peux même si tu le souhaite reproduire l’envoi d'un vrai mail avec un UserForm

  3. #3
    Membre habitué
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juin 2021
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2021
    Messages : 9
    Par défaut
    Bonjour ChristianBosch !

    Merci de ton retour, un userform serait parfait, mais je n'imagine pas du tout comment m'y prendre.

    Aurais-tu des pistes, ou carrément une base à me fournir pour que je tente d'adapter à mes besoins ?

    Merci et bonne journée

  4. #4
    Membre chevronné
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2021
    Messages
    334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2021
    Messages : 334
    Par défaut
    Salut, voila un exemple que je viens de créer :

    Envoie mail.xlsm

    Pour expliquer :

    Tu as une feuille qui contient un tableau avec toutes les adresses enregistrées, tu peux choisir d'en enlever ou d'en rajouter. Par contre si tu l’enlève ça la retire du tableau et il faudra la remettre si tu veux qu'elle soit présente par la suite. Sur le même principe tu peux faire plusieurs listes (tableaux) en fonction de tes besoins, que tu viendrait sélectionner avec une listbox (qu'il faudrait rajouter).

    Un onglet "valeurs par defaut" te permet de régler les valeurs de remplissage par défaut des textbox sujet et corps

    Au niveau du code, tu as une feuille contenant ton USF, une listview pour afficher les adresses mail et 2 textbox pour sujet et coprs. Tout se rempli à l'initialisation mais tu peux décider de modifier avant envoi.

    En suite tu as un module de fonctions, elle permettent de faire pas mal de choses, notamment remplir la listview, ajouter/supprimer une adresse dans le tableau, envoyer le mail et enfin créer la mailinglist

  5. #5
    Membre chevronné
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2021
    Messages
    334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2021
    Messages : 334
    Par défaut
    J'ai refait quelque chose qui correspond mieux a ce que tu veux :

    En fait ici tu as une liste de mail fixe. Dans l'USF tu peux sélectionner ou supprimer ceux que tu veux ajouter ou enlever

  6. #6
    Membre habitué
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juin 2021
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2021
    Messages : 9
    Par défaut
    Whhaaou !

    Ce serait génial de mettre cela en place, je te remercie vivement.

    Malheureusement, lorsque je tente de l'utiliser en cliquant sur OUVRIR LE MAIL, j'obtiens un message d'erreur :

    "Erreur de compilation, membre de méthode ou de données introuvable"

    J'imagine que c'est lié à cette ligne : CreateObject("Outlook.Application")
    car j'utilise zimbra, je n'ai pas outlook sur ma machine...

    saurais-tu contourner ce problème ?

  7. #7
    Membre chevronné
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2021
    Messages
    334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2021
    Messages : 334
    Par défaut
    Re, alors la c'est un poil plus compliqué, il faut passer par un serveur d'authentification de ta boite mail (Zimbra)

    Dans cet exemple on passe par un smtp laposte.net, je ne connais pas les paramètres smtp de zimbra (ca doit etre "smtp.zimbra.com") ni le numéro de port (ca doit etre le meme), il faudra te débrouiller pour ça.

    Voici en gros la fonction d'envoi via les références CDO de microsoft (bibliothèque qu'il te faut activer s'appelant "Microsoft CDO for windows 2000 Library")

    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
    Function envoie_mail_CDO(subject As String, body As String, DstList As String)
    Dim oCdo As Object
     
    Set oCdo = CreateObject(“CDO.Message”)
     
    With oCdo
     
        With .Configuration.Fields
            .item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.laposte.net"     ' FQDN ou IP du serveur SMTP
            .item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 ' port utilisé
            .item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
            .item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1           '‘S’authentifier
            .item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = "true"
            .item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "mail"              ' Si autentifié le nom d'utilisateur
            .item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "psw"              ' Si authentifié le mot de passe
            .Update
        End With
        .From = "mail"                                                            ' adresse de l'expéditeur
        .subject = subject
        .To = DstList ' adresse du destinataire
        .TextBody = body
        .Send
    End With
     
    End Function
    Une fois que tu aura modifié tous les paramètres pour ta boite mail zimbra il te faudra changer la fonction d'envoi dans l'USF ici (les paramètres restent les mêmes au même endroit, seul le nom de la fonction change) :

    Nom : Capture code mail.JPG
Affichages : 697
Taille : 70,5 Ko

    Pour ce code je me suis basé sur le site suivant qui te donne des explications complémentaires :
    https://tutoriels.pecaudchristopher....emplateVBA.php

    Voila a toi d'aller chercher les infos, si tu arrives a les avoir et que tu galère a les mettre dans le code je pourrais t'aider.

    Bon courage

    CB

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

Discussions similaires

  1. Envoyer un mail à plusieurs destinataires avec @MailSend
    Par Chipniz dans le forum Lotus Notes
    Réponses: 1
    Dernier message: 13/01/2020, 17h01
  2. Réponses: 22
    Dernier message: 07/09/2017, 16h33
  3. [SP-2010] Workflow pour envoyer un mail à un contact stocké dans une autre liste
    Par Kael_004 dans le forum SharePoint
    Réponses: 16
    Dernier message: 23/04/2014, 16h42
  4. [Javamail] Envoyer un mail à plusieurs destinataires
    Par leafea dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 03/01/2014, 17h10
  5. Réponses: 2
    Dernier message: 26/10/2006, 21h38

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