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 :

Création Signatures Outlook 2010 avec plusieurs paramètres


Sujet :

VBA Outlook

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 233
    Par défaut Création Signatures Outlook 2010 avec plusieurs paramètres
    Bonjour,

    Je souhaite trouver un moyen simple et plus efficace pour créer les 3 formats de signatures avec le dossier contenant les images. (.htm, .rtf et.txt)
    Pour ensuite placer ces éléments dans C:\Users\XXX\AppData\Roaming\Microsoft\Signatures
    Ceci en permettant à l'utilisateur de renseigner plusieurs champs (Nom, Prénom, Poste, tél, fax, mail, etc...)
    La signature doit également inclure un logo et une bannière.
    Si le nom de la signature existe déjà il faut incrémenter le nom du fichier.
    Quelle est la meilleure solution pour permettre cela svp? (VBA ou autre?, et si vous avez déjà des sources je suis preneur)
    Est-il possible de partir d'une sorte de modèle de mail et faire varier le contenu et les champs svp? Et pour surtout mettre la signature générée par défaut si possible.
    D'avance merci pour votre aide

    Bonne soirée

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

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Bonjour,
    As tu avancé sur ton projet ?
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 233
    Par défaut Reflexion sur le projet
    Malheureusement non car je ne trouve pas mon bonheur.
    J'ai cru comprendre qu'on pouvait partir d'un fichier Word avec des balises pour récupérér des données de l'AD mais ça ne résoud pas le problème de la fonction.
    Je me demande s'il ne faut pas mieux faire un excel des données (Nom, Prénom, tel, fonction) en faisant correspondre le nom de la session pour ensuite les intégrer dans un word puis trouver une fonction qui permettra d'enregistrer le résultat avec un logo et une bannière.
    Et enfin pour la mise à jour des signatures, vu que l'utilisateur a les droits sur son dossier il pourrait lancer un fichier de type BATCH pour mettre à jour sa bannière avec une autre depuis un dossier de partage.
    Bref à suivre mais je ne trouve pas de solution abouti mise à part les payantes...

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

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Voici un exemple de code qui fait le job.
    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
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    Option Explicit
     
    Sub createNewSignature()
    '---------------------------------------------------------------------------------------
    ' Procedure : createNewSignature
    ' Author    : Oliv-
    ' Date      : 26/06/2018
    ' Purpose   : création de signature pour OUTLOOK 2010
    '---------------------------------------------------------------------------------------
    '
     
        Dim objNS As Object
        Dim objMsg As Outlook.MailItem
        Dim objDoc As Word.Document
        Dim objSel As Word.Selection
        Dim objSig As Word.EmailSignature
        Dim colSig As Word.EmailSignatureEntries
        Dim NewSig As Word.EmailSignatureEntry
     
        Dim objInsp As Outlook.Inspector
        Dim MonImage As Object
        Dim Nom_Signature As String
     
        Const olmailitem = 0
        Const wdCollapseEnd = 0
        Const wdStory = 6
        Const olDiscard = 1
        Const olMinimized = 1
     
        Dim Fonction, Fax, FirstName, LastName, CompanyName, StreetAddress, City, PostalCode, Alias, BusinessTelephoneNumber, MobileTelephoneNumber, PrimarySmtpAddress
     
        Dim OL As Outlook.Application
        If UCase(Application) = "OUTLOOK" Then
            Set OL = Application
        Else
            Set OL = CreateObject("outlook.application")
        End If
     
        Set objNS = OL.Session
     
        Nom_Signature = "TEST"
     
        FirstName = InputBox("Prénom", "Création de signature")
        LastName = InputBox("Nom", "Création de signature")
        CompanyName = InputBox("Société", "Création de signature")
        StreetAddress = InputBox("Adresse", "Création de signature")
        City = InputBox("Ville", "Création de signature")
        PostalCode = InputBox("Code Postal", "Création de signature")
        'Alias = .Alias
        BusinessTelephoneNumber = InputBox("Avez-vous une Téléphone Direct ?", "Création de signature", "+ 33 0 00 00 00 00")
        MobileTelephoneNumber = InputBox("Avez-vous une Téléphone Mobile ?", "Création de signature", "+ 33 6 00 00 00 00")
        PrimarySmtpAddress = InputBox("Email", "Création de signature")
        Fonction = InputBox(FirstName & " " & LastName & vbCr & " Quelle est votre FONCTION ?", "Création de la signature", "exemple")
     
        'création Email préparer la signature
        Set objMsg = objNS.Application.CreateItem(olmailitem)
        objMsg.Display
        objMsg.Body = ""
        Set objInsp = objMsg.GetInspector
        'objInsp.WindowState = olMinimized
        Set objDoc = objInsp.WordEditor
        '  On Error Resume Next
     
        objDoc.Paragraphs(objDoc.Paragraphs.Count).Range.Select
     
        With objDoc.Application.Selection
            .Font.Name = "Arial"
            .Font.Size = 9
            .Font.Bold = True
            .TypeText Text:=FirstName & ", " & LastName
            .TypeParagraph
            .Font.Bold = False
            .TypeText Text:=Fonction
            .TypeParagraph
            .TypeParagraph
            .Font.Bold = True
            .TypeText Text:=CompanyName
            .Font.Bold = False
     
            .TypeParagraph
     
            .TypeText Text:=StreetAddress & " | adresse 2" & " | " & PostalCode & " " & City
     
            .TypeParagraph
            .TypeText Text:="France"
            .TypeParagraph
            .TypeParagraph
     
            If BusinessTelephoneNumber <> "+ 33 0 00 00 00 00" And BusinessTelephoneNumber <> "" Then
                .TypeText Text:="D " & BusinessTelephoneNumber
                .TypeParagraph
            End If
            If MobileTelephoneNumber <> "+ 33 6 00 00 00 00" And MobileTelephoneNumber <> "" Then
     
                .TypeText Text:="M " & MobileTelephoneNumber
                .TypeParagraph
            End If
     
     
            .Hyperlinks.Add Anchor:=.Range, Address:= _
                            "mailto:" & PrimarySmtpAddress, SubAddress:="", ScreenTip:="", _
                            TextToDisplay:=PrimarySmtpAddress
     
            .TypeParagraph
        End With
     
        objDoc.Paragraphs(objDoc.Paragraphs.Count).Range.Select
     
        Set objSig = objDoc.Application.EmailOptions.EmailSignature
        Set colSig = objSig.EmailSignatureEntries
     
        objDoc.Range(0, 0).Select
        objDoc.Application.Selection.MoveEnd wdStory
     
        DoEvents
     
        'AJOUT DE LA SIGNATURE AVEC IMAGE
     
        objDoc.Paragraphs(objDoc.Paragraphs.Count).Range.Select
     
     
        Set MonImage = objDoc.Application.Selection.InlineShapes.AddPicture(Filename:= _
                                                                            "O:\temp\Bandeau_Signature.png", LinkToFile:= _
                                                                            True, SaveWithDocument:=False)
        objDoc.Hyperlinks.Add Anchor:=MonImage.Range, Address:= _
                              "http://www.ste.com" _
                            , SubAddress:=""
     
        objDoc.Range(0, 0).Select
        objDoc.Application.Selection.MoveEnd wdStory
     
        Set objSel = objDoc.Application.Selection
        Set NewSig = colSig.Add(Nom_Signature, objSel.Range)
     
     
        objInsp.Close olDiscard
     
        DoEvents
     
        'POUR DEFINIR les signatures par defaut
        objSig.NewMessageSignature = Nom_Signature
        objSig.ReplyMessageSignature = Nom_Signature
     
     
        Set objMsg = Nothing
        Set objInsp = Nothing
        Set objDoc = Nothing
        Set objSel = Nothing
        Set colSig = Nothing
        Set objSig = Nothing
    End Sub
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  5. #5
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 233
    Par défaut Suite Exemple de code
    Bonjour,

    Merci beaucoup pour cet exemple, malheureusement je n'arrive pas à le faire fonctionner.
    Il faut bien l'exécuter dans le VB d'Outlook svp?
    On dirait qu'il manque le Bibliothèque pour la suite Office.
    Si c'est la cas ça répond partiellement à ma problématique car je ne pourrais pas passer sur l'ensemble des postes pour ajouter la bibliothèque
    Dans tous les cas déjà un grand merci pour votre aide

  6. #6
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 233
    Par défaut Autre idée de génération de signatures
    Hello, autre idée, imaginons que je génère un format de signature standard.
    C'est à dire un dossier contenant un ou plusieurs logos avec une bannière.
    Et à côté les 3 fichiers de signatures .htm, .rtf et .txt avec des balises placées dedans pour tous les paramètres <NOM><PRENOM>, <TEL>, etc...
    Ceci afin de pouvoir remplacer les balises facilement par les valeurs.
    Ensuite j'imagine bien un programme qui récupère le nom de la session windows ou le login qui se trouve dans C:\Users\XXXX\AppData\Roaming\Microsoft\Signatures
    Enfin on fait correspondre les données d'un fichier excel en fonction des données. La première colonne contiendra le login windows pour récupérer les éléments.
    Est-ce que cela est réalisable et auriez-vous des pistes svp?

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/06/2007, 12h29
  2. [Système] Fonction avec plusieurs paramètres optionnels
    Par cerede2000 dans le forum Langage
    Réponses: 1
    Dernier message: 25/05/2007, 14h36
  3. [Struts 1.1][html:link] avec plusieurs paramètres
    Par bbo1991 dans le forum Struts 1
    Réponses: 3
    Dernier message: 21/03/2007, 12h32
  4. ORACLE 9.2 : Création d'une vue avec plusieurs clauses WHERE
    Par soffinette dans le forum Administration
    Réponses: 4
    Dernier message: 01/02/2007, 10h51
  5. [Struts] Html:link avec plusieurs paramètres
    Par mariemor64 dans le forum Struts 1
    Réponses: 2
    Dernier message: 24/05/2006, 14h27

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