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 :

Coller une image/tableau dans Lotus Note


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Bragu Demon
    Homme Profil pro
    Intégrateur d'Explopitation
    Inscrit en
    Juin 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Intégrateur d'Explopitation
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2013
    Messages : 125
    Par défaut Coller une image/tableau dans Lotus Note
    J'ai lu cette discussion et j'ai le même problème.

    J'utilise les chartobjects d'excel pour exporter mon range dans un fichier.

    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
    '@PARAM {Range} Range de cellule que l'on souhaite exporter
    '@PARAM {String} Fichier de destination pour l'export
    '@RETURN {Boolean}
    Function SaveRngAsJPG(rng As Range, tempfile As String) As Boolean
      Dim chtObj As ChartObject
      On Error GoTo err
      With ActiveSheet
        .Activate
        Set chtObj = .ChartObjects.Add(9, 9.75, rng.Width, rng.Height)
        chtObj.Name = "Météo"
        ActiveSheet.Shapes("Météo").Line.Visible = msoFalse
        Selection.Locked = msoFalse
        chtObj.Width = rng.Width
        chtObj.Height = rng.Height
        rng.CopyPicture
        ActiveSheet.ChartObjects("Météo").Activate
        ActiveChart.Paste
        ActiveChart.export FileName:=tempfile, FilterName:="jpg"
        chtObj.Delete
      End With
    SaveRngAsJPG = True
    On Error GoTo 0
    Exit Function
    err:
      SaveRngAsJPG = False
      MsgBox "Erreur dans la création de l'objet ""Chart"" : " & vbLf & err.Number & vbLf & err.Description & err.source
      On Error GoTo 0
    End Function
    J'obtiens donc un fichier image "Applicatif.jpg" qui contient bien ce que je souhaite.


    Pour effectuer l'envoi j'utilise cette fonction d'envoi :
    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    'Envoyer un fichier dans le Body d'un email en HTML
    '@PARAM {String} Fichier à transmettre
    '@RETURN {Boolean}
    Function sendmail(file) As Boolean
    Dim A As String, Cc As String, objet As String
    Dim s As Object, db As Object, docMail As Object, body As Object
    Dim Stream As Object, Header As Object, mimeBody As Object
      On Error GoTo err
      Application.ScreenUpdating = False
      A = "gbranchard-ext@girc.agirc-arrco.fr"
      Cc = ""
      objet = "Compte rendu d'exploitation au " & Format(Date, "DD/MM/YYYY")
     
      Set s = CreateObject("Notes.NotesSession")
      Set db = s.GetDatabase("", "")
      Set docMail = db.CreateDocument
      Set body = docMail.CreateMIMEEntity
      Set Header = body.CreateHeader("MIME-Version")
      Set Stream = s.CreateStream
      Set Header = body.CreateHeader("Content-Type")
      Set mimeBody = body.CreateChildEntity()
     
      If Not db.IsOpen Then db.OPENMAIL
      s.ConvertMIME = False
      Call Header.SetHeaderValAndParams("multipart/related;boundary=""= NextPart_=""")
      Call Header.SetHeaderVal("1.0")
      Application.ScreenUpdating = True
    'Création du mail
      With docMail
        .Form = "Memo"
        .SendTo = A
        .CopyTo = Cc
        .Subject = objet
        .From = s.CommonUserName
        .ReplyTo = s.CommonUserName
        '.Principal = from_address
      End With
      Call Stream.WriteText(Html)
      Call Stream.WriteText("<img src='cid:" & file & "' border=0 hspace=0 vspace=0>")
      Call mimeBody.SetContentFromText(Stream, "text/html;charset=UTF-8", ENC_BASE64)
      'Call stream.WriteText( _
      '  "<html><center>" & _
      '  "Ce mail a été généré par un automate, merci de ne pas répondre à ce mail. " & _
      '  "Pour nous contacter, merci d'utiliser le groupe " & _
      '  "<a href='mailto:Pupitreurs?subject=Météo'>Pupitreurs</a>" & _
      '  "<br>" & _
      '  "<img src='cid:" & file & "' border=0 hspace=0 vspace=0>" & _
      '  "</center></html>")
      'Call body.SetContentFromText(stream, "text/html;charset=iso-8859-1", ENC_IDENTITY_8BIT)
      Call Stream.Close
      Call docMail.send(False)
      Set docMail = Nothing
      Set body = Nothing
      Set Stream = Nothing
      On Error GoTo 0
      sendmail = True
     
    err:
        sendmail = False
      On Error GoTo 0
      Set docMail = Nothing
      Set body = Nothing
      Set Stream = Nothing
    End Function
    Le mieux que j'arrive à faire me donne ça :
    Nom : Courrier.png
Affichages : 475
Taille : 3,3 Ko

    Comme Lotus (8.5) est installé, je dispose des références dans VBE, je creuse de ce côté là


    Merci d'avance pour votre aide

  2. #2
    Membre confirmé Avatar de Bragu Demon
    Homme Profil pro
    Intégrateur d'Explopitation
    Inscrit en
    Juin 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Intégrateur d'Explopitation
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2013
    Messages : 125
    Par défaut
    J'ai avancé:
    J'essaie d'envoyer un mail en incorporant une image dans le corps du message.
    Pour cela j'utilise du HTML et la balise <img> pour joindre une image.

    Le VBA ci-dessous fonctionne presque , mon plus gros soucis étant la disparition de l'image lorsqu'on répond ou fait suivre le message (ce qui est ennuyeux).
    Il y aurait aussi à implémenter un test d'ouverture de lotus.

    L'idée de base étant d'importer l'image dans le message, tout comme la fonction "fichier/importation" le permet.

    Merci pour vos conseils

    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
    51
    52
    53
    54
    55
     
    Sub sendMail_HTML()
      Dim session As Object, mail As Object, body As Object, stream As Object
      Dim fichier As String
     
      Set session = CreateObject("Notes.NotesSession")
      Set db = session.CurrentDatabase
      Call db.OPENMAIL
     
      fichier = "K:\Image.jpg"
     
      session.ConvertMIME = False ' Do not convert MIME to rich text
      'Creation du message
      Set mail = db.CreateDocument()
     
      With mail
        .Form = "Memo" 'type de document créé
        .From = "" 'Champ "Envoyé par"
        .SendTo = "" 'Champ "A"
        .principal = "" 'Champ "De"
        .ReplyTo = "" 'Champ "Veuillez répondre à"
        .Subject = ""
        .CopyTo = "" 'Champ copie conforme
        .BlindCopyTo = "" 'Champ copie conforme invisible
        .Importance = "2"  'Importance du message -> 1 = high, 2 = normal, 3 = low
        .posteddate = Now
        .SaveMessageOnSend = True 'permet de faire apparaître le message dans les éléments envoyés
     
      End With
     
      Set stream = session.CreateStream()
      Set body = mail.CreateMIMEEntity
      'Message en HTML
      Call stream.WriteText("" & _
        "<html><center>" & _
        "Ce mail a été généré par un automate, merci de ne pas répondre à ce mail. " & _
        "Pour nous contacter, merci d'utiliser le groupe " & _
         "<br/><br/>" & _
        "<img src='" & fichier & "' alt='' border=0 hspace=0 vspace=0>" & _
        "<br/><br/>" & _
        "Si ce message ne s'affiche pas correctement, merci de contrôler que dans" & _
        "<br/>" & _
        "<b>Fichier</b>, puis <b>Préférences</b>, puis <b>Courrier</b>, puis <b>Internet</b>, décocher la case  <b>''Sécurité des images''</b>" & _
        "</center></html>" & _
        "")
     
      Call body.SetContentFromText(stream, "text/html;charset=iso-8859-1", ENC_IDENTITY_8BIT)
      Call mail.send(False)
     
      Set mail = Nothing
      Set body = Nothing
      Set stream = Nothing
     
      session.ConvertMIME = True ' Restore conversion
    End Sub

  3. #3
    Membre confirmé Avatar de Bragu Demon
    Homme Profil pro
    Intégrateur d'Explopitation
    Inscrit en
    Juin 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Intégrateur d'Explopitation
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2013
    Messages : 125
    Par défaut
    A titre informatif, le code ci-dessous rempli ma demande :
    Il me permet d'afficher une image via la fonctionnalité d'importation.

    J'utilise les fonctions UIWorkspace de lotus pour cela, je n'ai pas trouvé d'autre solutions.

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    Sub test1()
    'http://www.ibm.com/support/knowledgecenter/SSVRGU_9.0.0/com.ibm.designer.domino.main.doc/H_4_LOTUSSCRIPT_NOTES_CLASSES_REFERENCE.html
    '
    Dim sess As Object, db As Object ', stream As Object
    'Dim mime As Object
      Dim html As String
     
      Set sess = CreateObject("Notes.NotesSession")
    '  Set stream = sess.CreateStream()
      Set NUIWorkspace = CreateObject("Notes.NotesUIWorkspace")
      Set db = sess.GetDatabase("", "")
     
      If Not db.IsOpen Then db.OPENMAIL
     
      meteo = "fichier.bmp"
      che = "\\SRVFILE\temp"
      extMeteo = Replace(meteo, Mid(meteo, 1, InStrRev(meteo, ".")), "")
      Ligne1 = "fichier.html"
      extLigne1 = Replace(Ligne1, Mid(Ligne1, 1, InStrRev(Ligne1, ".")), "")
      html = "<center>" & _
             "Ce mail a été généré par un automate, merci de ne pas répondre à ce mail." & _
             " Pour nous contacter, merci d'utiliser le groupe " & _
             "<a href='mailto:Pupitreurs?subject=Météo'>Pupitreurs</a>" & _
             "</center>"
     
      'Creation du nouveau document Lotus Notes
      Set doc = db.createDocument
      doc.Save True, False
      doc.Importance = "2"  'Importance du message -> 1 = high, 2 = normal, 3 = low
     
      Dim richText As Object ' NotesRichTextItem
      Dim rtpStyle As Object ' NotesrichTextParagraphStyle
      Dim navigator As Object ' NotesRichTextNavigator
     
      Set rtpStyle = sess.CreateRichTextParagraphStyle
      Set richText = doc.CreateRichTextItem("Body")
     
      rtpStyle.Alignment = ALIGN_CENTER
     
    ' A titre de démonstration, utilisation de la session :
    '  With doc
    '    .SendTo = ""
    '    .CopyTo = ""
    '    .Subject = ""
    '    .body = ""
    '    .Importance = "1"  'Importance du message -> 1 = high, 2 = normal, 3 = low
    '    .Save True, False
    '  End With
     
      doc.Visible = True
      'Edition du document avec l'interface utilisateur
      Set NUIdoc = NUIWorkspace.EDITDocument(False, doc)
      With NUIdoc
        Call .fieldsettext("EnterSendTo", "gbranchard-ext@girc.agirc-arrco.fr")
        Call .fieldsettext("Subject", "Météo Applicative RNXE/MJ du " & Format(Now(), "DD/MM/YYYY"))
        .GotoField (body)
        Call richText.AppendParagraphStyle(rtpStyle)
        Call .import(extLigne1 & " File", che & "\" & Ligne1)
        Call .import(extMeteo & " Image", che & "\" & meteo)
        .send
        .Close
      End With
      Set sess = Nothing
     
    ' Liste des filtres d'importation
    'ASCII Text
    'Binary with Text
    'BMP Image
    'CGM Image
    'GIF Image
    'html File
    'JPEG Image
    'Lotus® 1-2-3®
    'lotus PIC"
    'Lotus Word Pro®
    'Microsoft Excel
    'Microsoft RTF
    'Microsoft Word
    'Network Portable Graphic
    'PCX Image
    'TIFF 5.0 Image
    'Unsupported File as Text
    'WordPerfect
     
    'Liste des champs à utiliser avec FieldSetText et GotoField :
    'EnterSendTo
    'EnterCopyTo
    'EnterBlindCopyTo
    'DysplayFrom
     
    End Sub
    En espérant que ça puisse vous servir.

    Bisous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Coller une image/tableau dans Lotus Note
    Par omarter dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/07/2012, 08h17
  2. Coller une image/tableau en VBA dans Lotus Note 8.5
    Par omarter dans le forum Lotus Notes
    Réponses: 0
    Dernier message: 05/07/2012, 12h00
  3. [XL-2003] Copie une zone Excel dans Lotus Note
    Par jlp035 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 16/11/2011, 19h44
  4. Exemple d'une utilisation java dans Lotus Notes
    Par Stéphane Maillard dans le forum Contribuez
    Réponses: 0
    Dernier message: 10/08/2007, 02h53
  5. Ouvrir nouveau mail avec tableau dans Lotus Notes
    Par z980x dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 09/08/2007, 14h25

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