[RESOLU]Macro envoi Mail avec pièce jointe en PDF

hypo78

XLDnaute Impliqué
Bonjour,
Grâce à un code trouvé sur le forum, je parviens à envoyer par mail une pièce jointe avec une seule feuille (active).

Code:
Sub envoiMailEtFeuilleActive()
'
'
'
ActiveSheet.Copy ' crée une copie de la feuille active
Recipients = Array("xxx@gmail.com")
ActiveWorkbook.SendMail Recipients, Subject:="Main courante Flashover"  'envoi Mail
MsgBox "Merci de vérifier que le message apparait dans -messages envoyés- dans votre messagerie OUTLOOK."
Application.DisplayAlerts = False
ActiveWorkbook.Close ' supprime le classeur créé après l'envoi
Application.DisplayAlerts = True
Shell "C:\Program Files\Microsoft Office\Office12\OUTLOOK.EXE"
End Sub

L'idéal pour moi, serait que cette pièce jointe soit en PDF. Il est vrai que sur le forum on trouve quelques codes sur le PDF mais ils me paraissent tous très fastidieux alors que si j'enregistre une macro çà me génère un code de quelques lignes.

Code:
Sub Macro1()
'
' Macro1 Macro
'

'
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\Thierry\AppData\Local\Temp\Classeur1.pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
    Application.Dialogs(xlDialogSendMail).Show
End Sub

Ma question : comment fusionner ces 2 codes?

C'est à dire envoyer par mail seulement la feuille active en PDF.
Merci d'avance
 
Dernière édition:
C

Compte Supprimé 979

Guest
Re : Macro envoi Mail avec pièce jointe en PDF

Bonjour Hypo78

Voici un code
VB:
Sub SendWithAtt()
' Nécessite la référence : Microsoft Outlook 1x Object Library
Dim olApp As Outlook.Application
Dim olMail As MailItem
Dim CurFile As String
Set olApp = New Outlook.Application
Set olMail = olApp.CreateItem(olMailItem)
' "C:\Users\Thierry\AppData\Local\Temp\MaFeuille.pdf "
CurFile = ThisWorkbook.Path & "\" & "MaFeuille.Pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=CurFile, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
With olMail
.To = "xxx@gmail.com"
.CC = "name2@domain2.com"
.Subject = "Main courante Flashover"
.Body = "Vous trouverez ci-joint le fichier PDF ..."
.Attachments.Add CurFile
'.Attachments.Add "c:\My Documents\book.doc"
.Display '.Send
End With
MsgBox "Merci de vérifier que le message apparait dans -messages envoyés- dans votre messagerie OUTLOOK."
 
' Effacer les variables objets
Set olMail = Nothing
Set olApp = Nothing
End Sub

A+
 

Klode

XLDnaute Nouveau
Re : Macro envoi Mail avec pièce jointe en PDF

Bonjour Bruno, j'aime bien l'idée de pouvoir envoyer une feuille en format PDF par courriel. J'ai un classeur qui me permet d'enregistrer des commandes de transport. En cliquant sur un bouton pour créer la commande, elle s'imprime en format PDF, est enregistrée dans un répertoire où figurent les autres commandes et une inscription est faite dans le calendrier Outlook, tout cela fait automatiquement. Les commandes sont enregistrées selon leur numéro. Bien sûr, chaque commande a un numéro différent. Comment faire pour envoyer une copie de cette commande par courriel automatiquement à sa création?

Merci,

Claude
 

hypo78

XLDnaute Impliqué
Re : Macro envoi Mail avec pièce jointe en PDF

Bonjour bruno,
çà fonctionne, mais je vais encore abuser de ta gentillesse.
Le fichier que j'utilise avec cette macro est partagé sur le réseau du boulot ce qui amène ma nouvelle question :
il y a-t-il moyen d'activer la référence à Outlook Object Library par la macro car je vois mal certains de mes collègues y parvenir.
D'avance encore merci.
 

Doddie

XLDnaute Nouveau
Re : [RESOLU]Macro envoi Mail avec pièce jointe en PDF

Bonjour,

Je débute en macro, je me suis inspirée du code qui a été donné par BrunoM45, et je l'ai intégré dans une autre macro que j'ai déjà sur mon fichier.

Voici le résultat :

Sub SendWithAtt2()
' Nécessite la référence : Microsoft Outlook 1x Object Library
Dim olApp As Outlook.Application
Dim olMail As MailItem
Dim CurFile As String
Set olApp = New Outlook.Application
Set olMail = olApp.CreateItem(olMailItem)

Dim lignedep As Long
lignedep = 96
Index = lignedep

'Boucle sur la liste

While Worksheets("synthese").Cells(Index, 3).Value <> ""

'on renseigne B1 avec la valeur
Range("b1").Value = Cells(Index, 3).Value

NomFichier = Range("b1").Value & "- NOM DU FICHIER"

' "C:\Users\Thierry\AppData\Local\Temp\MaFeuille.pdf "
CurFile = ThisWorkbook.Path & "\" & Cells(Index, 3).Value & " - ETAT ENVELOPPE DGF.Pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=CurFile, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False


With olMail
.To = "PRENOM.NOM@GMAIL.COM"

.Subject = "test envoi fichier"
.Body = "Vous trouverez ci-joint le fichier PDF ..."
.Attachments.Add CurFile
'.Attachments.Add "c:\My Documents\book.doc"
.Send
'On peut switcher entre .send et .display selon que l'on veut envoyer le mail (send) ou seulement le préparer et le vérifier(display)

End With


' Effacer les variables objets
Set olMail = Nothing
Set olApp = Nothing

'on passe à la ligne suivante
Index = Index + 1


Wend


End Sub

L'outils VBA me propose un débogage sur la ligne .To = "PRENOM.NOM@GMAIL.COM" (il la surligne en jaune)
Et il n'envoie que le premier mail, la boucle ne suit pas.
Une idée de comment résoudre mon problème ?

Dans l'idéal, j'aurai aimé envoyer un fichier différent à chaque personne d'une liste, j'ai fait d'autres tentatives en vain...

Désolée si mon langage n'est pas "technique" je suis débutante en macro.

Merci d'avance pour votre aide
 
C

Compte Supprimé 979

Guest
Re : [RESOLU]Macro envoi Mail avec pièce jointe en PDF

Bonjour Doddie ;)

L'effacement des variables objet ne se fait pas au bon endroit

Code:
Sub SendWithAtt2()  ' Nécessite la référence : Microsoft Outlook 1x Object Library
  Dim olApp As Outlook.Application
  Dim olMail As MailItem
  Dim CurFile As String
  Dim LigneDep As Long
  ' Définir les variables objet nécessaires
  Set olApp = New Outlook.Application
  Set olMail = olApp.CreateItem(olMailItem)
  ' Initialiser les variables
  LigneDep = 96
  Index = LigneDep
  'Boucle sur la liste
  While Worksheets("synthese").Cells(Index, 3).Value <> ""
    'on renseigne B1 avec la valeur
    Range("b1").Value = Cells(Index, 3).Value


    NomFichier = Range("b1").Value & "- NOM DU FICHIER"


    ' "C:\Users\Thierry\AppData\Local\Temp\MaFeuille .pdf "
    CurFile = ThisWorkbook.Path & "\" & Cells(Index, 3).Value & " - ETAT ENVELOPPE DGF.Pdf"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=CurFile, _
                                    Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
                                    OpenAfterPublish:=False




    With olMail
      .To = "PRENOM.NOM@GMAIL.COM"
      .Subject = "test envoi fichier"
      .Body = "Vous trouverez ci-joint le fichier PDF ..."
      .Attachments.Add CurFile
      '.Attachments.Add "c:\My Documents\book.doc"
      .Send
      'On peut switcher entre .send et .display selon que l'on veut envoyer le mail (send) ou seulement le préparer et le vérifier(display)
    End With
    'on passe à la ligne suivante
    Index = Index + 1
  Wend
  ' APRES l'exécution du code sur toutes les lignes
  ' Effacer les variables objets
  Set olMail = Nothing
  Set olApp = Nothing
End Sub

A+
 

Doddie

XLDnaute Nouveau
Re : [RESOLU]Macro envoi Mail avec pièce jointe en PDF

Merci Bruno pour ta réponse !

Malheureusement même effet... Toujours bloquée par l'adresse du destinataire...

Le premier mail part, puis je passe en débogage avec l'adresse du destinataire surlignée...
 
C

Compte Supprimé 979

Guest
Re : [RESOLU]Macro envoi Mail avec pièce jointe en PDF

Re,

Nous sommes bien d'accord, dans le code
Code:
.To = "PRENOM.NOM@GMAIL.COM"
C'est juste pour l'exemple,

Tu prends bien la valeur de la cellule contenant l'adresse mail :confused:

A+
 

gbstyle

XLDnaute Impliqué
Bonjour en applicant votre code j'arrive à bien ouvrir outllook cependant je n'arrive pas à y insérer ma plage de selection excel convertit en pdf dansle mail
Si vous pouvez m'aider j'en serai ravis ;)
VB:
Sub nouvelleentreeOI()

'Libération des variables
Set ObjOutlook = Nothing

Dim olApp As Outlook.Application
Dim olmail As Outlook.MailItem

Set olApp = New Outlook.Application
Set olmail = olApp.CreateItem(olMailItem)

Application.ScreenUpdating = False
    Range("A1:K53").Select
        Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:="Bon de commande" & "     " & Range("I3") & Range("G7")

With olmail
     .To = Range("G15")
     .Subject = "Bon de commande" & "     " & Range("I3")
     .Body = "Bonjour," & vbCrLf & "Ci joint Bon de commande." & vbCrLf & "Cordialement." & vbCrLf & " XXX. "
     .Display
End With

Set olmail = Nothing
Set olApp = Nothing

Set MaMessagerie = Nothing
'MsgBox "votre mail a bien été envoyé"
End Sub
 

Pat13127

XLDnaute Nouveau
Re : Macro envoi Mail avec pièce jointe en PDF

Bonjour Hypo78

Voici un code
VB:
Sub SendWithAtt()
' Nécessite la référence : Microsoft Outlook 1x Object Library
Dim olApp As Outlook.Application
Dim olMail As MailItem
Dim CurFile As String
Set olApp = New Outlook.Application
Set olMail = olApp.CreateItem(olMailItem)
' "C:\Users\Thierry\AppData\Local\Temp\MaFeuille.pdf "
CurFile = ThisWorkbook.Path & "\" & "MaFeuille.Pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=CurFile, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
With olMail
.To = "xxx@gmail.com"
.CC = "name2@domain2.com"
.Subject = "Main courante Flashover"
.Body = "Vous trouverez ci-joint le fichier PDF ..."
.Attachments.Add CurFile
'.Attachments.Add "c:\My Documents\book.doc"
.Display '.Send
End With
MsgBox "Merci de vérifier que le message apparait dans -messages envoyés- dans votre messagerie OUTLOOK."
 
' Effacer les variables objets
Set olMail = Nothing
Set olApp = Nothing
End Sub

A+
11 Ans après je retrouve le sujet... Et ça marche ! Après de longues heures de recherche je tombe sur ce qu'il me fallait.... Merci ! #grosdeterragedesujet
 

Discussions similaires

Réponses
1
Affichages
1 K
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 243
Messages
2 086 550
Membres
103 245
dernier inscrit
gdesign