L
LAMULE
Guest
Bonjour,
je vous expose mon problème :
J'ai besoin d'envoyer certain onglet de mon classeur par email au format PDF. Le nom du fichier PDF est dynamique car il prend en compte la valeur de plusieurs cellules.
Tout fonctionne jusqu'au moment où dans le code je fait référence à une cellule au format DATE....le code me renvoi une erreur....Par contre si je formate la cellule en STANDARD, tout fonctionne....
Et aussi comment joindre les onglets que je désire dans le PDF ??
Voici le code :
au passage ce code à été trouvé sur le web est je remercie l'auteur de ce dernier !!
si toutefois il se reconnais : UN GRAND MERCI A TOI !!!! (je ne peux citer la source car je ne la retrouve plus.)
_____________________________
EN ROUGE LA CELLULE CONTENANT LA DATE A UTILISER POUR NOMMER LE FICHIER
Sub Envoi_Feuil_Excel_en_PDF()
Dim messageHTML
On Error GoTo errorHandler
'on cré le fichier PDFdans le même dossier que le fichier source
Sheets("OJO").ExportAsFixedFormat Type:=xlTypexslm, Filename:= _
ActiveWorkbook.Path & "\" & Range("z4") & "_" & "OJO" & "_" & Range("X3") & ".PDF"
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "OJO " & Range("OJO!X3") & " service du " & Range("OJO!X4") 'A modifier
objMessage.From = "a" 'adresse mail de l'expéditeur n'est pas obligatoire
objMessage.To = Range("OJO!x22") 'Email du destinataire doit-être correct ici
'objMessage.Cc = "azerty@azerty.fr" Email du destinataire doit-être correct ici
objMessage.TextBody = "Veuillez trouvé ci-joint l'OJO." & vbCrLf ' A modifier
piece_jointe = ActiveWorkbook.Path & "\" & Range("z4") & "_" & "OJO" & "_" & Range("X3") & ".PDF"
messageHTML = "Ceci est un message en HTML"
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "XXXXXXXX" 'A changer
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Update
objMessage.AddAttachment (piece_jointe) 'On ajoute la piéce jointe, il est possible d'envoyer plusieurs pièces
'objMessage.AddAttachment (piece_bis) 'dans ce cas on ajoute un objMessage.AddAttachement () par pièce
objMessage.Send
MsgBox "Le mail a été bien envoyé !"
'la feuille PDF créée est est supprimée après l'envoi
Kill ActiveWorkbook.Path & "\" & Range("z4") & "_" & "OJO" & "_" & Range("X3") & ".PDF"
'si erreur on sort de la procédure
Exit Sub
errorHandler:
'description de l'erreur survenue
MsgBox Err.Description
End Sub
je vous expose mon problème :
J'ai besoin d'envoyer certain onglet de mon classeur par email au format PDF. Le nom du fichier PDF est dynamique car il prend en compte la valeur de plusieurs cellules.
Tout fonctionne jusqu'au moment où dans le code je fait référence à une cellule au format DATE....le code me renvoi une erreur....Par contre si je formate la cellule en STANDARD, tout fonctionne....
Et aussi comment joindre les onglets que je désire dans le PDF ??
Voici le code :
au passage ce code à été trouvé sur le web est je remercie l'auteur de ce dernier !!
si toutefois il se reconnais : UN GRAND MERCI A TOI !!!! (je ne peux citer la source car je ne la retrouve plus.)
_____________________________
EN ROUGE LA CELLULE CONTENANT LA DATE A UTILISER POUR NOMMER LE FICHIER
Sub Envoi_Feuil_Excel_en_PDF()
Dim messageHTML
On Error GoTo errorHandler
'on cré le fichier PDFdans le même dossier que le fichier source
Sheets("OJO").ExportAsFixedFormat Type:=xlTypexslm, Filename:= _
ActiveWorkbook.Path & "\" & Range("z4") & "_" & "OJO" & "_" & Range("X3") & ".PDF"
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "OJO " & Range("OJO!X3") & " service du " & Range("OJO!X4") 'A modifier
objMessage.From = "a" 'adresse mail de l'expéditeur n'est pas obligatoire
objMessage.To = Range("OJO!x22") 'Email du destinataire doit-être correct ici
'objMessage.Cc = "azerty@azerty.fr" Email du destinataire doit-être correct ici
objMessage.TextBody = "Veuillez trouvé ci-joint l'OJO." & vbCrLf ' A modifier
piece_jointe = ActiveWorkbook.Path & "\" & Range("z4") & "_" & "OJO" & "_" & Range("X3") & ".PDF"
messageHTML = "Ceci est un message en HTML"
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "XXXXXXXX" 'A changer
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Update
objMessage.AddAttachment (piece_jointe) 'On ajoute la piéce jointe, il est possible d'envoyer plusieurs pièces
'objMessage.AddAttachment (piece_bis) 'dans ce cas on ajoute un objMessage.AddAttachement () par pièce
objMessage.Send
MsgBox "Le mail a été bien envoyé !"
'la feuille PDF créée est est supprimée après l'envoi
Kill ActiveWorkbook.Path & "\" & Range("z4") & "_" & "OJO" & "_" & Range("X3") & ".PDF"
'si erreur on sort de la procédure
Exit Sub
errorHandler:
'description de l'erreur survenue
MsgBox Err.Description
End Sub
Dernière modification par un modérateur: