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 :

Modifier la signature par défaut des mails [OL-2013]


Sujet :

VBA Outlook

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2011
    Messages : 65
    Points : 35
    Points
    35
    Par défaut Modifier la signature par défaut des mails
    Bonjour à tous,

    Je cherche à modifier la signature par défaut qui apparaît dans Outllok. Je sais créer une nouvelle signature, dans ce dossier :
    C:\Users\[mon nom]\AppData\Roaming\Microsoft\Signatures

    Mais j'aimerai la mettre par défaut dans Outlook. Il y a bien la méthode de piloter le clavier par VBA (tu ouvres la fenêtre des options, tu fais des tabulations pour arriver dans le bon menu et tu sélectionnes la signature). Mais c'est un peu bourrin... et comme l'idée, c'est que ce soit utiliser par d'autres personnes, j'ai peur que ça ne marche pas bien.

    Auriez-vous une idée ? Est-ce seulement possible ?

    J'ai pas mal cherché mais sans succès.

    Un grand merci par avance.

  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
    Bonjour,
    Si c'est juste la définir par défaut:

    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
     
    dim objOL As Outlook.Application
    dim objNS As Outlook.Namespace
      Set objOL = CreateObject("Outlook.Application")
            Set objNS = objOL.GetNamespace("MAPI")
        'création Email pour récupérer la signature
        Set objMsg = objNS.Application.CreateItem(olmailitem)
        objMsg.Display
        Set objInsp = objMsg.GetInspector
        objInsp.WindowState = olMinimized
        Set objDoc = objInsp.WordEditor
    Set objSig = objDoc.Application.EmailOptions.EmailSignature
     objSig.NewMessageSignature = "nom signature"
                objSig.ReplyMessageSignature = "nom signature"
      objInsp.Close olDiscard

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2011
    Messages : 65
    Points : 35
    Points
    35
    Par défaut
    Ouaaah ! ça marche !!!! Je dois dire que je suis assez sidéré parce que mes nombreuses recherches m'indiquait qu'il fallait toucher au registre de Windows, ce qui n'était pas possible en VBA.
    Je m'étais donc résigné à ne pas pouvoir faire ce changement par VBA.

    Un immense merci. cela va grandement me simplifier la vie

    Pour être franc, je ne suis pas sûr d'avoir bien compris tout ton code (mais c'est normal quand un petit padawan rencontre un Grand maître !) Si je comprends bien :
    1. tu crées un mail
    2. Tu récupères la signature de ce mail
    3. Tu appliques cette signature au nouveau mail et aux réponses

    C'est ça ?

  4. #4
    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
    Dans ton cas on n'apas besoin de récupèrer la signature, il faut juste connaitre son nom.

    PAr contre j'utilise cette astuce pour instancier wordeditor (=WORD) qui permet de changer la signature.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2011
    Messages : 65
    Points : 35
    Points
    35
    Par défaut
    Perso, pour instancier Word et Outlook, j'utilise la fonction suivante :
    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
     
    Sub Instancie_Variables_Outlook_Word()
    'Permet d'utiliser les fonctionnalités de Word et Outlook
    Set OutApp = Outlook.Application
    If TypeOf Application.ActiveWindow Is Outlook.Inspector Then
        Set OutMail = OutApp.ActiveInspector.CurrentItem
        Set OutInsp = OutMail.GetInspector
        Set WordDoc = OutInsp.WordEditor
    Else
        Set OutMail = Application.ActiveExplorer.ActiveInlineResponse
        Set WordDoc = Application.ActiveExplorer.ActiveInlineResponseWordEditor
    End If
    Set WordApp = WordDoc.Application
    Set WordSel = WordApp.Selection
    End Sub
    Elle permet d'avoir WordEditor dans un nouveau mail, qu'il soit ouvert comme objet indépendant ou dans l'explorateur Oultook...
    Mais je pense que j'ai compris où tu voulais en venir avec ton code. La création du mail n'est là que pour avoir Wordeditor de disponible.

    Merci en tous les cas, c'est nickel comme code.

  6. #6
    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
    Oui c'est la méthode quand tu as un Email ouvert ou quand tu fais une réponse inline

    là en principe on part de rien juste l'explorateur

  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
    Par défaut
    ps: avec l'objet signature tu peux aussi en créer des nouvelles et avoir les 3 formats HTML,BRUT ET RTF

    (Set objSig = objDoc.Application.EmailOptions.EmailSignature)

    voir l'aide VBE de WORD

    Référence du développeur Word
    EmailSignatureEntries, membres de l’objet

    Collection d’objets EmailSignatureEntry qui représente toutes les signatures électroniques disponibles dans Word.

    Méthodes

    Nom Description
    Add Renvoie un objet EmailSignatureEntry qui représente une nouvelle signature électronique.
    Item Renvoie un objet EmailSignatureEntry spécifique appartenant à une collection.

    Propriétés

    Nom Description
    Application Renvoie un objet Application qui représente l’application Microsoft Word.
    Count Renvoie une valeur de type Long qui représente le nombre d’entrées de signature électronique dans la collection. En lecture seule.
    Creator Renvoie un entier de 32 bits indiquant dans quelle application l’objet spécifié a été créé. Type de données Long en lecture seule.
    Parent Renvoie un Object qui représente l’objet parent de l’objet EmailSignatureEntries spécifié.

    © 2010 Microsoft Corporation. Tous droits réservés.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2011
    Messages : 65
    Points : 35
    Points
    35
    Par défaut
    Ah ouais, pas bête. Je t'avouerai que j'avais commencé à rédiger du code pour créer des signatures en créant un à un chaque type de fichier. Mais s'il y a une autre méthode plus rapide, je suis preneur.

    Merci encore et merci au forum qui permet de trouver des solutions à des problèmes souvent galères...

  9. #9
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 233
    Points : 82
    Points
    82
    Par défaut Suite Signature Outlook
    Bonjour,

    Je m'excuse de m'incruster dans cette conversation mais je suis très intéressé par le sujet.
    Et j'aimerai vraiment arriver à créer des signatures avec un jeu de données et en placer une par défaut dans Outlook.

    Aujourd'hui le principe que j'ai trouvé est de faire une macro depuis word (avec rechercher remplace) en allant chercher les informations dans un fichier excel (grâce au login windows, je récupère les autres infos dans différentes colonnes) puis enregistrer les signature dans les 3 formats (HTM, RTF et TXT).

    Par contre il faudra que je fasse une sorte de raccourci pour que l'utilisateur ne fasse que "2 clics" pour lancer la macro de façon simple et sans voir le code.

    Auriez-vous des solutions à proposer ou des exemples svp?

    D'avance merci pour votre aide

  10. #10
    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
    je t'ai déjà répondu
    https://www.developpez.net/forums/d1.../#post10349026

    qu'est ce qui ne te va pas das cette méthode ?

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2011
    Messages : 65
    Points : 35
    Points
    35
    Par défaut
    Pour info (et si ça peut servir), je mets le fichier Excel que j'ai créée pour mettre à jour les signatures des mails Outlook dans mon organisation.
    J'ai créé un doc Word pour HTML, RTF et txt. Le fichier Excel remplace les données dans ces fichiers et mets les profils de signature dans Outlook. Excel enregistre également la date de dernière utilisation par utilisateur de façon à savoir qui a mis à jour ou non.
    Enfin, chaque fois qu'il y a un changement de signature (pour un éventement...), la Com envoie un lien vers ce fichier. Chaque utilisateur clique dessus, une boîte de dialogue s'ouvre, Excel reconnait l'utilisateur (car il repère le nom d'utilisateur de Windows, sauf la première fois) et voilà !

    Les éléments :
    https://framadrop.org/r/-w4MhC9tIx#6...dNCLQzficHRsU=

    Si vous avez des questions, n'hésitez pas.

  12. #12
    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


    si tu as un serveur EXCHANGE tu peux récupérer des infos sur l'utilisateur.
    (On pourrait aussi interroger l'AD si tu as un DOMAINE)

    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
    Sub Infos_User_Exchange()
     
        Set CurrentUser = Application.Session.CurrentUser.AddressEntry
     
        '   // Check if the current user uses the Exchange Server.
        If (CurrentUser.Type = "EX") Then
            Dim objExUser As ExchangeUser
            Set objExUser = CurrentUser.GetExchangeUser()
     
     
            MsgBox objExUser.GetExchangeUser.LastName & vbCr & _
                   objExUser.GetExchangeUser.FirstName & vbCr & _
                   objExUser.GetExchangeUser.BusinessTelephoneNumber & vbCr & _
                   objExUser.GetExchangeUser.PrimarySmtpAddress & vbCr & _
                   objExUser.GetExchangeUser.JobTitle & vbCr & _
                   objExUser.GetExchangeUser.Department & vbCr & _
                   objExUser.GetExchangeUser.Alias & vbCr & _
                   objExUser.GetExchangeUser.City & vbCr & _
                   objExUser.AssistantName & vbCr & _
                   objExUser.Comments & vbCr & _
                   objExUser.CompanyName & vbCr & _
                   objExUser.MobileTelephoneNumber & vbCr & _
                   objExUser.Name & vbCr & _
                   objExUser.OfficeLocation & vbCr & _
                   objExUser.PostalCode & vbCr & _
                   objExUser.StateOrProvince & vbCr & _
                   objExUser.StreetAddress
     
            '       // Check if the current user has a manager.
     
            Set Manager = objExUser.Manager
            If Not Manager Is Nothing Then
                ManagerName = objExUser.Manager.Name
            End If
        End If
     
    End Sub

  13. #13
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 233
    Points : 82
    Points
    82
    Par défaut top top top
    Sincèrement c'est TOP!!! merci à vous 2 pour le fichier et vos conseils c'est exactement ce qu'il me faut!!!


  14. #14
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 233
    Points : 82
    Points
    82
    Par défaut J'ai parlé trop vite
    Hello, en faisant le test avec windows 7 et Outlook 2010 (32 bits) ça fonctionne parfaitement.
    Mais sur Windows 10 avec Outlook (32 bits), j'ai un message d'erreur
    ERREUR d'exécution '91':
    Variable objet ou variable de block With non définie.
    Et cela s'arrête sur la ligne suivante dans le programme.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set objSig = objDoc.Application.EmailOptions.EmailSignature
    Auriez-vous des pistes svp?

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2011
    Messages : 65
    Points : 35
    Points
    35
    Par défaut
    Alors, là, je ne sais pas d'où vient l'erreur. J'utilise ce fichier auprès d'une quarantaine de collègues, et ça marche même sur ceux qui ont windows 10.

    la seule erreur que j'ai parfois rencontré est qu'il faut que les gens aient bien un dossier de signature paramétré dans Windows. L'erreur vient peut-être de là. Il faudrait créer une signature sur Outlook puis réessayer de lancer mon fichier. Et s'il continue l'erreur, il faudrait vérifier que le dossier de signature a bien été créé au bon endroit...

    Bon courage

  16. #16
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 233
    Points : 82
    Points
    82
    Par défaut test très étrange
    J'ai fait des tests et il semble que si je laisse Outlook ouvert et que je lance le programme il fonctionne.
    Cependant si Outlook est fermé, j'ai le bug mentionné précédemment qui apparaît...
    C'est comme si l'instance qui ouvre un message ne suffisait pas et il faut que l'application Outlook soit ouverte directement.
    A suivre...

  17. #17
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2011
    Messages : 65
    Points : 35
    Points
    35
    Par défaut
    En effet, c'est bizarre. Sur mon ordi perso, je sais qu'il réussissait même si outlook n'était pas ouvert mais le fait d'être sur un réseau change peut-être la donne.
    si le problème ne vient que de là, tu peux peut-être demander l'ouverture d'Outllook. Il doit y avoir moyen de faire ça en VBA...

  18. #18
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 233
    Points : 82
    Points
    82
    Par défaut Suite signatures mail
    Hello,
    Je commence à bien comprendre le fichier par contre je remarque que les liens sont en noir au lieu du bleu...
    Est-ce que j'ai loupé quelquechose svp? Pour la fonction qui balaie le fichier est bien active.
    A part ça je trouve que le seul truc qui manque c'est un "mailto" sur l'adresse mail et ce générateur sera proche de la perfection.
    D'avance merci pour vos retours
    Bonne continuation

  19. #19
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2011
    Messages : 65
    Points : 35
    Points
    35
    Par défaut
    Hello,

    Tout d'abord, c'est très sympa pour le "proche de la perfection" ! Pour le mailto, je ne vois pas trop l'intérêt, mais j'imagine que ça pourrait se rajouter.
    Pour le coup des liens hypertextes en noir, je ne me l'explique pas trop. Plus exactement, je les ai mis en noir dans le document word volontairement (raison esthétique). Mais bizarrement, sur certains PC, il les met quand même en bleu... Je pense qu'il suffirait de remettre les liens en couleur automatique dans le doc word pour qu'ils soient bons...

    Merci

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

Discussions similaires

  1. [XL-2016] Macro VBA - Insertion image, texte enrichi & signature par défaut dans un mail
    Par hadiney dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/03/2018, 15h54
  2. [PPT-2003] modifier texte par défaut des espaces réservés
    Par BenoitK dans le forum Powerpoint
    Réponses: 5
    Dernier message: 19/08/2010, 03h27
  3. Réponses: 0
    Dernier message: 02/11/2007, 21h34
  4. Réponses: 4
    Dernier message: 04/10/2005, 00h07

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