Piece jointe en tant que pdf mail office outlook

bonjour à tous!!

Voila mon petit problème je recherche une macro qui pourrait a partir d'une page Excel 2010

la poster en tant que pièce jointe dans la messagerie d'office out look.

Dans l'exemple joint c'est a peut prés ce que je souhaiterais mais la pièce jointe reste au format

excel et non PDF.

Par ailleurs si la fonction pouvait remplir l'objet et un peu de corps de message en faisant

référence a une cellule par exemple ce serait l’idéal.

Dans tout les cas merci a ceux qui réfléchirons

21horaires.zip (18.69 Ko)

Bon je "m'autorépond"

eu égard au peu de réponse je crois que le sujet est bien plus difficile que celui que j'avais imaginé

merci encore a tout ceux qui ont pris le temps de regarder le fichier

Bonjour,

Ci-joint 3 fonctions que j'ai créée et que j'utilise pour l'envoie de fichier joint, je pense que ce peut têtre utile.

Bien à toi,

Public Sub Enr_PDF(Répertoire As String, Fichier As String)

' enregistre au format PDF dans le répertoire reçu et avec le nom de fichier reçu

Application.ScreenUpdating = False
Application.DisplayAlerts = False

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
                                      Répertoire & "\" & Fichier, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
                                    OpenAfterPublish:=False

End Sub

Sub Enr_XLSX(Répertoire As String, Fichier As String, Tab_feuilles() As Variant)
' enregistre au format XLSX dans le répertoire reçu et avec le nom de fichier reçu, les feuilles sélectionnées
Dim NouveauClasseur As Workbook
Application.ScreenUpdating = False
Application.DisplayAlerts = False

  Sheets(Tab_feuilles).Copy
  Set NouveauClasseur = ActiveWorkbook
  NouveauClasseur.Colors = ThisWorkbook.Colors
  NouveauClasseur.SaveAs Répertoire & Fichier
  NouveauClasseur.Close

End Sub

Sub Envoi_mail(C As Integer, N_Zone As Variant, D_retour As String, Tab_ZC() As Variant, Répertoire As String, Fichier As String)

Dim Cpt As Integer

Dim Destinataire, Destinataire_CC As String
Dim Corps_Texte As String
Dim Signature As String
Dim SigString As String
Dim Num_perso As Long

                        Num_perso = Application.UserName

                        ' Dim app_Outlook As Outlook.Application
                        Set app_Outlook = CreateObject("Outlook.Application")

                            If app_Outlook.Explorers.Count > 0 Then       ' Test si outlook est ouvert; si ce n'est pas le cas, il l'ouvre
                                'Ok outlook ouvert
                             Else
                                 'mettre le bon chemin outlook
                                app_Outlook = Shell("C:\Program Files (x86)\Microsoft Office\Office12\OUTLOOK.exe", vbNormalNoFocus)
                            End If

                       'Dim Message As Outlook.MailITEM
                       Set Message = app_Outlook.CreateItem(olMailItem)

                       Destinataire = Tab_ZC(C, 2)
                       Destinataire_CC = Tab_ZC(C, 3)
                       Sujet = "Suivi VLT - " & N_Zone & " - demande dates d'intervention"
                       Corps_Texte = "Bonjour,<BR><BR>........ici, ton texte......................".<BR><BR>Bien à vous,<BR><BR><BR>"
                       ' Corps_Texte = "Bonjour,<BR><BR>Ci-joint, vous trouverez ......<BR><BR>"

                       SigString = Environ("C:\Users\" & Num_perso & "\AppData\Roaming\Microsoft\Signatures\") & Signature

                           If Dir(SigString) = "" Then

                               Signature = ""

                           Else

                                Signature = Worksheets("INFO").Range("A39").Value
                                Signature = Signature & ".htm"

                          End If

                          On Error Resume Next
                       Application.ScreenUpdating = True
                       Application.DisplayAlerts = True

                           With Message
                               .To = Destinataire
                               .cc = Destinataire_CC
                               .bcc = ""
                               .Subject = Sujet
                               .BodyFormat = olFormatHTML
                               .HTMLBODY = Corps_Texte ' & GetBoiler("C:\Users\" & Num_Ulyss & "\AppData\Roaming\Microsoft\Signatures\") & Signature
                               .Attachments.Add Répertoire & "\" & Fichier
                               '.display True
                               .display False
                               .Send
                           End With

                       On Error GoTo 0
                       'app_Outlook.Quit 'ferme outlook
                       Set Message = Nothing
                       Set app_Outlook = Nothing

                       Application.ScreenUpdating = True
                       Application.DisplayAlerts = True

End Sub

bonjour

une porposition

fred

Edit j'ai encore compris a l'envers ci dessous la bonne proposition

c'est une question récurrente voir

https://forum.excel-pratique.com/excel/macro-pour-envoyer-un-pdf-issue-d-un-fichier-excel-t67786.html

Sub mail()
'Fonctionne sous excel 2000-2013
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim Sourcewb As Workbook
Dim destwb As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim OutApp As Object
Dim OutMail As Object
Dim S As Shape

With Application
    .ScreenUpdating = False
    .EnableEvents = False
End With

Set Sourcewb = ActiveWorkbook

'Copie la feuille active comme nouvelle feuille

ActiveSheet.Copy
Set destwb = ActiveWorkbook

'Désactiver fenêtre de compatibilité
       Application.DisplayAlerts = False
'----------------------------------------------------------------------------
'Sauvegarde la nouvelle feuille/L'envoie par mail/La supprime
'----------------------------------------------------------------------------

TempFilePath = Environ$("temp") & "\"
TempFileName = ActiveSheet.Name

Set OutApp = CreateObject("outlook.application")
Set OutMail = OutApp.CreateItem(0)

With destwb
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=TempFilePath & TempFileName & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False        ' sauvegarde du fichier au format pdf

    On Error Resume Next
    With OutMail
        .To = "fred@toto.fr"
        .CC = "Moi@toto.fr"
        .bcc = ""
        .Subject = "sujet du mail"
        .Attachments.Add TempFilePath & TempFileName & ".pdf"
        .Body = "Bonjour, le message a mettre dans le mail "
        '.display 'ou alors utiliser
       .Send 'pour envoi
   End With
    On Error GoTo 0
    .Close savechanges:=False
End With

    'Effacer le fichier envoyé
Kill TempFilePath & TempFileName & ".pdf"

Set OutMail = Nothing
Set OutApp = Nothing

With Application
    .ScreenUpdating = True
    .EnableEvents = True
    End With

End Sub

ok Merci beaucoup les gars

Je vais essayer et vous dit quoi

merci encore dans tout les cas

Rechercher des sujets similaires à "piece jointe tant que pdf mail office outlook"