VBA copier feuille excel (transformé en PDF) dans lotus note.
Gilles.DR315
Messages postés
26
Date d'inscription
Statut
Membre
Dernière intervention
-
Gilles.DR315 Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
Gilles.DR315 Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
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
- Mise en forme conditionnelle excel - Guide
- Word et excel gratuit - 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