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

494test.xlsm (11.92 Ko)

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

298test-vrac.xlsm (41.64 Ko)
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
Rechercher des sujets similaires à "mail piece jointe"