Code VBA pour conversion en PDF et envoi via Outlook

Bonjour le forum

je souhaiterai si VBA permet d'effectuer l'opération suivante :

un fichier excel comportant 52 feuilles, je souhaiterai convertir en pdf et envoyer par mail séparé les zones d'impression des feuilles suivantes :

4 - 6 - 8 - 10 - 14 - 16 - 18 - 20 - 22 - 24 - 26 - 28 - 30 - 32 - 34 - 36 - 38 - 41 - 44 - 49 -51

chaque feuille est envoyée par mail séparé à un ou plusieurs destinataires

Est ce possible ? si Oui, je suppose qu'il faut ajouter une feuille supplémentaire reprenant le texte identique qui sera repris sur le mail ainsi que la liste des adresses email

merci de vos commentaires avisés

chb44

ps : j'ai essayé de joindre le fichier concerné mais même compressé, il est trop "lourd" 1 Mo pour être joint

Bonsoir,

Je ne vais pas faire pas de programme "tout fait", mais te donne des pistes, ensuite tu n'auras qu'a "assembler" les bouts de codes à l'intérieur d'une boucle.

1- Enregistrer une feuille en pdf :

   Dim sFeuille As String, sChemin As String
   sChemin = "D:\Test\"
   sFeuille = "4"
   sfichier = sChemin & sFeuille & ".pdf"
    Worksheets(sFeuille).ExportAsFixedFormat Type:=xlTypePDF, Filename:=sfichier, Quality:=xlQualityStandard, _
      IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

2 - Envoyer le pdf en pièce jointe à l'aide d'Outlook :

   Option Explicit

   'Elle utilise la technologie Automation (OLE) et nécessite donc d'ajouter la référence "Microsoft Outlook 11.0 Object Library" au projet VBA (Menu Outils-Réferences).

   Sub Test()
      Dim sCorps As String, sDest As String, sObj As String, sCpy As String, sFichier As String
      sDest = "toto@titi.fr;fifi@perser.fr"
      sCpy = "ramses@titi.fr;loulou@perser.fr"
      sObj = "Mon premier test Outlook"
      sCorps = "Bonjour," & vbCr & vbCr & "Veuillez trouver ci-joint le pdf." & vbCr & vbCr & "Cordialement," & vbCr & "B. Cordier"
      sFichier = D:\Test\4.pdf"' Le fichier doit être fermé
     Call EnvoiMailOLE(sDest, sObj, sCorps, sFichier, sCpy)
   End Sub

Sub EnvoiMailOLE(Adresse As Variant, Objet As String, Corps As String, Optional Pièce As String, Optional Cc As String, Optional Bcc As String)
       Dim MonAppliOutlook As New Outlook.Application
       Dim MonMail As Outlook.MailItem
       Dim MaPièce As Outlook.Attachments
       Set MonMail = MonAppliOutlook.CreateItem(olMailItem)
       With MonMail
           .To = Adresse
           If Not IsNull(Cc) Then .Cc = Cc
           If Not IsNull(Bcc) Then .Bcc = Bcc
           .Subject = Objet
           .Body = Corps
           If Not Pièce = "" Then
               Set MaPièce = .Attachments
               MaPièce.Add Pièce, olByValue
           End If
           .Send
       End With
   End Sub

Pour faire fonctionner les deux codes, il faut, par exemple, une feuille qui ressemble à cela et faire une boucle sur les lignes :

capture

L'inconvénient de mettre du texte avec des sauts de lignes dans une cellule, c'est quand on récupère le contenu de la cellule, il faut supprimer un caractère de saut de ligne (chr(10) ou chr(13), je ne sais plus)... Mais ce n'est pas un problème en soit.

Si le texte du corps et de la signature sont toujours les mêmes, il est préférable de stocker l'informatio qu'une seule fois, et non sur chaque ligne.

L'exemple que ci-dessus utilise Outlook. Si tu n'a pas ce logiciel de messagerie, il faudra regarder sur le net s'il est possible de le faire en vba avec ton logiciel.

Si tu n'arrives pas a faire cet enchainent d'instructions, reviens, on essayera d'aller plus loin.

A+

Benead

bonsoir

un grand merci d'avoir pris le temps nécessaire pour regarder ma demande !

j'étais en déplacement et je viens uniquement de voir ta réponse, désolé pour le retard de ma réponse

pour information, je ne sais pas programmer en vba, je n'ai que quelques vagues notions très simplistes !

je vais tenter de chercher et si problème, je te reviens

encore merci pour l'aide et désolé pour le retard de ma réponse

chb44

Bonjour,

Le sujet m'intéresse. A-t-il abouti ??

Merci

Rechercher des sujets similaires à "code vba conversion pdf envoi via outlook"