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

VBA Outlook Discussion :

Lien Hypertexte automatique


Sujet :

VBA Outlook

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaires
    Inscrit en
    Mai 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaires
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2014
    Messages : 35
    Points : 17
    Points
    17
    Par défaut 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
    Nom : Capture.PNG
Affichages : 1062
Taille : 29,4 Ko

    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 :

    Nom : Capture2.PNG
Affichages : 992
Taille : 19,0 Ko

    Merci d'avance pour votre aide !

  2. #2
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    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
    Homme Profil pro
    Chargé d'affaires
    Inscrit en
    Mai 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaires
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2014
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    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
    Homme Profil pro
    Chargé d'affaires
    Inscrit en
    Mai 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaires
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2014
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    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
    Homme Profil pro
    Chargé d'affaires
    Inscrit en
    Mai 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaires
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2014
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    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
    Homme Profil pro
    Chargé d'affaires
    Inscrit en
    Mai 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaires
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2014
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    J'ai trouvé !! Merci !

  7. #7
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/03/2014, 14h44
  2. Liens hypertexte automatique dans un index
    Par Yvette dans le forum Word
    Réponses: 5
    Dernier message: 10/01/2011, 09h48
  3. [XL-2003] Lien hypertexte automatique entre 2 feuilles d'1 même fichier
    Par pretor dans le forum Excel
    Réponses: 6
    Dernier message: 12/10/2010, 13h37
  4. Lien Hypertexte Automatique
    Par zenzolarticho dans le forum Excel
    Réponses: 1
    Dernier message: 06/05/2009, 16h31

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