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 :

Envoi email automatique depuis boite mail partagée [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2016
    Messages : 54
    Par défaut Envoi email automatique depuis boite mail partagée
    Bonjour à tous,
    J'ai fait le code ci-dessous pour envoyer des emails en copiant les infos de la cellule B1 de la feuille "Feuil1".
    Et je souhaiterais modifier le code avec les conditions suivantes:

    Changer l'adresse de l'expéditeur (actuellement moi en le remplaçant par notre adresse de boite mail partagée).
    Mettre une condition de ne pas envoyer de mail si la cellule B1 est vide.
    Avoir également la possibilité de programmer un envoi automatique de mail cellule B1 "Feuil1" toutes les 30' si elle n'est pas vide.


    D'avance merci beaucoup pour votre aide.
    Muret

    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
    [Sub mail_outlook_B1() 'début du programme 'mail_outlook_debutant'
     
    Dim OutApp As Object 'Déclaration de l'application objet Outlook
    Dim OutMail As Object 'Déclaration du mail objet Outlook
     
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
     
     
    With OutMail 'début de la boucle
        .To = "abc@xxx" 'champ envoyer à
                                             'ne pas oublier les "" lorsque le texte est écrit 'en dur'
                                             'séparer les adresses mail par un ;
        .CC = "def@xxx" 'champ mail en copie
        .BCC = "" 'champ mail en copie caché
        .Subject = "MET" 'champ du sujet du mail
        .Body = Worksheets("Feuil1").Range("B1") & vbCrLf & ""
                'champ du corps du mail
                ' ajouter & vbCrlF & pour aller à la ligne entre deux valeurs
     
        '.Display 'affiche le mail en brouillon dans Outlook, pratique
                 'pour vérifier avant d'envoyer
        .Send 'envoie directement le mail
        '.Save 'sauvegarde le mail
     
    End With 'fin de la boucle
     
    Set OutMail = Nothing 'nettoie la mémoire en nettoyant les variables
    Set OutApp = Nothing 'nettoie la mémoire en nettoyant les variables]

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 438
    Par défaut
    Bonjour,

    Pour ce qui est de l'envoi automatique toutes les 30 minutes, vous pouvez lancer cette macro:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub EnvoiAuto()
        If Worksheets("Feuil1").Range("B1") <> "" Then
            mail_outlook_B1
        End If
        Application.OnTime Now() + TimeValue("00:30:00"), "EnvoiAuto"
    End Sub
    Pour ce qui est de mettre comme expéditeur la boite mail partagée, vous pouvez essayer d'ajouter ceci (qui ne marche que si Outlook est configuré pour vous le permettre):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        With OutMail
            .SentOnBehalfOfName = "xyz@xxx"     '--- expéditeur
            .To = "abc@xxx"
            '...
    Cordialement.

    Note: si vous avez plusieurs fichiers Excel ouverts simultanément, vous avez aussi intérêt à préciser ThisWorkbook.Worksheets("Feuil1").Range("B1")

  3. #3
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2016
    Messages : 54
    Par défaut
    Bonjour Eric,
    Tout fonctionne!
    Merci beaucoup pour le temps accordé.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/04/2016, 16h38
  2. boite mail partagée Outlook web access
    Par macfly95 dans le forum Outlook
    Réponses: 0
    Dernier message: 03/10/2013, 19h20
  3. Passerelle SMS d'envoi et réception depuis E-Mail
    Par josse34 dans le forum Langages serveur
    Réponses: 2
    Dernier message: 29/01/2013, 10h29
  4. Envoie de Newsletter sur boite mail !
    Par Invité dans le forum Langages serveur
    Réponses: 5
    Dernier message: 05/07/2011, 11h38
  5. [XL-2000] Envoi email automatique grâce à smtp
    Par Flo90 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/05/2009, 13h27

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