Réaliser une macro VBA permettant d'envoyer un classeur Excel par mail [Fermé]

Signaler
Messages postés
69
Date d'inscription
samedi 18 mai 2013
Statut
Membre
Dernière intervention
9 novembre 2020
-
Messages postés
1020
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
22 février 2021
-
Bonsoir,

Je cherche à faire une macro via VBA sur mon classeur Excel qui permet d'envoyer unclasseur ouvert par mail en tant que pièce jointe à des destinataires et à d'autres personnes en copie.

- Objet : Suivi_de_la_productivité_(Date) ==> Cette date doit être celle de la journée en cours.

- Destinataires :

à : 3 adresses email
cc : une seule adresse email

- corps du message :
===========================
Bonjour,
Veuillez trouver ci-joint le fichier Suivi_de_la_productivité_(Date)
Signature,
Erroudani Ali

==========================
Quelqu'un peut m'aider à réaliser ce prgm ?

D'avance Merci:)

Bonne soirée

2 réponses

Messages postés
1020
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
22 février 2021
211
Bonjour,

A tester

Ne pas oublier de cocher la référence MICROSOFT OUTLOOK xx.0 OBJET LIBRARY

Sub envoiMail()
  Dim Fichier As Variant
  Fichier = "Chemin de ton classeur" 'à modifier ex: "C:\Bureau\dossier\Classeur.xlsx
  Dim MaMessagerie As Object
  Dim MonMessage As Object
  Set MaMessagerie = CreateObject("Outlook.Application")
  Set MonMessage = MaMessagerie.createitem(0)
  
  MonMessage.SentOnBehalfOfName = " ton adresse mail" ' à modifier
  MonMessage.to = "aa@bb.com; bb@bb.com; cc@bb.com" ' à modifier
  MonMessage.CC = "dd@dd.com"
  MonMessage.Attachments.Add Fichier
  MonMessage.Subject = "Suivi_de_la_productivité_" & Application.Text(Date, "ddmmyyyy")
      
  Contenu = "Bonjour,"
  Contenu = Contenu & Chr(10) & Chr(13)
  Contenu = Contenu & "Veuillez trouver ci-joint le fichier Suivi_de_la_productivité_" & Application.Text(Date, "ddmmyyyy")
  Contenu = Contenu & Chr(10) & Chr(13)
  Contenu = Contenu & "Signature,"
  Contenu = Contenu & Chr(10) & Chr(13)
  Contenu = Contenu & "Erroudani Ali "
          
  MonMessage.body = Contenu
  MonMessage.send
  Set MaMessagerie = Nothing
  MsgBox "Votre Mail a bien été envoyé avec la P.J. "
End Sub
Messages postés
69
Date d'inscription
samedi 18 mai 2013
Statut
Membre
Dernière intervention
9 novembre 2020

Bonjour et Merci M-12 pour ce code
ça marche bien.
Par contre, il y'a un petit souci.
dans la ligne :

Fichier = "Chemin de ton classeur"

Je dois à chaque fois indiquer le nom fichier à envoyer à la fin de l’arborescence et c'est pas pratique pour mon cas

Je voudrais si possible de modifier ce code en sorte qu'il m'envoi le fichier en cours d’exécution sur le quel je travail en temps réel ( l’idée c'est que je vais en suite créer un bouton et lui affecter ce macro)

J’espère que mes explications sont claires.
Je te remercie encore une fois

Bonne journée
Ali
Messages postés
1020
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
22 février 2021
211
Re,

tu places cette ligne à la place de "Chemin de ton fichier"
Workbooks(ActiveWorkbook.Name).FullName
Messages postés
69
Date d'inscription
samedi 18 mai 2013
Statut
Membre
Dernière intervention
9 novembre 2020

Merciiiiiiiiiiiiiiii ca marche :)
Messages postés
69
Date d'inscription
samedi 18 mai 2013
Statut
Membre
Dernière intervention
9 novembre 2020

Excuse moi si j'abuse de tes connaissances et gentillesse.
Je voudrais savoir si dans ton code il y'a un moyen d’automatiser l'envoi à une heure précise sans que j'aie besoin d’exécuter l'envoi moi même.

Exemple : envoyer le fichier à 10h
Messages postés
1020
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
22 février 2021
211
Re
macro à placer dans le ThisWorkbook du classeur
Private Sub Workbook_Open()
Application.onTime timeValue("10:00:00"), "envoiMail"
End Sub