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 :

Mettre une codification automatique dans l'objet d'un mail


Sujet :

VBA Outlook

  1. #1
    Membre du Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 100
    Points : 49
    Points
    49
    Par défaut Mettre une codification automatique dans l'objet d'un mail
    Bonsoir,
    Je cherche une macro VBA dans Outlook (novice sur VBA Outlook, moins sur Excel :-)) qui me permettrait de mettre automatiquement une codification dans l'objet du mail. Je m'explique:

    Les codes de diffusion ci-dessous en gras permettent à chaque destinataire de gagner du temps lors de la réception d’un mail. Cela permet aussi à l’expéditeur de clarifier sa demande. Des codes simples à mettre en œuvre pour un résultat impactant :

    • [AR] + objet du mail => action requise
    • [LR] + objet du mail => lecture requise
    • [RR] + objet du mail => réponse requise
    • [PVI] + objet du mail => pour votre information
    • [URGENT] + objet du mail => urgent
    • [IMPORTANT] + objet du mail => important


    Le processus serait :
    • Solution 1 : Avoir un raccourci clavier (différent par codification) permettant d'ouvrir un nouveau message dans Outlook, incluant ma signature et automatiquement le code de diffusion entre [] (voir codification ci-dessus). A moi de rajouter ensuite l'objet du mail

    ou


    • Solution 2 : Ouvrir un nouveau message avec signature et en cliquant sur une touche de fonction, préalable associée à une macro, définir le code de diffusion entre [] (voir codification ci-dessus) répondant à mon besoin. A moi de rajouter ensuite l'objet du mail


    Merci 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
    Bonjour,

    C'est sans doute mieux de tester lorsque tu cliques sur Envoyer.

    à mettre dans ThisOutlookSession

    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
    Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    '---------------------------------------------------------------------------------------
    ' Procedure : Application_ItemSend
    ' Author    : OLiv-
    ' Purpose   :
    '---------------------------------------------------------------------------------------
     
    ' on verifie que c'est un mail
        If Not Item.Class = olMail Then Exit Sub
     
        If InStr(1, Item.Subject, "[") = 0 Then
     
            Choix = InputBox("1-[AR] action requise" & vbCr & "2-[LR] lecture requise" & vbCr & "3-[RR]réponse requise" & vbCr & _
                             "4-[PVI] pour votre information" & vbCr & "5-[URGENT] urgent" & vbCr & "6-[IMPORTANT] important", "Voulez-vous ajouter un code ?")
            If Choix <> "" Then
     
                Item.Subject = Choose(Choix, "[AR]", "[LR]", "[RR]", "[PVI]", "[URGENT]", "[IMPORTANT]") & "-" & Item.Subject
            End If
     
        End If
    End Sub
    Tu peux optimiser la présentation en utilisant un Userform et des boutons radio.
    https://silkyroad.developpez.com/VBA/UserForm/ (c'est pareil pour OUTLOOK)

  3. #3
    Membre du Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 100
    Points : 49
    Points
    49
    Par défaut
    Un très grand merci
    J'adore :-)

  4. #4
    Membre du Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 100
    Points : 49
    Points
    49
    Par défaut
    Oliv
    J'ai testé tout l'après midi et je trouve cela top.
    J'ai juste un petit bémol, car il n'y a pas la possibilité de visualiser ce que l'on a mis avant envoi. Du coup, on ne peut pas modifier ce qui pourrait quelquefois être un peu "préjudiciable.
    Aurais tu une astuce pour cela ? Il faudrait qu'une fois qu'on est renseigner le numéro, l'objet s'affiche et ensuite on envoi
    Merci pour ton aide

  5. #5
    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,


    avant End If
    End Sub

    tu peux mettre

  6. #6
    Membre du Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 100
    Points : 49
    Points
    49
    Par défaut
    Top, merci Oliv, tout fonctionne et j'adore cette macro, vraiment utile au quotidien
    A bientôt sur le forum pour de nouvelles aventures

  7. #7
    Membre du Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 100
    Points : 49
    Points
    49
    Par défaut
    Bonsoir Oliv,

    J'ai retravaillé la macro afin de la rendre plus fonctionnel en intégrant de nouvelles données :-) J'ai essayé de mettre des explications par ligne de code et je souhaiterai avoir ton feedback

    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
    Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
     
        'Permet de verifier qu'il s'agit bien d'un mail ouvert. S'il ne s'agit pas d'un mail alors la macro ne s'executera pas
            If Not Item.Class = olMail Then Exit Sub
     
        'Fonction VBA InStr() permet de tester si un texte contient une chaine de caracteres specifiee et si oui, elle permet de savoir ou cette chaine se trouve dans le texte. 
            If InStr(1, Item.Subject, "[") = 0 Then
     
         'Ouverture d'une fenetre contenant les instructions et les codes de diffusion
            Choix = InputBox("Pour rajouter un code de diffusion, entrez le numero correspondant puis valider, sinon cliquer sur la touche Annuler" & vbCr & vbCr & "1- ACTION REQUISE" & vbCr & "2- CONFIDENTIEL" & vbCr & "3- IMPORTANT" & vbCr & _
                             "4- LECTURE REQUISE" & vbCr & "5- PERSONNEL" & vbCr & "6- POUR INFORMATION" & vbCr & "7- R?PONSE REQUISE" & vbCr & "8- URGENT", " Voulez-vous ajouter un code de diffusion ?")
            If Choix <> "" Then
     
         'Apres choix du code de diffusion, integration devant l'objet du mail (Item.Subject)
            Item.Subject = Choose(Choix, "[ACTION REQUISE]", "[CONFIDENTIEL]", "[IMPORTANT]", "[LECTURE REQUISE]", "[PERSONNEL]", "[POUR INFORMATION]", "[R?PONSE REQUISE]", "[URGENT]") & "-" & Item.Subject
            End If
     
        End If
    End Sub
    Pourrais tu me valider les explications. D'autre part, j'essaye de donner une explication du code
    ByVal Item As Object, Cancel As Boolean
    mais sans succès.

    Merci pour ton aide
    Bonne soirée

  8. #8
    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,

    ByVal Item As Object, Cancel As Boolean sont des variables d'événements,

    item désigne l'élément déclencheur (le mail)
    cancel s'il a la valeur true, annule l'événement (ici l'envoi)

    avec d'autres événements il peut y avoir d'autres variables
    ou
    https://docs.microsoft.com/en-us/off...tlook.mailitem
    voir events

  9. #9
    Membre du Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 100
    Points : 49
    Points
    49
    Par défaut
    Merci Oliv,
    J'ai bien compris et je vais étudier le document que tu m'as transmis
    Concernant les autres lignes explicatives du code, tu me confirmes que j'ai bien tout compris
    Merci à toi

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2019
    Messages : 8
    Points : 10
    Points
    10
    Par défaut Userform
    Bonjour à tous,

    Je me suis permis de reprendre votre code et de le modifier en utilisant un userform au lieu de l'inputbox, j'ai presque réussi cela donne sa :

    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
    Private Sub UserForm_Initialize()
     
    ComboBox1.AddItem "[INFO]"
    ComboBox1.AddItem "[URGENT]"
     
    End Sub
     
    Private Sub Recuperation
     
        R = ComboBox1.Text
     
    End Sub 
     
    Private Sub CommandButton1_Click()
     
        Unload UserForm1
     
    End Sub
    Là où sa ce complique c'est quand j'essaye de récupérer le R dans ThisOutlookSession, en effet j'ai écris comme sa :

    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 R as String
     
    Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
     
        If Not Item.Class = olMail Then Exit Sub
     
        If InStr(1, Item.Subject, "[") = 0 Then
     
             UserForm1.Show
     
             Item.Subject = R & "-" & Item.Subject
     
         End If
     
    End Sub
    Et ça marche pas

    Merci pour votre aide

  11. #11
    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,

    tu as 2 façons de faire soit tu ne fermes pas le formulaire (Unload UserForm1) mais tu le masques ( UserForm1.Hide)


    et tu utilises le nom du formulaire devant ton ton R

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Item.Subject = UserForm1.R & "-" & Item.Subject
    soit tu utilises une variable publique (public R as string) en dehors de la procédure.


    https://silkyroad.developpez.com/VBA/UserForm/
    https://silkyroad.developpez.com/VBA/ControlesUserForm/

  12. #12
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2019
    Messages : 8
    Points : 10
    Points
    10
    Par défaut
    Merci beaucoup ça marche, mais du coup j'ai du déclarer la variable en publique et j'ai du mettre le UserForm en Hide pour que ça marche.

  13. #13
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Novembre 2020
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Bouton macro pour insérer modification d'objet
    Citation Envoyé par Oliv- Voir le message
    SAlut,


    avant End If
    End Sub

    tu peux mettre


    Bonjour oliv-
    Merci beaucoup de tes contributions qui sont très utiles.
    Je cherche à utiliser ce type de code pour insérer un préfixe aux mails que je transfère à mes collègues. Mais je souhaiterais aussi avoir le choix, pour certains mails de ne pas changer l'objet du tout. Est-ce possible ? (Avec ce code, on est obligé de choisir parmi les 8 choix et on ne peux pas sortir ou annuler pour ne rien mettre).
    J'ai aussi pensé à créer 8 macros à associer à des 8 boutons dans le bandeau d'outlook afin de choisir, au cas par cas, d'appuyer sur le bouton qui correspond au préfixe que je veux insérer sur un courriel ouvert avant de le transférer.
    Que conseillerais tu ?
    Merci

  14. #14
    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
    TU peux avoir un userform qui s'affiche à chaque envoi (application_itemsend...) avec en plus un bouton annuler , qui ne change rien.

  15. #15
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Novembre 2020
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Oliv- Voir le message
    SAlut
    TU peux avoir un userform qui s'affiche à chaque envoi (application_itemsend...) avec en plus un bouton annuler , qui ne change rien.


    Je ne m’y connais pas bien en VBA. Aurais tu la possibilité de me proposer la modification du code plus haut pour ajouter la possibilité d’envoyer le mail sans changement d’objet (si ce n’est au final pas trop compliqué pour toi) ?
    Merci !

  16. #16
    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
    DE QUEL CODE PARLES TU EXACTEMENT ?

    tu peux faire une condition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if UserForm1.R <>"" then
    Item.Subject = UserForm1.R & "-" & Item.Subject
    end if
    le mieux c'est que tu indique dans ton prochain message le code que tu utilises

Discussions similaires

  1. hibernate mettre a jour une hashmap contenu dans un objet
    Par Invité dans le forum Frameworks Web
    Réponses: 0
    Dernier message: 12/08/2015, 09h35
  2. mettre c.EmprunteurId__r.Name dans l'objet d'un mail
    Par max33370 dans le forum Salesforce.com
    Réponses: 3
    Dernier message: 14/11/2014, 14h47
  3. Réponses: 1
    Dernier message: 10/11/2005, 16h02
  4. Insérer une ligne automatiquement dans une autre tab
    Par davyd dans le forum Langage SQL
    Réponses: 10
    Dernier message: 29/03/2005, 17h08
  5. Réponses: 2
    Dernier message: 08/08/2003, 17h30

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