IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[Lotus Notes] insertion d'un tableau dans le corps du mail


Sujet :

Macros et VBA Excel

  1. #1
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 266
    Points
    34 266
    Par défaut [Lotus Notes] insertion d'un tableau dans le corps du mail
    Bonjour à tous,
    je travaille en ce moment sur une automatisation de traitement des alertes depuis Excel. Les mails sont envoyé via Lotus Notes. Le traitement se fait pour le moment à la main.
    Ce que je chercher actuellement :
    - un lien/code pour insérer dans le corps du message un tableau Excel (tableau ou image du tableau).

    Mon code de départ, récupéré sur DVP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    Public Sub MS_SendMessageLotusNotes(vSendTo As Variant, strSubject As String, _
                                    strBody As String, Optional vCC As Variant = "", _
                                    Optional strAttachment As String = "", _
                                    Optional bKeepTrack As Boolean = False)
        'rem : vSendTo is a string var in case of a unique recipient
        '                a variant array of string in a case of a mailing list
        On Error GoTo MS_SendMessageLotusNotes_error
     
        Dim objNoteSession As Object
        Dim objDbNotes As Object
        Dim objMailDoc As Object
        Dim objRichTextFile As Object
        Dim objAttachment As Object
     
        Set objNoteSession = CreateObject("Notes.Notessession")
        Set objDbNotes = objNoteSession.GETDATABASE("", "")
     
        If objDbNotes.IsOpen Then
           ' nop
        Else
            Call objDbNotes.OPENMAIL
        End If
        Set objMailDoc = objDbNotes.CREATEDOCUMENT
        objMailDoc.Form = "Memo"
        objMailDoc.SendTo = vSendTo ' recipient
        objMailDoc.CopyTo = vCC
        objMailDoc.Subject = strSubject
     
        objMailDoc.Body = strBody
        objMailDoc.SaveMessageOnSend = bKeepTrack ' backup Message dans le sendTo
        If strAttachment <> "" Then
            Set objRichTextFile = objMailDoc.CreateRichTextItem("Attachment")
            Set objAttachment = objRichTextFile.EmbedObject(1454, "", strAttachment, "Attachment")
    '        objMailDoc.CreateRichTextItem ("Attachment")
        End If
        objMailDoc.PostedDate = Now()
        objMailDoc.SEND False, vSendTo
     
    MS_SendMessageLotusNotes_exit:
        Set objNoteSession = Nothing
        Set objDbNotes = Nothing
        Set objMailDoc = Nothing
        Set objAttachment = Nothing
        Set objRichTextFile = Nothing
        Exit Sub
     
    MS_SendMessageLotusNotes_error:
        MsgBox "Error. Lotus may be closed" & vbCr & Error$, vbCritical
        Resume MS_SendMessageLotusNotes_exit
    End Sub
    des infos sur la propriétés Body peut-être ?

    merci d'avance.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    je ne suis pas develloppeur, mais ayant besoin d'automatiser certaines taches voici ma bidouille.
    je lance le code à partir d'Excel (avec les references Lotus), mais ca doit etre faisable dans Lotus (6+).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
        Dim Lotus_Session As New NotesSession
        Dim Lotus_BDS As NotesDatabase
        Dim Lotus_Doc1 As NotesDocument
        Dim Lotus_Doc1_Body As NotesRichTextItem
        Dim Lotus_Doc1_Nav As NotesRichTextNavigator
        Dim RGE_ZoneExport As range
        Dim STR_LotusBody As String
        Dim i as integer
        Dim j as integer
     
    'ZoneExport  est la range dans excel, ie plage de cellules ous sont les données du tableau (entetes comprises)
     
    Set Lotus_Session = CreateObject("Lotus.NOTESSESSION")
        Call Lotus_Session.Initialize
        Set Lotus_BDS = Lotus_Session.getdatabase([la base])
        Set Lotus_Doc1 = Lotus_BDS.createdocument
     
        Set Lotus_Doc1_Body = Lotus_Doc1.CreateRichTextItem("Body")
     
        Call Lotus_Doc1_Body.AppendTable(RGE_ZoneExport.Rows.Count, RGE_ZoneExport.Columns.Count)
     
        Set Lotus_Doc1_Body = Lotus_Doc1.GetFirstItem("body")
        Set Lotus_Doc1_Nav = Lotus_Doc1_Body.CreateNavigator
        Call Lotus_Doc1_Nav.FindFirstElement(RTELEM_TYPE_TABLECELL)
     
         For i = 1 To RGE_ZoneExport.Rows.Count Step 1
               For j = 1 To RGE_ZoneExport.Columns.Count Step 1
                   Call Lotus_Doc1_Body.BeginInsert(Lotus_Doc1_Nav)
                   Call Lotus_Doc1_Body.AppendText(RGE_ZoneExport(i, j))
                   Call Lotus_Doc1_Body.EndInsert
                   Call Lotus_Doc1_Nav.FindNextElement(RTELEM_TYPE_TABLECELL)
               Next j
        Next i
     
        Call Lotus_Doc1.ReplaceItemValue("Subject", [le sujet du message, string])
        Call Lotus_Doc1.Send(False, [le(s) destinataire(s) du message, string])

    Cela repond à mes besoins, en esperant que ca puisse aider d'autres.

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/11/2012, 16h35
  2. [Débutant] [uitable] Insertion d'un tableau dans un GUI
    Par Ma29200 dans le forum Interfaces Graphiques
    Réponses: 6
    Dernier message: 25/04/2012, 17h15
  3. Insertion d'un tableau dans un autre
    Par taz_wanted dans le forum VBA Word
    Réponses: 2
    Dernier message: 24/02/2012, 08h15
  4. comment inclure un tableau dans le CORPS d'un mail Lotus Notes
    Par Mathusalem dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/07/2008, 16h48
  5. Insertion d'un tableau dans une interface
    Par the java lover dans le forum Windows Forms
    Réponses: 4
    Dernier message: 03/03/2007, 13h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo