Mail automatique ajout de destinataire et de copie
Bonjour,
J'ai créé la macro suivante pour l'envoie de mail automatique, mais je n'arrive pas à ajouter des destinataires et des personnes en copie, pouvez vous m'aider et est-il possible en lieu est place des destinataires et des personnes en copie de sélectionner des cellules, dans le fichier que j'ai joint les destinataires et les personnes en copie se trouve dans la feuille 2, merci par avance de votre aide :
Sub Mail_H_Interim_BIRD()
'enregistrement PDF des heures intérim
Dim Utilisateur As String, Dossier As String, Fichier As String
Utilisateur = Environ("username")
Dossier = "C:\Users\" & Utilisateur & "\CIME CAPITAL\Base Documentaire - Documents\7- Supply Chain\7.21 Management\RH\Archive PDF H Inétim 2024\"
Fichier = "Présence Log TPT 2024 V1.pdf"
ActiveWorkbook.Save
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Dossier & Fichier, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
'Transmission du mail
Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Dim Nom_Fichier As String
Set ObjOutlook = New Outlook.Application
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
With oBjMail
.To = "a.margarian@mylight150.com"
.CC = "e.causse@mylight150.com"
.Subject = ActiveSheet.Range("D28").Value
.Body = ActiveSheet.Range("D32").Value
.Attachments.Add "C:\Users\" & Utilisateur & "\CIME CAPITAL\Base Documentaire - Documents\7- Supply Chain\7.21 Management\RH\Archive PDF H Inétim 2024\Présence Log TPT 2024 V1.pdf"
.Send
End With
End Sub
Bonjour Eddy,
il faut définir la variable "Agence" quand tu clic sur un des boutons Mail :
Sub StartPeople ()
Dim Agence As String
Agence = "START PEOPLE"
Mail_H_Interim_BIRD
End sub
Sub Mail_H_Interim_BIRD()
'enregistrement PDF des heures intérim
Dim Utilisateur As String, Dossier As String, Fichier As String
Utilisateur = Environ("username")
Dossier = "C:\Users\" & Utilisateur & "\CIME CAPITAL\Base Documentaire - Documents\7- Supply Chain\7.21 Management\RH\Archive PDF H Inétim 2024\"
Dossier = "C:\TEMP_GED\"
Fichier = "Présence Log TPT 2024 V1.pdf"
ActiveWorkbook.Save
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Dossier & Fichier, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
'Transmission du mail
Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Dim MailDesti As String, MailCopie As String
Dim Ligne As Byte, Colonne As Byte
'Changer la valeur de la variable Colonne suivant le bouton de l'agence d'intérim selectionné
Select Case Agence
Case "BIRD"
Colonne = 16
Case "ALP'EMPLOI"
Colonne = 18
Case "MANPOWER"
Colonne = 20
Case "INITIAL"
Colonne = 22
Case "START PEOPLE"
Colonne = 24
End Select
With Feuil2
For Ligne = 15 To 33
If .Cells(Ligne, Colonne).Value <> "" Then MailDesti = MailDesti & "; " & .Cells(Ligne, Colonne).Value
If .Cells(Ligne, 26).Value <> "" Then MailCopie = MailCopie & "; " & .Cells(Ligne, 26).Value
Next Ligne
End With
Set ObjOutlook = New Outlook.Application
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
With oBjMail
.To = MailDesti
.CC = MailCopie
.Subject = ActiveSheet.Range("D28").Value
.Body = ActiveSheet.Range("D32").Value
.Attachments.Add Dossier & Fichier
.display
End With
End SubLe "Select case Agence" va prendre la bonne colonne de ta "feuil2" suivant le bouton agence cliqué.
J'ai changé le nom de ta piece jointe puisque la variable est déja défini lors de l'export pdf de ton fichier.
J'ai également changé le "send" en "Display" pour creer le mail sans l'envoyer (le temps que tes test ne sont pas fini)
A+
Bonjour à tous,
j'ai un problème sur mon code, concernant l'enregistrement en PDF dans la macro, elle bloque sur l'"activeSheet" alors que quand je fait un teste en lancent juste l'enregistrement du PDF sa marche, je ne comprends pas l'erreur, merci pour votre aide, merci par avance de votre aide :
Sub Mail_H_Interim()
'enregistrement PDF des heures intérim
Dim Utilisateur As String, Dossier As String, Fichier As String
Utilisateur = Environ("username")
Dossier = "C:\Users\" & Utilisateur & "\CIME CAPITAL\Base Documentaire - Documents\7- Supply Chain\7.21 Management\RH\Archive PDF H Inétim 2024\"
Dossier = "C:\TEMP_GED\"
Fichier = "Présence Log TPT 2024 V1.pdf"
ActiveWorkbook.Save
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Dossier & Fichier, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
'Transmission du mail
Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Dim MailDesti As String, MailCopie As String
Dim Ligne As Byte, Colonne As Byte
'Changer la valeur de la variable Colonne suivant le bouton de l'agence d'intérim selectionné
Select Case Agence
Case "BIRD"
Colonne = 16
Case "ALP'EMPLOI"
Colonne = 18
Case "MANPOWER"
Colonne = 20
Case "INITIAL"
Colonne = 22
Case "START PEOPLE"
Colonne = 24
End Select
With Base_de_données
For Ligne = 15 To 33
If .Cells(Ligne, Colonne).Value <> "" Then MailDesti = MailDesti & "; " & .Cells(Ligne, Colonne).Value
If .Cells(Ligne, 26).Value <> "" Then MailCopie = MailCopie & "; " & .Cells(Ligne, 26).Value
Next Ligne
End With
Set ObjOutlook = New Outlook.Application
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
With oBjMail
.To = MailDesti
.CC = MailCopie
.Subject = ActiveSheet.Range("D28").Value
.Body = ActiveSheet.Range("D32").Value
.Attachments.Add Dossier & Fichier
.Display
End With
End Sub
Bonjour Geof52,
Je me permet de revenir vers toi un peu tardivement par rapport à mon dernier message, cause de vacance.
je rencontre un problème avec le code que tu m'as fourni, j'ai un débogage, peux tu m'aider, merci par avance :
Sub Mail_H_Interim()
'enregistrement PDF des heures intérim
Call ExportPDF_H_Interim
'Transmission du mail
Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Dim MailDesti As String, MailCopie As String
Dim Ligne As Byte, Colonne As Byte
'Changer la valeur de la variable Colonne suivant le bouton de l'agence d'intérim selectionné
Select Case Agence
Case "BIRD"
Colonne = 16
Case "ALP'EMPLOI"
Colonne = 18
Case "MANPOWER"
Colonne = 20
Case "INITIAL"
Colonne = 22
Case "START PEOPLE"
Colonne = 24
End Select
With Base_de_données
For Ligne = 15 To 33
If .Cells(Ligne, Colonne).Value <> "" Then MailDesti = MailDesti & "; " & .Cells(Ligne, Colonne).Value
If .Cells(Ligne, 26).Value <> "" Then MailCopie = MailCopie & "; " & .Cells(Ligne, 26).Value
Next Ligne
End With
Set ObjOutlook = New Outlook.Application
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
With oBjMail
.To = MailDesti
.CC = MailCopie
.Subject = ActiveSheet.Range("D28").Value
.Body = ActiveSheet.Range("D32").Value
.Attachments.Add Dossier & Fichier
.Send
End With
End Sub
Bonjour,
Je dirais que le soucis vient de :
With Base_de_donnéesSi "Base_de_données" est le nom de ta feuille, essai avec
With Sheets("Base_de_données")Sinon envoi le fichier sans données confidentielles.
Bonjour Geof52,
Merci pour ton retour, mais cela n'a pas réglé mon problème. Je te joint le fichier comme demandé.
merci par avance de ton aide
Bonjour,
Il faudra définir la variable agence en public (voir en haut du module 5):
Public Agence As StringIl faut que chaque bouton d'agence soit affecté a une macro différente ou l'on change la valeur de la variable "Agence" (exemple avec Start People) :
Sub StartPeople()
Agence = "START PEOPLE"
Mail_H_Interim
End SubEn affectant le bouton a sa macro,
On va changer la valeur de la variable "Agence" (suivant le bouton cliqué)
La valeur de la variable va donner la colonne suivant l'agence (ici colonne 24)
_________________________________________________________
et cette ligne qui ne peut pas fonctionner :
With Base_de_donnéesa remplacer par
With Sheets("Base de données")Ou
With Feuil65
Pour chercher sur la feuille "Base de données" les adresses mails des agences (suivant le bouton qui t'indique la bonne colonne)
A+
J'ai mis ces 3 lignes en commentaire permettant la sauvegarde de la piece jointe car je n'ai pas les dossiers sur mon PC, supprime les apostrophes et ça devrait fonctionner.
Pour le message, oui en rajoutant les deux ligne ci desous qui ne sont pas en vert :
If MsgBox("Veux-tu envoyer le mail ?", vbYesNo + vbInformation, "Envoi mail") = vbYes Then
End IfRe Geof52,
je me retrouve avec une erreur de compilation en ajoutant le code "MsgBox" :
J'ai peut-être fait une erreur en recopiant, mais il ne me semble pas ?
Concernant les apostrophe je les avaient déjà supprimé et le problème persiste.
Je suis désolé de te déranger, mais c'est au delà de mes connaissances
Merci encore
Eddy
Ici tu as séparé la partie enregistrement du pdf avec la creation du mail, le truc a faire c'est comme pour la variable "Agence" déclarer la variable en public pour qu'elle puisse etre utilisé partout en gardant en mémoire sa valeur.
Donc normalement chez toi dossier et Fichier n'ont pas de valeur pour corriger, supprime la déclaration de variable dans la partie "Sub ExportPDF_H_Interim()"
Dim Utilisateur As String, Dossier As String, Fichier As StringEt en haut du module tu les rajoute à celle déja déclaré "Agence"
Tu pourra également supprimer la partie enregistrement de pdf sur la procedure "Sub Mail_H_Interim_BIRD()" et remplacé par
Call ExportPDF_H_InterimPuisque les variables Utilisateur / Dossier et Fichier sont les mêmes
Re Geof52,
ça marche
Merci encore pour ton aide et ta réactivité
Eddy


