VBA copier feuille excel (transformé en PDF) dans lotus note.
Gilles.DR315
Messages postés
28
Statut
Membre
-
Gilles.DR315 Messages postés 28 Statut Membre -
Gilles.DR315 Messages postés 28 Statut Membre -
Bonjour,
Je vous expose mon problème
j'ai une commande macro qui copie et transforme une feuille Xls en format PDF pour l'envoyer en pièce jointe par E-Mail. (Lotus)
Au boulot nous utilisons Lotus note 8.5
Voici le code il fonctionne, mais le problème c'est qu'il va créer un nouveau message lotus, sans récupérer les informations d'en tête de l'expéditeur carte de visite. (on a juste le nom / prénom)
Et la pièce jointe en PDF s'insère bien mais elle n'est pas dans le corps du message.
Je dois solutionner le problème d'entête lors de la création du mail.
Il doit y avoir un problème sur la création du "memo" initié par la ligne de commande.
Merci d'avance de votre appui et astuces.
J'ai un exemple sur une feuille ici :
https://forum.excel-pratique.com/download/file.php?id=83204
Je vous expose mon problème
j'ai une commande macro qui copie et transforme une feuille Xls en format PDF pour l'envoyer en pièce jointe par E-Mail. (Lotus)
Au boulot nous utilisons Lotus note 8.5
Voici le code il fonctionne, mais le problème c'est qu'il va créer un nouveau message lotus, sans récupérer les informations d'en tête de l'expéditeur carte de visite. (on a juste le nom / prénom)
Et la pièce jointe en PDF s'insère bien mais elle n'est pas dans le corps du message.
Sub EnvoiEmailPDF()
Const EMBED_ATTACHMENT As Long = 1454
Const stPath As String = ""
Sub EnvoiEmailPDF()
MsgBox ("Fiche d'accord transmise à LOTUS NOTES en format PDF pour renvoi.")
Sheets("Fiche Saisie pour Apac").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ActiveWorkbook.Path & "\" & "Accord.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
Dim MaDate As String
Dim stFileName As String
Dim vaRecipients As Variant
Dim noSession As Object
Dim noDatabase As Object
Dim noDocument As Object
Dim noEmbedObject As Object
Dim noAttachment As Object
Dim stAttachment As String
Dim vaMsg As Variant
Dim StrSignature As Variant
Dim stSubject As String
On Error GoTo TraiteErreur
stSubject = ""
MaDate = Date
vaMsg = "Bonjour, " & vbCrLf & vbCrLf & vbCrLf & _
vbCrLf & vbCrLf & vbCrLf & vbCrLf _
& "Bonne réception." & vbCrLf _
& "Cordialement."
stFileName = "test"
stAttachment = ActiveWorkbook.Path & "\" & "Accord.PDF"
'test de l'existance de la PJ
If Dir(stAttachment) = "" Then GoTo TraitePJ
vaRecipients = ""
Set noSession = CreateObject("Notes.NotesSession")
Set noDatabase = noSession.GETDATABASE("", "")
'If Lotus Notes is not open then open the mail-part of it.
If noDatabase.IsOpen = False Then noDatabase.OPENMAIL
'Create the e-mail and the attachment.
Set noDocument = noDatabase.CREATEDOCUMENT
Set noAttachment = noDocument.CREATERICHTEXTITEM("stAttachment")
Set noEmbedObject = noAttachment.EmbedObject(EMBED_ATTACHMENT, "", stAttachment)
'Add values to the created e-mail main properties.
With noDocument
.Form = "Memo"
.sendto = vaRecipients
.Subject = stSubject
.body = vaMsg
.SaveMessageOnSend = True
.PostedDate = Now()
End With
'Affichage du mail dans Lotus Notes.
Dim Workspace
Set Workspace = CreateObject("Notes.NotesUIWorkspace")
Call Workspace.EditDocument(True, noDocument).FieldSetText("Body", vaMsg)
'Release objects from memory.
Set noEmbedObject = Nothing
Set noAttachment = Nothing
Set noDocument = Nothing
Set noDatabase = Nothing
Set noSession = Nothing
Exit Sub
TraitePJ:
MsgBox "Un problème est survenu lors de l'insertion de la pièce jointe", vbCritical, "Error"
Set noEmbedObject = Nothing
Set noAttachment = Nothing
Set noDocument = Nothing
Set noDatabase = Nothing
Set noSession = Nothing
Exit Sub
TraiteErreur:
MsgBox "Un problème est survenu lors de la création du mail", vbCritical, "Error"
Set noEmbedObject = Nothing
Set noAttachment = Nothing
Set noDocument = Nothing
Set noDatabase = Nothing
Set noSession = Nothing
End Sub
Je dois solutionner le problème d'entête lors de la création du mail.
Il doit y avoir un problème sur la création du "memo" initié par la ligne de commande.
Merci d'avance de votre appui et astuces.
J'ai un exemple sur une feuille ici :
https://forum.excel-pratique.com/download/file.php?id=83204
A voir également:
- VBA copier feuille excel (transformé en PDF) dans lotus note.
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Liste déroulante excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Word et excel gratuit - Guide
- Mise en forme conditionnelle excel - Guide
1 réponse
Bonjour,
La pièce jointe ne s'affiche pas dans le corps du message parce qu'elle n'est pas incorporée dans le NotesRichTextItem "Body". Dans votre code elle est placée dans un champ qui ne fait pas partie du masque standard "Memo", donc Notes l'affiche à part. Mais cela n'a pas d'importance en l'occurrence. Lors de l'envoi, Notes joindra bien la pj. Je suppose que ces messages sont destinés à être envoyés à l'extérieur de votre entreprise. Dans ce cas n'oubliez pas que de toute façon votre message va être acheminé en format MIME et que vous ne savez pas quel logiciel servira pour les lire, et que la plupart des messageries n'affichent pas les pj dans le corps du msg, plus souvent elles les affichent à part (Lotus Notes est assez rare à gérer les pj au sein du corps).
Je ne suis pas sûr d'avoir compris la question concernant l'"en-tête". De quelles informations s'agit-il? Le bloc-signature (pavé d'infos avec nom d'expéditeur, adresse, tél, etc. généralement à la fin des msgs)? Dans ce cas d'où viennent-elles ces informations d'habitude? Insertion automatique paramétrée, modèle de courrier, ... ? Si c'est une insertion automatique de texte configuré dans les préférences ou à partir d'un fichier alors vous pouvez l'ajouter manuellement avant d'envoyer le message avec l'option adéquate ou faire ajouter en même temps que le message d'accompagnement (ligne 35). D'autres solutions plus sophistiquées existent bien-sûr.
Je me permets une petite remarque: ce que vous faites là est relativement avancé. Ces techniques permettent de faire de belles choses et aussi de belles bétises. Je ne peux pas conseiller la démarche de récupérer des brins de code sur l'Internet et de les utiliser sans savoir ce que l'on fait. Il faut soit se faire former correctement (et CCM n'est pas vraiment là pour ça), soit confier le travail à un professionnel qualifié.
La pièce jointe ne s'affiche pas dans le corps du message parce qu'elle n'est pas incorporée dans le NotesRichTextItem "Body". Dans votre code elle est placée dans un champ qui ne fait pas partie du masque standard "Memo", donc Notes l'affiche à part. Mais cela n'a pas d'importance en l'occurrence. Lors de l'envoi, Notes joindra bien la pj. Je suppose que ces messages sont destinés à être envoyés à l'extérieur de votre entreprise. Dans ce cas n'oubliez pas que de toute façon votre message va être acheminé en format MIME et que vous ne savez pas quel logiciel servira pour les lire, et que la plupart des messageries n'affichent pas les pj dans le corps du msg, plus souvent elles les affichent à part (Lotus Notes est assez rare à gérer les pj au sein du corps).
Je ne suis pas sûr d'avoir compris la question concernant l'"en-tête". De quelles informations s'agit-il? Le bloc-signature (pavé d'infos avec nom d'expéditeur, adresse, tél, etc. généralement à la fin des msgs)? Dans ce cas d'où viennent-elles ces informations d'habitude? Insertion automatique paramétrée, modèle de courrier, ... ? Si c'est une insertion automatique de texte configuré dans les préférences ou à partir d'un fichier alors vous pouvez l'ajouter manuellement avant d'envoyer le message avec l'option adéquate ou faire ajouter en même temps que le message d'accompagnement (ligne 35). D'autres solutions plus sophistiquées existent bien-sûr.
Je me permets une petite remarque: ce que vous faites là est relativement avancé. Ces techniques permettent de faire de belles choses et aussi de belles bétises. Je ne peux pas conseiller la démarche de récupérer des brins de code sur l'Internet et de les utiliser sans savoir ce que l'on fait. Il faut soit se faire former correctement (et CCM n'est pas vraiment là pour ça), soit confier le travail à un professionnel qualifié.
Merci d'avoir pris le temps de me répondre.
Non l'usage n'est pas pour l'extérieur.
L'usage est interne à l'entreprise. Les employés sont tous sous lotus note.
Nous avons dans notre en tête (situé en haut à gauche) , à la création du message/memo
les informations détaillés sur l'expéditeur (fonction, tél, adresse, logo....), ces informations sont paramétrées/sauvegardées dans le menu préférences de chaque utilisateur.
Donc ce bloc signature est situé en tout en haut à gauche.
L'envoi d'un nouveau message à un collègue, reprend bien toutes ses informations.
La signature, elle est situé en bas.
Mais pour mon code VBA, la création du mail ne fait reprendre que le nom et prénom.
Mon code n'arrive donc pas à la création du "memo" à reprendre les informations sauvegardés dans les préférences de l'utilisateur pour la création du bloc signature.
Ca ne marche pas non plus pour les boites e-mail générique ou partagés.
J'ai effectivement l'insertion de la pièce jointe qui n'est pas dans le corps du message.
Je dois à mon avis avoir une mauvaise ligne de code pour la création du message.
Ce n'est pas un message, comme-ci je faisais nouveau memo avec le clic de la souris directement sous note.
Je suis sous lotus 8.5
Merci