Echange Coaching Sportif ou Donut contre macro pdf mail
Bonjour,
J’ai trouvé plusieurs discussions et solutions imaginées ci-après pour mon problème mais je n’ai pas su les mettre en oeuvre. Je propose à celui qui trouvera la solution de le coacher pendant 3 mois
https://forum.excel-pratique.com/viewtopic.php?f=2&t=117040&p=709169&hilit=pdf+mail#p709169
https://forum.excel-pratique.com/viewtopic.php?f=2&t=117164&p=710262&hilit=pdf+mail#p710262
https://forum.excel-pratique.com/viewtopic.php?f=2&t=62441
J’ai un fichier excel me permettant d’envoyer 3 mois de programme d’entrainement personnel en cardio et renforcement aux personnes que je coach.
J’aimerais créer une macro (dont je découvre l’existence ce soir) me permettant en une seule action de:
- envoyer un mail à ‘a’!$A$3
- comportant en PDF les
- X premières pages de feuille 1 (avec X = ’cardio ecran’!A1)
- Y premières page de feuille 2 (avec Y = ‘écran muscu’!A1)
- Avec comme objet de mail « programme d’entraînement »
- Comme texte de mail « Bonjour ‘a’!$A$3, voici votre programme blablabla »
Voici un fichier similaire.
Merci par avance, peut-être, pour votre aide, au plaisir de vous aider à mon tour,
Bien cordialement
julien
Bonjour,
Sub envoi()
Dim messagerie As Object
Dim email As Object
Dim nompdf As String
On Error GoTo erreur
nompdf = Environ("Temp") & "\" & "coaching"
Sheets("résumé").ExportAsFixedFormat Type:=xlTypePDF, Filename:=nompdf & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Set messagerie = CreateObject("Outlook.Application")
Set email = messagerie.CreateItem(0)
With email
.to = ""
.Subject = "Programme d’entraînement"
.htmlbody = "Bonjour,<br>voici votre programme blablabla" & .htmlbody
.ReadReceiptRequested = True
.Attachments.Add nompdf & ".pdf"
.display
End With
Set email = Nothing
Set messagerie = Nothing
Kill Environ("Temp") & "\" & "coaching" & ".pdf"
Exit Sub
je n'ai pas compris où se trouvait ‘a’!$A$3, il n'y a pas de feuille a
sinon, lance la macro envoi (si tu n'as pas outlook, revient me voir)
Bonsoir Steelson,
Merci beaucoup pour ton aide! Effectivement j'ai joint le mauvais fichier. Je n'avais pas précisé non plus que je suis sur Excel Mac 2011 et que j'utilise mail. J'ai recoupé le code que tu as créé avec quelque chose trouvé ailleurs pré par Ron de Bruin
tout fonctionne. Merci Beaucoup! Voici le résultat pour ceux que ça pourrait intéresser:
Sub mailpdfCARDIO()
Dim TempPDFFolder As String
Dim PDFfolder As String
Dim PDFfileName As String
'Path to folder where we save the pdf's temporary. The code will create
'the folder named "PDFTempFolder" in your Documents folder for you
'Note: this will not be used when you create a pdf of one sheet but not remove this line
TempPDFFolder = MacScript("return (path to documents folder) as string") & "PDFTempFolder:"
'Folder where you want to save the PDF file, Documents folder in this example
PDFfolder = MacScript("return (path to documents folder) as string")
'Enter the file name that you want to use for the PDF, do not add the extension.
PDFfileName = "nom à donner au fichier" & Format(Now, "dd-mm-yyyy") & " " & Range("A3")
Application.ScreenUpdating = False
'You can also use this for the activesheet : ActiveSheet.Copy
Worksheets("nom de la feuille à envoyer").PageSetup.PrintArea = "c'est la plage de donnée à imprimer $A$1:$P$" & Range("ça c'est la dernière ligne de cette plage de donnée $I$6")
Worksheets("nom de la feuille à envoyer").Copy
'Do not change the macro call below, you see that we only have one macro call
'if we create a PDF of one sheet because we not have a problem with the bug that
'create a pdf of each worksheet in the workbook because there is only one sheet.
Call MakePDF(TempPDFFolder, PDFfolder, PDFfileName, True)
'Close temporary file
ActiveWorkbook.Close SaveChanges:=False
'Create and send E-mail if the PDF file exist
If FileExistsOnMac(PDFfolder & PDFfileName & ".pdf") = True Then
MailFromMacWithMail bodycontent:="Bonjour," & vbNewLine & vbNewLine & "Voici votre programme cardio. Rendez-vous sur votre compte myogie.com pour indiquez un changement d'emploi du temps, une nouvelle mesure de condition physique. " & vbNewLine & vbNewLine & "Bien cordialement." & vbNewLine & vbNewLine, _
mailsubject:="Votre Entraînement Cardio Myogie", _
toaddress:=Range("référence de la cellule dans laquelle est l'adresse email exemple A1"), _
ccaddress:="", _
bccaddress:="", _
attachment:=PDFfolder & PDFfileName & ".pdf", _
displaymail:=False
End If
Application.ScreenUpdating = True
End Sub
'Merci Steelson
Veux-tu teste le programme
julien