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 :

Insérez une image dans un mail (via lotus notes)


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 73
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2016
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Insérez une image dans un mail (via lotus notes)
    Bonjour à tous,


    J'ai ecris un code vba qui me permet d'envoyer un mail via lotus notes. Dans ce mail, je souhaite insérer une plage de ma feuille excel. Donc dans le corps du mail, j'ai placé une balise et une fois le corps créer, je la recherche pour copier à se place ma plage de donnée (sous forme d'image mais ce n'est pas hyper important).

    Mon problème réside dans l'incapacité d'excel à trouvé cette balise la première fois qu'il la cherche. Si je laisse le fichier ouvert, et relance la macro, cette fois il trouve la balise et envoie le mail. Pour palier à ce problème, je fais donc deux recherches de la balise. Et du coup, les fois suivantes, j'envoie un mail avec deux images... Cette solution est loin d'être folle ! Je pense donc ajouter un bout de code qui me permettra de gérer ce doublon (type effectuer la seconde recherche si la preière a échoué avec une variable ou un bouléen) mais je préfèrerai comprendre d'où vient le problème et y remédier plutôt que bricoler.

    Merci pour vos réponses


    Mon code :

    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
      Set NSession = CreateObject("Notes.NotesSession")
        Set NUIWorkSpace = CreateObject("Notes.NotesUIWorkspace")
        Set NDatabase = NSession.GetDatabase("", "")
        If Not NDatabase.IsOpen Then NDatabase.OPENMAIL
     
        'Create a new Lotus Notes document
        Set NDoc = NDatabase.createDocument
     
        With NDoc
            .SendTo = SendTo
            .CopyTo = CopyTo
            .Subject = Subject
     
            'Email body text, including a placeholder which will be replaced by the Excel cells
     
            .body = "Please submit the following orders on EPEX " & vbLf & vbLf & _
                "PLACEHOLDER" & vbLf & vbLf & _
                "Thanks"
            .Save True, False
        End With
     
        Set oItem = NDoc.CREATERICHTEXTITEM("{IMAGE_PLACEHOLDER}")
        Call oItem.EmbedObject(1454, "", path & fName & ".xlsx")
        NDoc.visable = True
     
     
        'Edit the new document using Notes UI to copy and paste the Excel cells into it
     
        Set NUIdoc = NUIWorkSpace.EDITDocument(True, NDoc)
        With NUIdoc
     
            'Find the placeholder in the Body item
            .GotoField "Body"
            .FINDSTRING "PLACEHOLDER"
        End With
     
        With NUIdoc
     
            'Find the placeholder in the Body item
            .GotoField "Body"
            .FINDSTRING "PLACEHOLDER"
     
            'Copy Excel cells as a bitmap to the clipboard and paste into the email
            embedCells.Copy 'Picture xlBitmap
            .Paste
            Application.CutCopyMode = False
     
            .sEnd
            .Close
        End With
     
        Set NSession = Nothing

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Testes ça
    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
     
    Sub test()
    .bodyHtml="<img src=""data:image/gif;base64," & img64("c:\lmage.gif") & """/>"
    End sub
    Function img64(Fichier)
        Dim Buffer() As Byte, intFileNumber, Fso As Object, objXML As Object, objNode As Object
        intFileNumber = FreeFile
        Set Fso = CreateObject("Scripting.FileSystemObject")
        ReDim Buffer(Fso.GetFile(Fichier).size)
        Set Fso = Nothing
        Open Fichier For Binary As #intFileNumber
        While Not EOF(intFileNumber)
            Get #intFileNumber, , Buffer
        Wend
        Close #intFileNumber
        Set objXML = CreateObject("MSXML2.DOMDocument")    '.DOMDocument
        Set objNode = objXML.createElement("b64") 'MSXML2.IXMLDOMElement
        objNode.DataType = "bin.base64"
        objNode.nodeTypedValue = Buffer
        img64 = objNode.Text
        Set objNode = Nothing
        Set objXML = Nothing
    End Function

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 73
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2016
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    merci rdurupt


    Malheureusement, et il m'en incombe la faute, l'image en question est en fait une range de ma feuille copiée/collée en tant qu'image et pas un fichier stocké qq part (tu me diras que je pourrai la stocker qq part puis la supprimer mais bon, c'est pas terrible terrible). D'autant qu'au final, j'ai testé un collage classique et et notes (bien q ce soit une poubelle) comprends que j'ai un tableau et le colle comme tel. D'où mon instance à lui faire trouver ma balise "PLACEHOLDER".


    Ceci étant, et pour ma culture, sij'ai bien compris ton bout de code, il n'y a que l'image dans le mail et pas de texte. De plus, tu crée un fichier XML et pas un mail (je sens q je viens d'écrire une énormité, mais je dois avouer que sur ce plan là je n'y connais rien).

  4. #4
    Invité
    Invité(e)
    Par défaut
    Je n'ai pas voulu, pourra compréhension, te gaver avec du text.

    Je fabrique un xml n mémoire pour convertir l'image en variable string compréhensible par le body de ton mail.
    L'image n'est pas sauvegardé n

    Le bodyhtml dit à ton lotus que les données ne son mt pas du texte brute, ainsi tu peux écrit en rouge dans ton mail.

    L'image est physiquement dans le corps du mail!

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 73
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2016
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Propre !


    Je vais voir s'il est possible de convertir ma range en string

  6. #6
    Invité
    Invité(e)
    Par défaut
    Fais déjà un test avec un image lambda sue ton disk!

Discussions similaires

  1. affichage d'une variable sur une image dans un mail
    Par diabli73 dans le forum Langage
    Réponses: 3
    Dernier message: 25/02/2009, 18h22
  2. Inserer une image dans un textbox via Copier -> Coller ?
    Par XpFive dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 04/06/2008, 23h24
  3. C# Afficher une image dans un mail.
    Par Nadiya dans le forum Windows Forms
    Réponses: 1
    Dernier message: 02/06/2008, 22h31
  4. [HTML] Comment afficher une image dans un mail?
    Par NedaRyme dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 14/02/2008, 13h20
  5. Integrer une image dans un mail
    Par Immobilis dans le forum ASP
    Réponses: 2
    Dernier message: 19/04/2006, 17h14

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