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 :

Changer l'objet d'un mail via VBA [OL-2010]


Sujet :

VBA Outlook

  1. #1
    Débutant   Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 885
    Points : 267
    Points
    267
    Par défaut Changer l'objet d'un mail via VBA
    Bonjour,

    J'ai une macro qui me permet de changer l'objet d'un mail (ajout de la date de réception ou d'envoi du mail).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Itm.Subject = Format(Itm.ReceivedTime, "yyyy/mm/dd") & " _ " & Itm.Subject
    Itm.Subject = Replace(Itm.Subject, "/", "-")
    Ce code marche très bien et j'obtiens :
    2013-11-22 _ Sujet du mail

    Toutefois, je voudrais le modifier et ajouter l'heure de réception;
    J'ai donc fait ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Itm.Subject = Format(Itm.ReceivedTime, "yyyy/mm/dd" & "|" & "hh/mm") & " _ " & Itm.Subject
    Itm.Subject = Replace(Itm.Subject, "/", "-")
    Qui en soit, marche très bien aussi.
    Mais j'obtiens :
    2013-11-22|10-41 _ Sujet du mail

    C'est pas très lisible.
    Y aurait-il moyen d'avoir :
    2013-11-22|10h41 _ Sujet du mail
    (ou quelque chose qui s'en rapproche et qui soit facilement lisible).

    Merci d'avance de votre aide
    Bonne journée
    A+

  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,
    comme cela ca doit être ok

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format(Itm.ReceivedTime, "yyyy-mm-dd hh\hmm")

  3. #3
    Débutant   Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 885
    Points : 267
    Points
    267
    Par défaut
    Nikel Merci

    J'ai quand même modifier quelque truc pour mieux séparer les jours et les heures (bref rien de grave).

    Toutefois, j'ai une autre question à laquelle, je viens de penser (oui ça m'arrive)

    Simplement, je voudrais pouvoir ajouter un E ou un R pour savoir si c'est un mail Reçu ou un mail Envoyé (les mails sont déplacé dans des dossier et supprimer de Outlook par la suite)
    Je voudrais un truc du style :
    2013-11-22 _ 10h41 E= Sujet du mail
    2013-11-22 _ 11h22 R= Sujet du mail
    En fonction de la boite de réception ou d'envoi.

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if Itm.parent.name = "Boîte de réception" then
    Origine="R"
    elseif  Itm.parent.name="Éléments envoyés" then 
    origine= "E"
    else
    origine = "A"
    end if

  5. #5
    Débutant   Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 885
    Points : 267
    Points
    267
    Par défaut
    Nikel

    Merci

    Même si il manquait un End If

    Merci beaucoup pour tes réponses rapide.

    Si cela peut aider, voici mon code complet :
    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
    Sub ObjetMail()
        Dim Exp As Explorer
        Dim Sel As Selection
        Dim Itm As MailItem
        Set Exp = ActiveExplorer
        Set Sel = Exp.Selection
        For Each Itm In Sel
            If Itm.Parent.Name = "Boîte de réception" Then
                Origine = "R"
            Else
            If Itm.Parent.Name = "Éléments envoyés" Then
                Origine = "E"
            Else
                Origine = "A"
            End If
            End If
            Itm.Subject = Format(Itm.ReceivedTime, "yyyy-mm-dd" & " _ " & "hh\hmm") & " " & Origine & " = " & Itm.Subject
            Itm.Subject = Replace(Itm.Subject, "/", "-")
            Itm.Save
         Next Itm
             Set Itm = Nothing
            Set Sel = Nothing
            Set Exp = Nothing
     End Sub

    Bonne journée
    A+

  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
    Citation Envoyé par FCL31 Voir le message
    Même si il manquait un End If
    NON tout est là (VOIR UTILISATION DE ELSEIF)

  7. #7
    Débutant   Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 885
    Points : 267
    Points
    267
    Par défaut
    Autant pour moi, j'ai juste mal regardé ton code
    Comme je l'ai lu depuis mon téléphone, j'ai lu Else If et non ElseIF

    Toutes mes excuse alors.
    Je reprend donc ma réponse :
    Nikel

    Merci

    Merci beaucoup pour tes réponses rapide.

    [...]


    A+

  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
    mais ca aurait pu arriver ;-)
    bye

  9. #9
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonsoir Oliv.

    En parcourant le forum je suis tombé sur ta réponse qui marche bien, toutefois en VBA Outlook je suis débutant (quelques notions sous xls), je souhaiterais faire apparaitre dans l'objet en plus des info déjà rajoutées l'expéditeur (j'ai vu des action type senderemailadress) mais je n'y arrive pas.

    Le code s'exécute sur un ou plusieurs mail sélectionnés, mais serait il possible de l'exécuter dès réception d'un mail ou alors sur la boite de réception en vérifiant d'abord ceux qui sont "reformaté".

    Merci d'avance si tu peux m'aiguillé.

    Jaouen

  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
    Bonjour,
    il faudrait que tu crées un nouveau sujet avec une explication claire de ce que tu veux et le code que tu as déjà.

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

Discussions similaires

  1. Changer d'expéditeur pour un mailing via access et outlook
    Par AlexFred dans le forum VBA Access
    Réponses: 1
    Dernier message: 02/11/2012, 11h50
  2. [XL-2003] Envoi mail via vba - outlook 2003
    Par NELAIN dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/04/2009, 16h54
  3. Envoyer doc WORD dans le "corps" par mail via VBA
    Par shingo94 dans le forum VBA Access
    Réponses: 10
    Dernier message: 08/02/2008, 15h45
  4. envoie de donnée par mail via vba
    Par swissmade dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/08/2007, 12h43
  5. Changer le type d'un champ via vba
    Par mat75019 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 02/10/2006, 18h42

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