Vba / envoi onglet par mail en pdf...

  • Initiateur de la discussion LAMULE
  • Date de début
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
 
Dernière modification par un modérateur:
L

LAMULE

Guest
Re : Vba / envoi onglet par mail en pdf...

Effectivement la date contient des "/"......avec le code REPLACE ça fonctionne parfaitement..

Problème résolu pour le nom du fichier....Merci à toi !!


Par ailleurs, pour insérer d'autres onglets dans mon pdf, je tente la fonction sheets(array("onglet1,"onglet2")) que j'insère ici en bleu. Mais le code renvoi une erreur.
_______________________________________________
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(array("OJO","perception")).ExportAsFixedFormat Type:=xlTypexslm, Filename:= _
ActiveWorkbook.Path & "\" & Range("z4") & "_" & "OJO" & "_" & Range("X3") & ".PDF"
 
Dernière modification par un modérateur:

fhoest

XLDnaute Accro
Re : Vba / envoi onglet par mail en pdf...

Bonjour,
il serait mieux je pense de faire une boucle et d'insérer une variable pour exporter les feuilles que tu as besoins.
Avec un tableau par exemple.
et une boucle for next.
exemple:
Code:
Sub test()

Dim tableau(10) 'pour 11 feuilles
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Sheets
tableau(x) = sh.Name
x = x + 1
Next

For i = 0 To Sheets.Count - 1
MsgBox tableau(i)
'ici mettre
'Sheets(tableau(i)).ExportAsFixedFormat Type:=xlTypexslm, Filename:= _
'ActiveWorkbook.Path & "\" & Range("z4") & "_" & tableau(i) & "_" & Range("X3") & ".PDF"
Next

End Sub
A tester bien sur.
A+
 
L

LAMULE

Guest
Re : Vba / envoi et impression onglet par mail en pdf via userform...

tout compte fait j'ai changé de direction, j'ai créer un UserForm me permettant d'utiliser des checkbox pour sélectionner les onglets à éditer....

Le problème c'est que je ne connais rien à VBA, je sèche complet !! ma logique Excel ne me sert à rien et pourtant je suis sur que ce n'est pas bien compliqué...

Le but est de saisir une adresse mail pour l'export d'1 PDF contenant les différents onglets sélectionné et aussi de faire la même pour l'impression papier...

J'ai un classeur de test mais il n'y a aucuns code VBA juste le UserForm est créer.
 

Pièces jointes

  • TEST.xlsm
    18.9 KB · Affichages: 128
  • TEST.xlsm
    18.9 KB · Affichages: 161
  • TEST.xlsm
    18.9 KB · Affichages: 182

Discussions similaires

Réponses
2
Affichages
244

Statistiques des forums

Discussions
312 248
Messages
2 086 593
Membres
103 248
dernier inscrit
Happycat