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

VBA Outlook Discussion :

Lien Hypertexte automatique


Sujet :

VBA Outlook

  1. #1
    Membre à l'essai
    Lien Hypertexte automatique
    Bonjour à tous,

    J'aurais besoin de votre aide.
    Je souhaite insérer un lien hypertexte automatique (via vba) sur un mot dans un mail.

    Pour faire simple j'utilise vulgairement une recherche Google.
    Exemple de mail :

    "Bonjour, faite une recherche sur Google avec le mot : Actualité"

    Je souhaite mettre un lien hypertexte sur le mot actualité. Le lien hypertexte pointerais vers le site de Google avec le mot "Actualité" recherché. Exemple du lien hypertexte :
    Actualité


    Pour procéder je pensais le sélectionner puis de le copier pour que le mot soit entré dans le presse papier.
    Ensuite, dans vba, faire appel au presse papier pour traiter l'ajout du lien hypertexte avec ce genre de bout de code récupéré sur le net :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub OT()
     
    Dim MSForm As Object
    Dim presse_papier As String
     
        'récupération presse-papier
         Set MSForm = New DataObject
        MSForm.GetFromClipboard
        presse_papier = MSForm.GetText
        Set MSForm = Nothing
     
    End Sub




    Mon problème est le suivant : Message d'erreur que je n'arrive pas à résoudre : type défini par l'utilisateur non défini

    Voici les références activées dans VBA Outlook 2013 :



    Merci d'avance pour votre aide !

  2. #2
    Expert éminent
    SALUT

    ajoute un userform à ton projet (puis tu pourras le supprimer)


    comment fais tu après ? tu remplaces dans HTMLbody ? sinon il faut utiliser l'objet Wordeditor

  3. #3
    Membre à l'essai
    Bonjour et merci pour ta réponse,

    Je suis limité en connaissance..
    J'ai bien ajouté un userform et le message d'erreur a disparu.

    J’essaie plusieurs choses, sans trop vraiment savoir ce que je fais .. donc, sans succès

    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
    Sub OT()
     
    Dim MSForm As Object
    Dim PP As String
    Dim Rng As Object
    Dim wdDoc As Object
     
    'Assignation des applications Outlook ,de l'objet email et du body de l'email en tant que document Word
     Set olk = CreateObject("outlook.application")
    Set Email = olk.CreateItem(olMailItem)
    Set wdDoc = Email.GetInspector.WordEditor
     
     
    'récupération presse-papier
     Set MSForm = New DataObject
    MSForm.GetFromClipboard
    PP = MSForm.GetText 'dans l'exemple PP = "Actualité"
    Set MSForm = Nothing
     
    Lien = "http://www.google.fr/search?q= & PP &"
     
        With Email
     
        Set Rng = wdDoc.Content
                Rng.Paste
        End With
     
    End Sub

  4. #4
    Membre à l'essai
    Bonjour à tous,

    J'avance un peu, je bloque pour l'insertion d'un lien hypertexte.
    J'ai trouvé ce bout de code permettant de créer un lien hypertexte dans un nouveau mail, je ne sais comment l'exploiter :


    Code trouvé pour création d'un lien :


    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
    Sub CreateHTMLMail()
    'Creates a new e-mail item and modifies its properties.
        Dim olApp As Outlook.Application
        Dim objMail As Outlook.MailItem
        Set olApp = Outlook.Application
        'Create e-mail item
        Set objMail = olApp.CreateItem(olMailItem)
        With objMail
            'Set body format to HTML
            .BodyFormat = olFormatHTML
            .HTMLBody = _
                "<HTML><BODY><a href='https://autoitscript.fr/forum/viewtopic.php?f=3&t=14352'>lien</a></BODY></HTML>"
            .Display
        End With
        'Const olFormatHTML = 2
        'Const olMailItem = 0
    End Sub



    Mon code actuel :

    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
     
    Option Explicit
     
    Sub Macro_modifie_mail()
     
    'On Error GoTo errorHandler  'Si une erreur survient, on va à la ligne "errorHandler"
    'vaut mieux avoir l'erreur lors du développement
     
    Dim itm As Object
    Dim MSForm As Object
    Dim PP As String
     
    'récupération presse-papier
     Set MSForm = New DataObject
    MSForm.GetFromClipboard
    PP = MSForm.GetText 'dans l'exemple PP = "Actualité"
    Set MSForm = Nothing
     
    'Lien = ***************
     
     
    Set itm = ActiveInspector.CurrentItem
    itm.HTMLBody = Replace(itm.HTMLBody, PP, Lien) ' Remplacer par le lien
     
    End Sub


    Merci d'avance pour votre aide !

  5. #5
    Membre à l'essai
    Je sens que j'y suis presque :

    Il me manque de remplacer la variable PP dans le lien Hypertexte :


    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
     
    Option Explicit
     
    Sub Macro_modifie_mail()
     
    'On Error GoTo errorHandler  'Si une erreur survient, on va à la ligne "errorHandler"
    'vaut mieux avoir l'erreur lors du développement
     
    Dim itm As Object
    Dim MSForm As Object
    Dim PP As String
    Dim Lien As String
     
     
    'récupération presse-papier
     Set MSForm = New DataObject
    MSForm.GetFromClipboard
    PP = MSForm.GetText 'dans l'exemple PP = "Actualité"
    Set MSForm = Nothing
     
    Lien = "<a href=""http://www.google.fr/search?q="" & PP> & PP &</a>"
     
     
    Set itm = ActiveInspector.CurrentItem
    itm.HTMLBody = Replace(itm.HTMLBody, PP, Lien) ' Remplacer par le lien
     
    End Sub

  6. #6
    Membre à l'essai
    J'ai trouvé !! Merci !

  7. #7