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 :

VBA Macro Excel / Envoyer en PJ un onglet par mail (outlook)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Août 2016
    Messages : 2
    Par défaut VBA Macro Excel / Envoyer en PJ un onglet par mail (outlook)
    Bonjour à tous !

    Je débute en VBA et je voudrais envoyer par mail un onglet de mon classeur Excel. Cela est-il possible ?

    Pour le moment, j'ai constitué un code qui me permet d'envoyer en PJ le classeur en entier et de nommer la PJ suivant mon "thisworkbook.name".

    Code ci-dessous :


    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
    Sub Envoi()
     
    Dim MonOutlook As Object
    Dim MonMessage As Object
     
    ThisWorkbook.Sheets("feuil1").Select
     
    Set MonOutlook = CreateObject("Outlook.Application")
    Set MonMessage = MonOutlook.CreateItem(0)
     
    MonMessage.To = ""
    MonMessage.Cc = ""
    MonMessage.Subject = ""
    MonMessage.body = "
    MonMessage.Attachments.Add ActiveWorkbook.Path & "\" & ThisWorkbook.Name
    MonMessage.display
     
    Set MonOutlook = Nothing
     
    End Sub

    Merci de me donner un petit coup de pouce car je reste bloqué

    Cordialement,

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut
    je voudrais envoyer par mail un onglet de mon classeur Excel. Cela est-il possible ?
    Oui, mais a ma connaissance pas directement.

    Allume l'enregistreur de macro, copie ton onglet dans un nouveau classeur sauve le, puis éteint l'enregistreur.
    Tu aura alors la base du code rajouter à ta macro.

  3. #3
    Expert confirmé
    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
    Par défaut
    Salut, voir ici

  4. #4
    Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Août 2016
    Messages : 2
    Par défaut
    Re,

    Code terminé.

    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
    33
    Sub EnvoiMailavecPJ()
     
        Dim chemin As String, fichier As String
     
        chemin = ThisWorkbook.Path
        fichier = chemin & "\" & "Ordonnancement" & Range("A3") & ".xls"
     
    MsgBox "L'ordonnancement est prêt à être envoyé."
     
        ThisWorkbook.Sheets("Feuil1").Copy
        ActiveWorkbook.SaveAs Filename:=fichier
     
        Dim MonOutlook As Object
        Dim MonMessage As Object
     
        Set MonOutlook = CreateObject("Outlook.Application")
        Set MonMessage = MonOutlook.CreateItem(0)
     
            MonMessage.To = ""
            MonMessage.Cc = ""
            MonMessage.Subject = ""        
            MonMessage.body = "Bonjour," & _
                        Chr(13) & Chr(13) & "Veuillez trouver, ci-joint, l'ordonnancement ." & _
                        Chr(13) & Chr(13) & "Bonne réception."
     
            MonMessage.Attachments.Add ActiveWorkbook.FullName
            MonMessage.display
     
        ActiveWorkbook.Close
     
        Set MonOutlook = Nothing
     
    End Sub
    A+

  5. #5
    Membre du Club
    Homme Profil pro
    Qualité
    Inscrit en
    Août 2024
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Qualité

    Informations forums :
    Inscription : Août 2024
    Messages : 10
    Par défaut question
    Bonjour ,

    Merci pour ce code qui fonctionne très bien, cependant, je ne parviens pas à envoyer la PJ en PDF.
    Pouvez vous m'aider ?

    J'ai par ailleur ajouter en fin de code MonMessage.send, pour que le mail soit envoyé en automatique. c'est top.

    Merci

  6. #6
    Invité de passage
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2021
    Messages : 1
    Par défaut Re
    Salut KLUMERO,
    Ca fait longtemps que je n'ai pas codé ce type de macro, mais de mémoire (si elle ne me fait pas défaut) il faut indiquer au moins une adresse de destinataire : MonMessage.To = "mail1@mail.com" ; par habitude j'utilise toujours une variable pour transmettre une chaîne (Dim monFichier as String), donc je coderai : monFichier = ThisWorkbook.FullName, ou pour un autre fichier : monFichier = "C:\chemin\vers\mon\fichier.xlsx" ; puis je l'ajoute en PJ : MonMessage.Attachments.Add monFichier ; et pour finir, la prévisu (facultative) : MonMessage.Display ; et l'exped : MonMessage.Send
    Petite précision, ThisWorkbook est la copie du classeur Excel dans lequel tu code ta macro, donc tu joint un fichier Excel, pas un PDF. Si tu veux expédier un fichier PDF de ta feuille active Excel, tu dois la sauvegarder en fichier PDF puis l'expédier avec le second format décrit ci-dessus mais avec une extension ".pdf" (bien sûr).
    Voila, le début et la fin de ton Sub me paraissent correct, j'espère ne pas avoir fait de faute de frappe. A+

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

Discussions similaires

  1. [XL-2010] comparaison des cellules VBA (MAcro Excel)
    Par developpeur82 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/08/2012, 12h20
  2. [Toutes versions] Code vba macro excel 2010 import de plusieurs fichiers texte
    Par Eagle-I dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/12/2011, 12h25
  3. [VBA]macro excel ouverture et transformation de fichier
    Par astrolane dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/05/2007, 11h19
  4. [VBA]Macro Excel : les premiers pas ?
    Par epfyffer dans le forum SDK
    Réponses: 3
    Dernier message: 28/03/2007, 15h12

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