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 de Mail VIA VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    DATAMINER
    Inscrit en
    Novembre 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : DATAMINER
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2014
    Messages : 147
    Points : 77
    Points
    77
    Par défaut Envoi de Mail VIA VBA
    Bonjour,

    J’ai une petite problématique
    J’ai besoin de faire une envoi automatique d’in mail OUTLOOK via VBA mais a condition avant l’envoi j’ai besoin de compresse le fichier en RAR vu la taille importante du fichier
    Ci-dessous le scripte vous pouvez voir si il y a une partie a ajouter encore une chose j’ai besoin de laisse le fichier sur la feuille Accueil par défaut lors de l’envoi :

    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 mailchat()
    Dim Ol As New Outlook.Application
    Dim OlMail As MailItem
    Dim CurrFile As String
    Dim ListeDEST As String
    Dim ListeCC As String
     
    Worksheets("TCD").Activate
    Sheets("TCD").Visible = True
    ActiveSheet.Range("A1:D36").Select ' la plage de cellules à envoyer
    ActiveWorkbook.EnvelopeVisible = True
    With ActiveSheet.MailEnvelope
        .Introduction = ""
        .Item.To = Sheets("TCD").Range("U1")
        .Item.CC = Sheets("TCD").Range("U2") & (";") & Sheets("TCD").Range("U3") & (";") & Sheets("TCD").Range("U4")
        .Item.Subject = " Dépassement de pause CHAT "
        .Item.Send
        MsgBox " Votre alerts à été envoyé à l'ensemble des encadrants " & vbCr & " Merci "
        ThisWorkbook.Save
    End With
    End Sub

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, voir ici, en l'adaptant à ton contexte pour l'envoi via CDO ( ici un PDF mais cela peut être n'importe quel fichier )

    pour zipper un fichier voir la FAQ, sinon il y a aussi 7zip ( le plus performant de tous pour le taux de compression )

  3. #3
    Membre régulier
    Homme Profil pro
    DATAMINER
    Inscrit en
    Novembre 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : DATAMINER
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2014
    Messages : 147
    Points : 77
    Points
    77
    Par défaut
    Apparemment j’ai pas de réponse à ma problématique sauf que j’ai trouvé une solution alternatif pour l’envoi de mail sauf que je suis bloqué sur une partie
    J’ai deux feuille (mail) et (Accueil) lors de l’envoi j’ai besoin de masque tous les feuilles et mettre le classeur sur la feuille accueil par défaut pour que lors de l’envoi le client accède à partir du mail directement à la partie ACCEUIL
    Il y a-t-il une solution ??

    ci dessous mon code utilisé :

    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
    Sub mailchat()
    Dim Ol As New Outlook.Application
    Dim OlMail As MailItem
    Dim CurrFile As String
    Dim ListeDEST As String
    Dim ListeCC As String
     
    Worksheets("Mail").Activate
    Sheets("Mail").Visible = True
    ActiveSheet.Range("A1:F32").Select ' la plage de cellules à envoyer
    ActiveWorkbook.EnvelopeVisible = True
    With ActiveSheet.MailEnvelope
        .Introduction = ""
        .Item.To = Sheets("Mail").Range("U1")
        .Item.CC = Sheets("Mail").Range("U2") & (";") & Sheets("Mail").Range("U3") & (";") & Sheets("Mail").Range("U4")
        .Item.Subject = " Flash Prod "
        .Item.Attachments.Add ActiveWorkbook.FullName
        .Item.Send
        MsgBox " Votre Reporting à été envoyé à l'ensemble des encadrants " & vbCr & " Merci "
         Sheets("Mail").Visible = False
         Sheets("Accueil").Visible = True
        ThisWorkbook.Save
    End With
    End Sub

  4. #4
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    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 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    tout ce qu'il te faut est déjà dans ton code quasiment

    il faut ajouter une ligne d'enregistrement du classeur juste après

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
         Sheets("Mail").Visible = False
         Sheets("Accueil").Visible = True
    et positionner ces trois lignes de code en dessous de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    .Item.Subject = " Flash Prod "

    Ps : éviter au maximum les "ActiveWorkbook" et "ActiveSheet" et plutôt faire référence explicitement aux objets

  5. #5
    Membre régulier
    Homme Profil pro
    DATAMINER
    Inscrit en
    Novembre 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : DATAMINER
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2014
    Messages : 147
    Points : 77
    Points
    77
    Par défaut
    on ajouter les deux lignes en dessous de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Item.Subject = " Flash Prod "
    j'ai un message d'erreur debocage

    tu pense que normal

    le but pour moi si d'affiche la feuille ACCEUIL en piece joint au lieu de la feuille Mail ou il y a le parametrage de l'envoi de main automatique
    je vois les choses simple mais j'arrive pas !!

  6. #6
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    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 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Quel est le message d'erreur, et sur quelle ligne ??

    Attention, là on masque "Mail" avant d'afficher "Accueil"

    Si la feuille "Mail" était la seule feuille visible, c'est normal qu'il y ai erreur : impossible d'avoir 0 feuille visible

    Inverse les deux lignes et regarde si c'est ok :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Sheets("Accueil").Visible = True
    Sheets("Mail").Visible = False

  7. #7
    Membre régulier
    Homme Profil pro
    DATAMINER
    Inscrit en
    Novembre 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : DATAMINER
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2014
    Messages : 147
    Points : 77
    Points
    77
    Par défaut
    Ça marche maintenait sauf que j’ai le contenu de la page accueil sur le corps du mail juste une image
    L’essentielle pour moi de prendre le contenu de la feuille (mail) et lors de l’envoi en pièce joint je garde la feuille (Accueil) par défaut comme ça mon client va voir la feuille accueil ou j’ai l’interface

  8. #8
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    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 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Normalement tu devrais trouver ton bonheur ici : http://excel.developpez.com/faq/?page=Messagerie


    J'ai un peu de mal à comprendre ce que tu souhaites réellement.

  9. #9
    Membre régulier
    Homme Profil pro
    DATAMINER
    Inscrit en
    Novembre 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : DATAMINER
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2014
    Messages : 147
    Points : 77
    Points
    77
    Par défaut
    Je vous expliquez
    J’ai un fichier avec plusieurs feuilles, sur la feuille accueil j’ai juste une interface avec des boutons qui peut jouer entre les feuille. Et sur la feuille Mail j’ai bien mis le corps du mail avec un tableau et ma signature Outlook et une phrase avec la date du jour.
    alors ci dessous la partie ou le code cherche la feuille Mail pour recupere le corps du mail et les phrases et ma signature

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Worksheets("Mail").Activate
    Sheets("Mail").Visible = True
    ActiveSheet.Range("A1:F32").Select ' la plage de cellules à envoyer
    après j'active l'enveloppe pour envoyer le mail avec les destinataires et l’Object :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With ActiveSheet.MailEnvelope
        .Introduction = ""
        .Item.To = Sheets("Mail").Range("U1")
        .Item.CC = Sheets("Mail").Range("U2") & (";") & Sheets("Mail").Range("U3") & (";") & Sheets("Mail").Range("U4")
        .Item.Subject = " Flash Prod "
    juste après j'ai besoin de masque la feuille Mail vu que j'ai bien récupère tous les donnes et affiche la feuille accueil pour attache le fichier et l'envoyé comme ça le client aura sur un mail un tableau avec une phrase que j'ai mis et ma signature et sur le fichier l'interface

    NB : que le bouton pour exécuter la macro et bien implanté sur la feuille accueil

    J’espère que j’étai bien claire

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

Discussions similaires

  1. [XL-2007] VBA Excel - envoi de mail via Outlook
    Par Seg_B dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/10/2011, 12h08
  2. [XL-2003] Envoi mail via vba - outlook 2003
    Par NELAIN dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/04/2009, 15h54
  3. envoie de donnée par mail via vba
    Par swissmade dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/08/2007, 11h43
  4. [VBA] Envoie de mail via outlook
    Par sperchey dans le forum Access
    Réponses: 7
    Dernier message: 21/02/2007, 16h35
  5. Envoi de mail via un macro vba sur excel
    Par momolamoto dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/12/2005, 18h51

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