Envoi Mail PDF VBA

Bonjour à tous ,

Pouvez vous svp m'aider à finaliser le code du fichier joint.

Le but du document est de transmettre un fichier PDF à partir des informations de l'onglet PDF.

Actuellement j'arrive à créer le mail avec en pièce jointe le pdf, seulement je n'arrive à alimenter les champs destinataires , Cc et Objet. Il y a visiblement une erreur dans mon code (debutant) et cela fait 2 jours je bute sur le problème.

J'espère vraiment que vous pourrez m'aider.

17envoimailpdf.xlsm (56.27 Ko)

Bonjour rpascal60,

Voici le code fonctionnel et optimisé (absolument éviter les select et copier/coller quand on peut)

Sub Mail_Auto_Fin_Procédure()
  Dim DerLig As Long, L As Long
  Dim OutApp As Object, OutMail As Object
  Dim QuelMois As String, NomFic As String, strbody As String
  Dim MaFeuille As Worksheet

  QuelMois = InputBox("Quel mois souhaitez-vous ?")
  If QuelMois = "" Then
    MsgBox "Saisie du mois impératif! Recommencez...", vbCritical
    Exit Sub
  End If
  Set MaFeuille = Sheets(QuelMois)
  ' Avec ma feuille
  With MaFeuille
    ' Dernière ligne
    DerLig = Range("AE" & Rows.Count).End(xlUp).Row
    For L = 3 To DerLig
      If Range("AE" & L) = "x" Then
        Sheets("pdf").Range("B3").Value = .Range("B" & L).Value
        Sheets("pdf").Range("B5").Value = .Range("C" & L).Value
        Sheets("pdf").Range("B7").Value = .Range("D" & L).Value
        Sheets("pdf").Range("E7").Value = .Range("E" & L).Value
        Sheets("pdf").Range("B9").Value = .Range("J" & L).Value
        Sheets("pdf").Range("E11").Value = .Range("Z" & L).Value
        Sheets("pdf").Range("G14").Value = .Range("AA" & L).Value
        Sheets("pdf").Range("E18").Value = .Range("AB" & L).Value
        ' Nom du fichier
        NomFic = Left(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, ".")) & "pdf"
        ' exporter la feuille
        Sheets("pdf").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
          ActiveWorkbook.Path & "\" & NomFic, Quality:=xlQualityStandard, _
          IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
        ' Créer une instance d'Outlook en late binding
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)
        ' Préparer le texte
        strbody = ""
        strbody = "Bonjour, " & vbCrLf & vbCrLf _
          & "Nous vous prions de trouver ci-joint les informations relatives à l'installation de votre materiel " & vbCrLf & vbCrLf _
          & "Cordialement " & vbCrLf _
          & "PS : Pour toutes informations complémentaires, veuillez-vous adresser à notre Service Installation " & vbCrLf
        ' Créer le mail
        With OutMail
          .Display
          .To = Range("AC" & L)
          .CC = Range("AD" & L)
          .BCC = ""
          .Subject = " Planning d'installation - materiel : " & Range("B" & L) & " " & "- " & Range("E" & L)
          .Body = strbody & .Body
          .Attachments.Add ActiveWorkbook.Path & "\" & NomFic
          '.Send   ' pour l'envoi du @mail
        End With
        '.Range("AE" & L) = "x" & " Transmis"     'modification pour eviter x envoi
        On Error GoTo 0
      End If
      Set OutMail = Nothing
      Set OutApp = Nothing
    Next L
  End With
  Set MaFeuille = Nothing
End Sub

@+

Bonjour BrunoM45

C'est vraiment top.

Merci beaucoup pour ton analyse et conseil. Il est clair que j''ai encore beaucoup de progrès à faire mais en pratiquant et avec l'aide de ce forum je devrait arriver à mes fins. En tout cas je l'espère.

Merci encore et bon dimanche.

Rechercher des sujets similaires à "envoi mail pdf vba"