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 :

signature mail avec image/lien


Sujet :

VBA Outlook

  1. #1
    Membre du Club
    Homme Profil pro
    fonctionnaire
    Inscrit en
    Janvier 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : fonctionnaire

    Informations forums :
    Inscription : Janvier 2015
    Messages : 72
    Points : 43
    Points
    43
    Par défaut signature mail avec image/lien
    Bonjour,

    Beaucoup de sujet semble traiter d'une problématique similaire mais je n'ai pas réussi à dénicher le bon topic.

    Ma société impose une signature type remplie d'image cliquable renvoyant à des liens hypertexte.

    Avant cela, lors de l'automatisation de mes mails j'employais ce code ci joint :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .HTMLBody = "<html><body>" & var1x & getsignature(Signaturex) & "</body></html>"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Function getsignature(signaturepath As String) As String
    Dim fso As Object
    Dim ts As Object
    Set fso = CreateObject("scripting.filesystemobject")
    Set ts = fso.getfile(signaturepath).openastextstream(1, -2)
    getsignature = ts.readall
    ts.Close
    End Function
    Mais les images ne s'incorporent pas au mail.
    Donc... Est-il actuellement possible d'insérer une signature enregistrée contenant des images cliquables via une commande vba lancée à partir d'excel?

    ps: je ne suis pas parvenu à réaliser un pdf cliquable comme vu dans un ancien post et l'unique solution que j'imagine serait de mettre en page la signature via le codage, mais cela me parait fort complexe vu le format précis que cette signature doit avoir.

    Merci d'avance pour vos conseils

  2. #2
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 224
    Points : 443
    Points
    443
    Par défaut
    Bonjout Kintin, le forum,

    J'imagine que ta fonction getsignature te renvoie le contenu du fichier laSignature.htm située dans le dossier %appdata%\Microsoft\Signatures contenant les signatures d'Outlook.

    Si c'est bien ça, cela vient surement du fait qu'au sein des fichiers .htm des signatures, les images sont référencées avec des emplacements relatifs au dossier des signatures (%appdata%\Microsoft\Signatures).

    La fonction ci-dessous UserSignatures peut résoudre ce problème.
    Elle charge l'ensemble des signature en modifiant les emplacements relatifs en emplacement absolus.
    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
    Public Function UserSignatures() As Collection
    Dim oFso As Object          'Scripting.FileSystemObject
    Dim oCurFile As Object      'Scripting.File
    Dim oRegExp As Object       'VBScript_RegExp_55.regExp
    Dim oMatches As Object      'VBScript_RegExp_55.MatchCollection
    Dim oMatch As Object        'VBScript_RegExp_55.Match
    Dim pathSignatures As String
    Dim relativePath As String
    Dim absolutePath As String
    Dim htmlSignature As String
     
        'initialisation
        Set UserSignatures = New Collection
        Set oFso = CreateObject("Scripting.FileSystemObject")
        Set oRegExp = CreateObject("vbscript.regexp")
        With oRegExp
            .Pattern = "<[^>]+src=""([^"">]+)"""
            .MultiLine = True
            .Global = True
        End With
     
        'boucler sur tous les fichiers du dossier %APPDATA%\Roaming\Microsoft\Signatures
        pathSignatures = Environ("APPDATA") & "\Microsoft\Signatures"
        For Each oCurFile In oFso.GetFolder(pathSignatures).Files
            'si le fichier est un .htm (signature)
            If LCase(oCurFile.Name) Like "*.htm" Then
                'récupérer le contenu html
                htmlSignature = oFso.OpenTextFile(oCurFile.Path, 1).ReadAll
                'remplacer les path relatifs en path absolus
                Set oMatches = oRegExp.Execute(htmlSignature)
                For Each oMatch In oMatches
                    relativePath = oMatch.SubMatches(0)
                    absolutePath = oFso.BuildPath(pathSignatures, relativePath)
                    If oFso.FileExists(absolutePath) Then
                        htmlSignature = Replace(htmlSignature, "src=""" & relativePath & """", "src=""" & absolutePath & """")
                    End If
                Next oMatch
                'ajouter la signature à la collection
                UserSignatures.Add htmlSignature, oFso.GetBaseName(oCurFile.Name)
            End If
        Next oCurFile
     
        Set oFso = Nothing
        Set oCurFile = Nothing
        Set oRegExp = Nothing
        Set oMatches = Nothing
        Set oMatch = Nothing
    End Function
    Pour l'utiliser, il faudra modifier ton code ainsi en remplaçant "laSignature" par le nom de la signature Outlook.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .HTMLBody = "<html><body>" & var1x & UserSignatures("laSignature") & "</body></html>"
    A+

  3. #3
    Membre du Club
    Homme Profil pro
    fonctionnaire
    Inscrit en
    Janvier 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : fonctionnaire

    Informations forums :
    Inscription : Janvier 2015
    Messages : 72
    Points : 43
    Points
    43
    Par défaut
    Génie!!!

    Merci,

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

Discussions similaires

  1. [OL-2010] Signature e-mail avec images sans pièce jointe
    Par davidoffsky dans le forum Outlook
    Réponses: 1
    Dernier message: 31/05/2012, 08h58
  2. [SP-2007] Envoye mail avec image
    Par djo_matrix dans le forum SharePoint
    Réponses: 0
    Dernier message: 26/05/2009, 17h44
  3. Mail avec image/photo
    Par yahi.jye dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/01/2008, 22h48
  4. [Mail] Envoyer un e-mail avec images incorporées
    Par guigo dans le forum Langage
    Réponses: 6
    Dernier message: 24/01/2008, 16h42
  5. [Mail] Envoi d'e-mail avec image de fond
    Par mimagyc dans le forum Langage
    Réponses: 4
    Dernier message: 19/12/2007, 20h58

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