Mail avec piece jointe
Bonjour à tous,
je sais que de nombreux sujet traite ce thème mais je n'arrive toujours pas à résoudre mon problème
Voila, j'aurais besoin d'une macro qui envoie un mail avec une pièce jointe.
il faut que je puisse mettre un message, un sujet, une adresse mail (qui sera dans une cellule) et surtout que je puisse mettre la page active de mon classeur en pièce jointe (et que la pièce jointe porte bien le nom de la page).
imaginons mon classeur:
je veux envoyer un mail à l'adresse en cellule B2
le sujet du mail sera: "relance"
le corps du message sera: "bonjour, veuillez trouver ci-joint le ficher ......etc"
l'onglet que je veux en pièce jointe (donc la page active) s'appelle "Oracle" par exemple
merci d'avance à ceux qui pourrons m'aider
Jawst
bonsoir,
Je regarderai alors demain si personne n'est venu à ton secours.
Bonne nuit
merci
je ne peux pas joindre de fichier car ca ne doit pas sortir de mon entreprise désolé
Mais je pense avoir été claire, si ce n'est pas le cas je te créerai un fichier pour l'exemple
jawst
Bonsoir,
Je veux bien un fichier d'exemple avec données non confidentielles mais significatives.
Mettre en B2 une adresse mail. ok, mais si on envoie la feuille active on envoie aussi B2?
B2 données variables ou données validées par une liste se trouvant dans un autre onglet.
Onglet à envoyer sous quelle forme? PDF, XLS,.....
A te relire.
salut
tiens voila le fichier en question
oui tu eux envoyer l'adresse si tu veux
sous la forme que tu veux a partir du moment ou ca m'envoi juste la page avec le bon nom
merci
bonjour,
je relance le sujet, s'il vous plait aidez moi
Jawst
J'ai fini par trouver une solution qui est très bizarre mais qui fonctionne.
j'ai crée un dossier qui s'appelle "poubelle" dans mon disque dur car lorsque je renomme le fichier que je met en pièce jointe, il y'a une sauvegarde du fichier en question et je ne veux pas.
donc comment ca marche ?
- je copie la page active de mon classeur
- Je la colle dans un nouveau classeur que je renomme et que je suis donc obligé d'enregistrer
- j'envoie mon mail avec le classeur en pièce jointe (il ne contient donc que la page que je voulais envoyer) (avec Outlook)
- je ferme ce classeur
- comme il est enregistré (dans le dossier "poubelle" que j'ai créé), je supprime tout les fichier de type Excel qu'il y a dans ce dossier
voila j'espère que vous avez compris, je vous envoi le fichier joint pour illustrer
jawst
Sub relance_frns()
' supprimer les sauts de pages (pour avoir un seul tableau sur une seul page lors de l'impression)
For Each sh In Worksheets
Select Case sh.Name
Case "Macro", "Qualite", "extrait", "Supplier index", "PVI", "courrier", "Tbl PPM"
Case Else
sh.Activate
ActiveWindow.View = xlPageBreakPreview
ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
ActiveWindow.View = xlNormalView
End Select
Next
Sub relance_frns()
' envoi mail
For Each sh In Worksheets
Select Case sh.Name
Case "Macro", "Qualite", "extrait", "Supplier index", "PVI", "courrier", "Tbl PPM"
Case Else
sh.Activate
ActiveSheet.Copy
Range("T:U").EntireColumn.Hidden = True ' cacher les colonnes T et U (ou il y'a les adresses mails)
ActiveSheet.PageSetup.Orientation = xlLandscape 'format paysage
ActiveSheet.PageSetup.Zoom = False ' zoom
ActiveSheet.PageSetup.FitToPagesTall = 1 ' ajuster la page
ActiveSheet.PageSetup.FitToPagesWide = 1
ActiveSheet.SaveAs Filename:="C:\Users\cccuia\Documents\Relance\" & Range("D2").Value 'sauvegarder en xls pour pouvoir mettre un nom à la piéce jointe
'Il faut activer la référence "Microsoft Outlook Library" Avant de lancer cette macro, Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft Outlook Library"
Dim olApp As Outlook.Application
Dim olMail As MailItem
Dim CurFile As String
Set olApp = New Outlook.Application
Set olMail = olApp.CreateItem(olMailItem)
CurFile = "C:\Users\cccuia\Documents\Relance\" & Range("D2").Value & ".pdf" ' enregistre en PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=CurFile, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, _
OpenAfterPublish:=False 'PDF
With olMail
.To = Range("T2") 'destinataire
.CC = Range("U2") 'personne en copie de mail
.Subject = "sujet"
.Body = Workbooks("PVI").Sheets("courrier").Range("A1")
.Attachments.Add CurFile 'piece jointe PDF
'.Attachments.Add ActiveWorkbook.Path & "\" & ActiveWorkbook.Name 'piece jointe pas PDF
.Attachments.Add ("C:\Users\cccuia\Desktop\vendor recovery\SUPPLIER PVI PROCESS v5.pptx") ' piece jointe power point
.Display
'.Send
End With
' Effacer les variables objets
Set olMail = Nothing
Set olApp = Nothing
ActiveWorkbook.Close
Kill "C:\Users\cccuia\Documents\Relance\*.xls" ' supprimer les PDF
Kill "C:\Users\cccuia\Documents\Relance\*.pdf" ' supprimer les xls
End Select
Next
End Sub