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 de sujet automatiquement


Sujet :

VBA Outlook

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2011
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 58
    Points : 28
    Points
    28
    Par défaut Changer de sujet automatiquement
    Bonjour,
    J'aimerai faire en sorte que lorsque je reçois un e-mail d'un certain destinataire (ex : info@keybon.com), le sujet de l'e-mail devienne le numéro de téléphone contenu dans cet e-mail...
    Pourriez-vous m'aider? Merci

    Bonjour, j'aimerai faire en sorte que lorsque je reçois un e-mail d'un certain destinataire, alors le numéro de téléphone se trouvant dans le mail devient le sujet du mail, et j'aimerai que ca se fasse automatiquement pour tous les nouveaux mails reçus...
    J'ai donc pensé faire une règle qui s'appliquent sur tous les nouveaux mails reçus, avec comme destinataire info@keybon.com, et ce qu'il se passe sur ces mails est un macro que j'allais écrire... pourriez-vous m'aider à récupérer le numéro de téléphone se trouvant dans le contenu du mail, ainsi que de remplacer le sujet du mail par ce numéro de téléphone?
    Merci....

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    une solution en VBA , code à placer dans ThisSession :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
     Dim tbItems
     Dim oItem As MailItem
     Dim i As Integer
     tbItems = Split(EntryIDCollection, ",")
     For i = 0 To UBound(tbItems)
       Set oItem = Session.GetItemFromID(tbItems(i))
        If oItem.SenderEmailAddress = "info@keybon.com" Then
            oItem.Subject = oItem.Subject & " [MODIFI] " & Left(oItem.Body, 10)
        End If
        oItem.Save
     Next
    End Sub
    pour le numéro de téléphone vu que tu nous as rien dit j'ai considéré qu'il était compris dans les 10 premiers caractères de ton mail ..

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2011
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 58
    Points : 28
    Points
    28
    Par défaut
    Merci beaucoup, mais en fait, le numéro de téléphone se trouve à la toute fin du mail, et peut comprendre entre 10 et 12 chiffres (si il comprend le +32, ou non), et il faut aussi que le contenu du mail contienne le mot "Received"... je sais que je complique un peu la chose mais merci encore!!!!
    Et en fait, comme je l'ai déjà dit, j'ai créé une règle qui s'applique à chaque fois qu'un mail provient de info@keybon, donc est-ce nécessaire de le placer dans le code?



    En fait je réexplique (pcq j'ai l'impression de mal m'exprimer ) :
    Il s'agit de mails que je recois de info@keybon lorsque j'envoie des fax, ou que je créé des scans.
    1. il faut que le mail provienne de info@keybon (mais ca je pense qu'il suffit de le mettre dans la règle, et non dans le macro, mais je me trompe peut-etre...)
    2. il faut donc que le titre du mail contienne le mot "FAX" (également dans la règle et non dans le macro?)
    3. il faut que le mail contienne le mot "Received"
    4. il faut que le mail contienne un numéro de téléphone en fin de mail (de 10 à 12 chiffres)
    5. il faut que le sujet du mail soit changé par ce numéro de téléphone (s'il contient ce numéro)

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par keybon Voir le message
    ...
    Et en fait, comme je l'ai déjà dit, j'ai créé une règle qui s'applique à chaque fois qu'un mail provient de info@keybon, ...
    et elle fait quoi ta règle ?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Août 2011
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 58
    Points : 28
    Points
    28
    Par défaut
    Justement, en fait quand je créé une règle sur outlook, je peux choisir ce qui déclenche la règle, et ce qu'il se produit.
    Ce qui déclenche : le fait de recevoir un mail de info@keybon, et le fait que le titre soit : FAX.
    Ce qu'il se produit : un macro que j'aimerai créer comprenant les 3 derniers points que j'ai énumeré... mais vu que je ne m'y connais pas du tout, j'ai besoin de votre aide
    mais si vous pensez que c'est mieux de créer un macro avec toutes les instructions, vous avez probablement raison !

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Voici un exemple de script modifiant le sujet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub GestionMailsKeybon(Item As Outlook.MailItem)
       Item.Subject = Item.Subject & Right(Item.Body, 20)
       Item.Save
    End Sub
    par contre pour ton point 4 .. comment ce présent ton numéro de téléphone .. qu'est-ce qui peu nous dire que celui ci est présent ..? as tu un exemple à nous montrer des derniers caractères de ton mail ..

  7. #7
    Nouveau membre du Club
    Inscrit en
    Août 2011
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 58
    Points : 28
    Points
    28
    Par défaut
    Exemple de mail :

    Please open the attached document. It contains a copy of a Transmitted/Received Fax. For more information on DELL products and solutions, please visit http://www.dell.com.
    Fax Job : Receive
    Unknown

    (s'il ne contient pas de numéro de téléphone)


    Please open the attached document. It contains a copy of a Transmitted/Received Fax. For more information on DELL products and solutions, please visit http://www.dell.com.
    Fax Job : Send
    0031736127191

    (s'il contient un numéro de téléphone, d'ailleurs ici il y a 13 chiffres)

  8. #8
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    tiens par exemple , je récupère la dernière ligne et teste si celle-ci est numérique et supérieure à 8 caractères :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub GestionMailsKeybon(Item As Outlook.MailItem)
       Dim tb
       Dim stDer As String 'Derniere ligne
       tb = Split(Item.Body, vbCrLf) '
       stDer = tb(UBound(tb))
       If Len(stDer) > 8 And IsNumeric(stDer) Then 'Si longueur dernière ligne supérieure à 8et valeur numérique
        Item.Subject = Item.Subject & " [" & stDer & "]"
        Item.Save
       End If
    End Sub

  9. #9
    Nouveau membre du Club
    Inscrit en
    Août 2011
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 58
    Points : 28
    Points
    28
    Par défaut
    J'ai essayé le tout, mais ca ne fonctionne pas... il ne faut pas écrire Set avant de changer le sujet?
    Merci bcp en tous cas!!!

    bonjour, cela ne fonctionne toujours pas
    pourriez-vous m'aider?

  10. #10
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par keybon
    C'est super! et est-ce que ca change le sujet?
    Et vous sauriez aussi pour l'avant dernière ligne, si y a Receive ?

    Merci beaucoup pour votre aide en tous cas!!!
    et puis vous éditez le message pour dire "ça ne fonctionne pas" ... mais c'est quoi qui fonctionne pas ?

  11. #11
    Nouveau membre du Club
    Inscrit en
    Août 2011
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 58
    Points : 28
    Points
    28
    Par défaut
    oui mais parce que je n'avais pas encore testé le code
    j'ai donc édité cette règle dans mon outlook, et testé en m'envoyant des messages (comportant le mot Fax dans le sujet, etc etc) mais le sujet ne se change pas automatiquement, il ne se change pas du tout...
    peut-etre qu'il faut mettre 'Set' avant de changer le sujet dans le code?
    peut-etre pourriez-vous tester cela en créant aussi une règle sur votre outlook et puis vous envoyer des mails avec Fax dans l'objet et qui contiennent un numéro de téléphone en dernière ligne?

    Appliquer cette règle après l'arrivée du message
    avec ... dans l'adresse de l'expéditeur
    et contenant Fax dans l'objet
    exécuter Projet1.GestionFax

  12. #12
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par keybon Voir le message
    ...
    peut-etre pourriez-vous tester cela en créant aussi une règle sur votre outlook et puis vous envoyer des mails avec Fax dans l'objet et qui contiennent un numéro de téléphone en dernière ligne?
    ...eu non .., mon code fonctionne je l'ai testé ..



    Citation Envoyé par keybon Voir le message
    ...
    exécuter Projet1.GestionFax
    vérifie le fonctionnement de ta règle en réduisant la macro à l'affichage du sujet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub GestionMailsKeybon(Item As Outlook.MailItem)
         MsgBox Item.Subject
    End Sub

  13. #13
    Nouveau membre du Club
    Inscrit en
    Août 2011
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 58
    Points : 28
    Points
    28
    Par défaut
    cela ne fonctionne pas non plus, mais peut-etre que je m'y prends mal pour créer une règle?
    pourriez-vous me dire comment vous avez testé que ca fonctionnait?

  14. #14
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    le code à exécuter à bien été sélectionné dans une liste ?
    ce code est bien dans ThisOutlookSession ?
    il n'y as bien que le message box ?
    pas de problèmes de sécurité ? tes autres macros fonctionnent ?

  15. #15
    Nouveau membre du Club
    Inscrit en
    Août 2011
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 58
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par bbil Voir le message
    le code à exécuter à bien été sélectionné dans une liste ?
    ce code est bien dans ThisOutlookSession ?
    il n'y as bien que le message box ?
    pas de problèmes de sécurité ? tes autres macros fonctionnent ?
    oui je l'ai selectionné dans une liste
    ca veut dire quoi dans ThisOutlookSession?
    il n'y a rien qui se passe quand j'envoie un mail
    c'est la première fois que j'utilise un macro, c'est pour ca que je m'en sors pas trop...

  16. #16
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    vérifie la sécurités des macros .. dans outlook menu outils/Macros/Sécurité/
    tu sélectionne à gauche sécurité des macros et à droite "Avertissement pour toutes les macros.."

    tu relance outlook et au démarrage tu dois avoir un message te demandant d'autoriser l'exécution de macros...

  17. #17
    Nouveau membre du Club
    Inscrit en
    Août 2011
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 58
    Points : 28
    Points
    28
    Par défaut
    voilà l'affichage de la boite de dialogue avec le sujet fonctionne, donc j'ai essayé d'executer le 1e code pour que le sujet change automatiquement mais ca ne fonctionne pas alors que j'ai exactement copié-collé votre code

  18. #18
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    La copie seule du code ne suffit pas il faut aussi que le message respecte les contraintes définies dans le code (voir commentaires) ..

    rajoute l'affichage de la dernière ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     (...) stDer = tb(UBound(tb))
    msgBox stDer (...)
    voir si elle contient bien un "numéro" de 8 chiffre au mini

  19. #19
    Nouveau membre du Club
    Inscrit en
    Août 2011
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 58
    Points : 28
    Points
    28
    Par défaut
    oui je suis d'accord, mais les tests que je fais respectent justement toutes les restrictions, et cela ne modifie pas le sujet pour autant...
    quand je teste, une boite de dialogue vide apparait alors que la dernière ligne contient un nombre d'au moins 8 chiffres

  20. #20
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    tu peu faire un copier/coller d'un de tes message ici ?

    il y as peu-être une ligne vide à la fin de ton message? tu peu afficher le nombre de ligne pour contrôler : MsgBox UBound(tb)

Discussions similaires

  1. Macro pour remplir un sujet automatiquement
    Par jouvrard dans le forum VBA Outlook
    Réponses: 7
    Dernier message: 20/09/2017, 11h12
  2. Changer du texte automatiquement
    Par franquis dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 26/11/2009, 16h35
  3. changer la langue automatiquement avec javascript
    Par Amel_B dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/03/2009, 09h48
  4. Changer la langue automatique à la réception focus
    Par saidm dans le forum VB 6 et antérieur
    Réponses: 26
    Dernier message: 02/12/2007, 21h14
  5. changer titre graphique automatiquement
    Par stephsen dans le forum Access
    Réponses: 1
    Dernier message: 01/11/2005, 15h16

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