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 :

Envoie mail via un bouton


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 396
    Points : 127
    Points
    127
    Par défaut Envoie mail via un bouton
    Bonjour,
    ce code envoie un mail en fichier attaché la feuille active sur l'écran.
    Au lieu d'envoyer la feuille active j'aimerai spécifier le nom d'une autre feuille.
    Comment l'intégrer au code ?
    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
    Sub envoiepogoPDF() 'envoie par mail avec fichier attaché en PDF
    'déclaration des variables
    Dim Wb As Workbook 'la feuille contenant la demande
    Dim FileName As String
    Dim OutlookApp As Object 'outlook comme messagerie
    Dim OutlookMail As Object
    Dim Masignature As String 'ma signature mail
    On Error Resume Next
    Set Wb = Application.ActiveWorkbook
    FileName = Wb.FullName
    xIndex = VBA.InStrRev(FileName, ".")
    If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
    FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
    ActiveSheet.PageSetup.Orientation = xlLandscape
    Set OutlookApp = CreateObject("Outlook.Application")
    Set OutlookMail = OutlookApp.CreateItem(0)
    OutlookMail.Display 'On affiche le mail
    Masignature = OutlookMail.HTMLBody 'on recupere la signature
    With OutlookMail
        .Subject = "Livraison POGO"     'sujet
        .HTMLBody = "<div style=""font-family: Arial; font-size:13"">Bonjour," & "<br><br>" & _
                    "en fichier attaché les délais de livraison des POGOs." & "<br><br>" & _
                    "Cordialement," & Masignature & "</div>"            'mail & signature
        .Attachments.Add FileName                   'attaché la demande
        .Display                                    'voir le mail
    End With
    Kill FileName
    Set OutlookMail = Nothing   'nettoie la mémoire en nettoyant les variables
    Set OutlookApp = Nothing    'nettoie la mémoire en nettoyant les variables
    End Sub
    Merci

  2. #2
    Membre éclairé Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 395
    Points : 694
    Points
    694
    Par défaut
    Bonjour,
    Peut-être en passant le nom de la feuille en argument
    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
    '@Description "Envoie par mail avec fichier attaché en PDF"
    Sub EnvoiePogoPDF(ByVal Feuille As String, Optional ByRef Classeur As Excel.Workbook)
        If Classeur Is Nothing Then Set Classeur = ThisWorkbook ' Ou bien : ActiveWorkbook
        On Error Resume Next
        With Classeur
            Dim FileName As String
            FileName = Left$(.FullName, InStr(1, .FullName, ".", vbTextCompare))
            FileName = FileName & "_" & Feuille & ".pdf"
            .Worksheets(Feuille).ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
            .Worksheets(Feuille).PageSetup.Orientation = xlLandscape
        End With
     
        Dim OutlookApp As Object
        Set OutlookApp = CreateObject("Outlook.Application")
        Dim OutlookMail As Object
        Set OutlookMail = OutlookApp.CreateItem(0)
     
        OutlookMail.Display                          'On affiche le mail
        Dim Masignature As String
        Masignature = OutlookMail.HTMLBody           'on recupere la signature
        With OutlookMail
            .Subject = "Livraison POGO"              'sujet
            .HTMLBody = "<div style=""font-family: Arial; font-size:13"">Bonjour," & "<br><br>" & _
                                                                                 "en fichier attaché les délais de livraison des POGOs." & "<br><br>" & _
                                                                                 "Cordialement," & Masignature & "</div>" 'mail & signature
            .Attachments.Add FileName                'attaché la demande
            .Display                                 'voir le mail
        End With
        Kill FileName
        If Not OutlookMail Is Nothing Then Set OutlookMail = Nothing 'nettoie la mémoire en nettoyant les variables
        If Not OutlookApp Is Nothing Then Set OutlookApp = Nothing 'nettoie la mémoire en nettoyant les variables
    End Sub
    Et pour l'appel soit :
    Soit pour toutes les feuilles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Sub TestEnvoieMail()
        Dim itemSheet As Excel.Worksheet
        For Each itemheet In ThisWorkbook.Worksheets
            EnvoiePogoPDF itemSheet.Name
        Next itemSheet
    End Sub
    Ou bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Sub TestEnvoieMail1()
        Dim itemSheet As Variant
        For Each itemSheet In VBA.Array("P2106", "P2107", "P2108")
            EnvoiePogoPDF itemSheet
        Next itemSheet
    End Sub
    Jean-Paul sous Office 365 et Windows 10/11 (Intel I7 16Go)

    Si vous avez trouvé réponse à votre question penser à la passer en Vous avez aimé la discussion alors un fait toujours plaisir.
    Le savoir n'a de valeur que s'il est partagé.
    La vérité de demain se nourrit de l'erreur d'hier. Antoine de Saint-Exupéry

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 396
    Points : 127
    Points
    127
    Par défaut
    Bonjour Valtrase
    Merci je vais essayer

  4. #4
    Membre du Club
    Homme Profil pro
    Retraité - Bénévole
    Inscrit en
    Octobre 2018
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Retraité - Bénévole
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2018
    Messages : 78
    Points : 52
    Points
    52
    Par défaut
    Bonjour Chartreuse
    J'ai un besoin similaire d'envoi de mail (sans pièce jointe) mais depuis xlsx (vers 2016 - Windows 10 Famille)
    J'utilise Gmail comme messagerie mais j'ai cru comprendre que Google interdit aujourdhui ce genre de transfert. Pour le besoin de la manip, j'ai essayé de passer par la version gratuit de Outlook web;
    Je galère depuis plusieurs jours avec l'éclairage de Chat GPT mais sans déboucher.
    J'ai compris que votre sujet avait été résolu, aussi je me permets de m'adresser à vous:
    1° avez-vous une version installée de Outlook ou comme moi faites vous appel à la version web ?
    2° auriez-vous la gentillesse de partager votre solution si elle fonctionne ?
    Je suis preneur de toute recommandations.
    Merci par avance
    Bien cordialement
    Ozabois

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

Discussions similaires

  1. Envoie d'un fichier excel par mail via un bouton d'action
    Par babuf dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 01/06/2017, 12h08
  2. Envoie Mail via Nescape et thunderbird
    Par foxer98 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/07/2007, 13h47
  3. Envoi mail via telnet
    Par Bourriquette dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 14/03/2007, 10h03
  4. procedure envoie mail via OUTLOOK
    Par laurent1 dans le forum Oracle
    Réponses: 13
    Dernier message: 22/10/2006, 10h16
  5. Envoie d'un fichier excel par mail via un bouton d'action
    Par ghostal dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/07/2006, 08h22

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