XL 2010 Email piece jointe

jean123

XLDnaute Occasionnel
Bonjour à tous, étant novice en la matière, je sollicite votre aide.
J'ai ce bout de code qui me permet d'envoyer un mail avec une pièce jointe en PDF à partir d'une feuille Excel, mais cela ne fonctionne pas, car la feuille en question est masquée (feuil 5) et j'aimerai quelle le reste.
l'adresse d'enregistrement du PDF est différente de celle du classeur, mais je n'arrive pas à enregistrer le PDF où je veux
Pouvez, vous m'aidez


Private Sub EnvoisMail()

Dim OutlookApp As Object
Dim Mail As Object
Dim curfile

Set OutlookApp = CreateObject("Outlook.Application")
Set Mail = OutlookApp.CreateItem(0)

curfile = ThisWorkbook.Path & "\" & Range("C3").Value & "_" & Range("C8").Value & ".Pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=curfile, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False

With Mail
.SentOnBehalfOfName = "boite mail"
.To = ActiveSheet.Range("C10").Text
.Subject = "Duplicata De Reçu "

.HTMLBody = "<br><br>" & GetBoiler("adresse fichier htm")
.Attachments.Add curfile
.Send
End With
ActiveWorkbook.Save

End Sub
 

jean123

XLDnaute Occasionnel
Re : Email piece jointe

nickel merci pour l'info
par-contre pour cibler la feuille masquée (feuille 5) je fais comment sur ce bout de code ? sachant que je souhaite enregistrer le pdf sur une autre adresse que celle du classeur

curfile = ThisWorkbook.Path & "\" & Range("C3").Value & "_" & Range("C8").Value & ".Pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=curfile, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
 

jean123

XLDnaute Occasionnel
Re : Email piece jointe

comme ceci
j'ai un message d'erreur

curfile = ThisWorkbook.Path & "\" & Range("C3").Value & "_" & Range("C8").Value & ".Pdf"
sheets("Feuil5").ExportAsFixedFormat Type:=xlTypePDF, Filename:=curfile, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
 

Yaloo

XLDnaute Barbatruc
Re : Email piece jointe

Qd chose comme ça :
VB:
Private Sub EnvoisMail()

Dim OutlookApp As Object
Dim Mail As Object
Dim curfile

'Cache les événements à l'écran
Application.ScreenUpdating = False

Set OutlookApp = CreateObject("Outlook.Application")
Set Mail = OutlookApp.CreateItem(0)
'Affiche la feuille
Sheets("Feuil5").Visible = True
curfile = ThisWorkbook.Path & "\" & Range("C3").Value & "_" & Range("C8").Value & ".Pdf"

Sheets("Feuil5").ExportAsFixedFormat Type:=xlTypePDF, Filename:=curfile, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
'Masque la feuille
Sheets("Feuil5").Visible = False

With Mail
  .SentOnBehalfOfName = "boite mail"
  .To = ActiveSheet.Range("C10").Text
  .Subject = "Duplicata De Reçu "
  .HTMLBody = "<br><br>" & GetBoiler("adresse fichier htm")
  .Attachments.Add curfile
  .Send
End With
ActiveWorkbook.Save
End Sub

A+
 

jean123

XLDnaute Occasionnel
Re : Email piece jointe

j'ai un message d'erreur sur .send

Sans titre.png
 

Yaloo

XLDnaute Barbatruc
Re : Email piece jointe

Ca doit bloquer sur GetBoiler si tu n'as pas de fonction correspondante.

Fais un essai en mettant un texte bidon du type .HTMLBody = "<br><br>" & "Bonjour"

Mais il serait bien d'avoir un fichier sans données confidentielles car si on continu comme ça on va pouvoir écrire un roman ;)
 

jean123

XLDnaute Occasionnel
Re : Email piece jointe

voila le code complet peut être ce sera plus clair pour toi

Private Sub EnvoisMail()

Dim OutlookApp As Object
Dim Mail As Object
Dim curfile
Const olFormatHTML = 2
'Cache les événements à l'écran
Application.ScreenUpdating = False

Set OutlookApp = CreateObject("Outlook.Application")
Set Mail = OutlookApp.CreateItem(0)
'Affiche la feuille
Sheets("feuil5").Visible = True
curfile = ThisWorkbook.Path & "\" & Range("C3").Value & "_" & Range("C8").Value & ".Pdf"

Sheets("feuil5").ExportAsFixedFormat Type:=xlTypePDF, Filename:=curfile, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
'Masque la feuille
Sheets("feuil5").Visible = False

With Mail
.SentOnBehalfOfName = "boitemail@tructruc.fr"
.To = ActiveSheet.Range("C10").Text
.Subject = "Duplicata De Reçu "
.Body = olFormatHTML
.HTMLBody = "<br><br>" & GetBoiler("adresse htm")
.Attachments.Add curfile
.Send
End With
ActiveWorkbook.Save
End Sub


Function GetBoiler(ByVal sFile As String) As String
Dim fso As Object
Dim ts As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
GetBoiler = ts.readall
ts.Close
End Function
 

Discussions similaires

Réponses
6
Affichages
308

Statistiques des forums

Discussions
312 321
Messages
2 087 261
Membres
103 498
dernier inscrit
FAHDE