Excel 2007 + PDF + THUNDERBIRD
Bonjour à tous
J'ai un niveau "moyen +" sous Excel que j'utilise régulièrement depuis 95, mais je suis une **** en VBA.
Je vous explique le soucis qui me ronge depuis maintenant plusieurs semaine.
Je travaille actuellement sur un fichier Excel 2007 avec Macros qui contient plusieurs feuilles très similaires dans leur présentation :
- Bon de Commande
- Intervention Ponctuelle
- Devis
- Rapport d'Intervention
J'ai créé des petites macros pour enregistrer automatiquement ce fichier sous un nom spécifique qui est en fait une valeur de cellule (pour moi toujours en N2 sur toute les feuilles) qui va rechercher le jour, le nom du client, le fournisseur, la référence, etc... sur la feuille active afin de créer un nom unique, et j'exporte correctement que ce soit en format .xlsm (pour la création, nouvelle version ou sauvegarde) ou en .pdf (pour envoyer par Email).
Le fait est que j'utilise Thunderbird (pour son prix) et j'aimerai faire une macro qui puisse faire les choses suivantes dans l'ordre :
1 - Créer un PDF de la feuille active uniquement soit selon une plage de cellules, soit par la zone d'impression prédéfinie. Le sort de ce PDF n'est pas important à la fin de cette procédure, il pourra être généré à nouveau ou sera disponible dans les Emails envoyés.
2 - Créer un email à partir des valeurs de cellules de la feuille active : Destinataire, Objet, et même le Corps du Mail, et y joindre le PDF en question.
3 - Soit afficher cet Email pour validation ou afficher un popup "Voulez vous envoyer l'Email" > OK ou ANNULER
J'ai cherché depuis quelques semaines et je ne trouve que des solutions basés sur Outlook ou avec des outils comme CDO mais je ne suis malheureusement pas assez doué pour adapter les-dites solutions à mon document.
Pourriez vous me dire si une tel procédure est possible ou pas?
Je tiens le document à votre disposition et attend avec impatience vos commentaires ou solutions.
Vous remerciant par avance
Olivier
Bonjour,
Je peux te dire que créer un mail à partir d'excel pour l'envoyer à partir de TB est possible, je n'ai pas les sources en tête mais je l'ai vu je crois sur le forum, fait une recherche envoi mail Thunderbird, tu devrais trouver quelques topic à ce sujet.
Pour enregistrer en pdf, je ne veux pas te dire de bêtises alors je préfère rester muet
Sylvain
Je viens de trouver un lien qui pourrait t'interesser pour la création de mail sur TB via excel, toutefois il faut le faire via le shell:
Pour enregistrer en pdf, sous excel 2007, il me semble que c'est en native donc tu doit pouvoir le faire
Voivi un lien sur lequel un code apparait
Bonjour Sylvain et merci pour ta réponse.
J'ai reussi à effectuer une manipulation un peu "roots" avec CDO
Je dois encore trouver une petite modification pour supprimer le PDF temporaire post-envoi mais sinon ça marche plutôt bien.
Je met ci-dessous le code que j'ai utilisé pour ceux que ça interresse :
Sub sendmail1()
Dim filepath As String
filepath = "adresse/du/fichier/temporaire" & Range("N2").Value & ".pdf" 'c'est l'adresse du dossier temp spécifique + le nom du fichier + pdf
Range("A1:I65").Select 'C'est la Zone à Exporter
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
filepath, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
'Config du CDOSYS
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields
With Flds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'send via port
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "Mon Smtp"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Update
End With
With iMsg
Set .Configuration = iConf
.From = "monadresse@mail" 'TODO:change email address here
.To = ActiveSheet.Range("F6").Value 'TODO:change email address here 'Puisque j'ai l'adresse email de destination en F6
.Subject = Range("B9").Value& " " & Range("C10").Value 'Pour avoir un Objet en fonction de données de cellules
.HTMLBody = "Bonjour" & "<br>" & "<br>" & "Cordialement" 'Corp du message
.Fields("urn:schemas:mailheader:disposition-notification-to") = "monadresse@mail"
.Fields("urn:schemas:mailheader:return-receipt-to") = "monadresse@mail"
.Fields.Update
.AddAttachment (filepath)
.Send
End With
Set iMsg = Nothing
Set iConf = Nothing
End SubCordialement
Olivier DARNAT