lancelot92
XLDnaute Nouveau
Bonjour à toutes et à tous,
J'ai un travail important à réaliser dans le cadre de ma profession qui concerne l'envoi de plans d'actions à des responsables. Je vais être clair. J'ai un fichier excel qui possède un nombre d'onglets variable.
(Sauf pour le premier onglet qui ne nous intéresse pas) Chaque onglet du fichier concerne une personne en particulier dont l'adresse électronique figure dans une cellule invariable dans chacun des onglets. Je souhaiterais pouvoir depuis un bouton placé sur le premier onglet (qui ne nous intéresse pas) :
_ Envoyer un mail différent en fonction de la personne citée dans lequel il y aurait simplement la copie du fichier contenant seulement l'onglet dans lequel l'adresse électronique de la personne est mentionnée. Par exemple s'il y a 20 onglets, cela signifie qu'il y a 20 mails à envoyer en tout contenant chacun un fichier différent avec l'onglet correspondant.
Je connais un code qui fonctionne à la perfection et qui permet d'envoyer un mail à une personne avec la copie du fichier en PJ. Mais je ne sais pas comment faire pour la suite... Je suppose qu'il faudrait incrémenter un compteur d'onglets avec une boucle mais là j'ai vraiment du mal à savoir par quel bout m'y prendre.
Je vous remercie par avance pour toute l'aide que vous pourrez m'apportée.
Code pour l'envoi d'un mail avec une copie d'un fichier en PJ :
J'ai un travail important à réaliser dans le cadre de ma profession qui concerne l'envoi de plans d'actions à des responsables. Je vais être clair. J'ai un fichier excel qui possède un nombre d'onglets variable.
(Sauf pour le premier onglet qui ne nous intéresse pas) Chaque onglet du fichier concerne une personne en particulier dont l'adresse électronique figure dans une cellule invariable dans chacun des onglets. Je souhaiterais pouvoir depuis un bouton placé sur le premier onglet (qui ne nous intéresse pas) :
_ Envoyer un mail différent en fonction de la personne citée dans lequel il y aurait simplement la copie du fichier contenant seulement l'onglet dans lequel l'adresse électronique de la personne est mentionnée. Par exemple s'il y a 20 onglets, cela signifie qu'il y a 20 mails à envoyer en tout contenant chacun un fichier différent avec l'onglet correspondant.
Je connais un code qui fonctionne à la perfection et qui permet d'envoyer un mail à une personne avec la copie du fichier en PJ. Mais je ne sais pas comment faire pour la suite... Je suppose qu'il faudrait incrémenter un compteur d'onglets avec une boucle mais là j'ai vraiment du mal à savoir par quel bout m'y prendre.
Je vous remercie par avance pour toute l'aide que vous pourrez m'apportée.
Code pour l'envoi d'un mail avec une copie d'un fichier en PJ :
Code:
Sub Envoi_du_pilote()
'déclaration des objets
Dim Appli_Outlook As Outlook.Application
Dim Mail As Outlook.MailItem
Dim Piece_Jointe As Outlook.Attachments
'déclaration des variables
Dim Corps As String
Dim NomClasseur As String, Chemin As String
Dim onglet As Worksheet
'Valeurs contenues dans des cellules
adresse = Trim(Range("G2"))
'Initialisation des objets outlook
Set Appli_Outlook = CreateObject("Outlook.application")
Set Mail = Appli_Outlook.CreateItem(olMailItem)
Set Piece_Jointe = Mail.Attachments
ThisWorkbook.Save
'Gestion de la pièce jointe
NomClasseur = ActiveWorkbook.Name
Chemin = "G:\Audit\Audits 5S\Archives\a TEMP à ne pas déplacer ni détruire\"
Application.DisplayAlerts = False
For Each onglet In ThisWorkbook.Worksheets
'ce qui me manque...
Next onglet
ActiveWorkbook.SaveCopyAs Chemin & NomClasseur
Application.DisplayAlerts = False
Piece_Jointe.Add "G:\Audit\Audits 5S\Archives\a TEMP à ne pas déplacer ni détruire\" & NomClasseur
Kill "G:\Audit\Audits 5S\Archives\a TEMP à ne pas déplacer ni détruire\" & NomClasseur
'Segmentation du texte avec l'utilisation du langage html
Phrase(0) = "<HTML><body>Bonjour,<p>"
Phrase(1) = "Le fichier de suivi des actions correctives " & Zone
Phrase(2) = " vient d'être complété " < p > ""
Phrase(14) = "</body><HTML>"
'construction structure mail
With Mail
'j'ai un doute pour l'adresse
.To = adresse
.Subject = "Actions correctives"
.BodyFormat = olFormatHTML
Corps = Phrase(0) & Phrase(1) & Phrase(2)
.HTMLBody = Corps
.Display
.send
End With
ActiveWorkbook.Close savechanges:=False
End Sub