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

Fermé
abourakba
Messages postés
76
Date d'inscription
samedi 18 mai 2013
Statut
Membre
Dernière intervention
17 avril 2022
- Modifié le 17 janv. 2019 à 00:37
M-12
Messages postés
1200
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
20 mai 2022
- 18 janv. 2019 à 05:14
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
A voir également:

2 réponses

M-12
Messages postés
1200
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
20 mai 2022
262
17 janv. 2019 à 08:24
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
1
abourakba
Messages postés
76
Date d'inscription
samedi 18 mai 2013
Statut
Membre
Dernière intervention
17 avril 2022

17 janv. 2019 à 12:42
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
0
M-12
Messages postés
1200
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
20 mai 2022
262
17 janv. 2019 à 17:38
Re,

tu places cette ligne à la place de "Chemin de ton fichier"
Workbooks(ActiveWorkbook.Name).FullName
1
abourakba
Messages postés
76
Date d'inscription
samedi 18 mai 2013
Statut
Membre
Dernière intervention
17 avril 2022

17 janv. 2019 à 23:49
Merciiiiiiiiiiiiiiii ca marche :)
0
abourakba
Messages postés
76
Date d'inscription
samedi 18 mai 2013
Statut
Membre
Dernière intervention
17 avril 2022

17 janv. 2019 à 23:55
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
0
M-12
Messages postés
1200
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
20 mai 2022
262
18 janv. 2019 à 05:14
Re
macro à placer dans le ThisWorkbook du classeur
Private Sub Workbook_Open()
Application.onTime timeValue("10:00:00"), "envoiMail"
End Sub
1