macro envoi de mail depuis fichier excel

olivier972

XLDnaute Occasionnel
Bonjour à tous,
Voici une macro qui en principe doit envoyer par email en automatique la page active sous format PDF
elle semble beuger :
A la fin ca me demande end sub et quand je met end sub sa me demande end with.

Que faire merci de votre aide je n'y connais pas grand chose
 

Pièces jointes

  • macro.txt
    1.5 KB · Affichages: 59

Jauster

XLDnaute Occasionnel
Bonjour,

VB:
Sub envoilta()
  
    Dim TempFilePath As String
    Dim TempFileName As String
    Dim Destwb As Workbook
    Dim OutApp As Object
    Dim OutMail As Object
  
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With
  
    Set Destwb = ActiveWorkbook
  
    TempFilePath = Environ$("temp") & "\"
    TempFileName = ActiveSheet.Name
  
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    With Destwb
        With .ActiveSheet.PageSetup
         .PrintArea = "$A:$L"
         .Orientation = xlLandscape
         .Zoom = False
         .FitToPagesTall = 1
         .FitToPagesWide = 1
        End With
       
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:=TempFilePath & TempFileName & ".pdf", Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False '
         
      
        On Error Resume Next
        With OutMail
            .to = "@gmail.com"
            .CC = "@gmail.com"
            .BCC = ""
            .Subject = "Envoie LTA LMP TLS"
            .Body = "Bonjour, Merci de trouver ci joint la LTA du prochain envoie. Cordialement"
            .Attachments.Add TempFilePath & TempFileName & ".pdf"
            .Send
            '.display
        End With
        On Error GoTo 0
        '.Close savechanges:=False
    End With
  
    Kill TempFilePath & TempFileName & ".pdf"

    Set OutMail = Nothing
    Set OutApp = Nothing

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

Le fichier se fermait à cause de la ligne suivante :
.Close savechanges:=False

Je l'ai donc passé en commentaire. Je vous conseille lors des tests avec votre macro de passer .send en commentaire en ajoutant un ' devant, et de retirer le ' de .display (> Évite le spam de mail et ouvre uniquement la fenêtre d'édition du mail)
 

Jauster

XLDnaute Occasionnel
Bonjour,

Il suffit de rajouter ActiveSheet devant la ligne suivante :
VB:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=TempFilePath & TempFileName & ".pdf", Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False '

Cela aura pour effet d'enregistrer en format PDF uniquement l'onglet sur lequel vous vous trouvez lorsque vous exécutez la macro.
 

Discussions similaires

Réponses
6
Affichages
300

Statistiques des forums

Discussions
312 196
Messages
2 086 098
Membres
103 116
dernier inscrit
kutobi87