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 :

Macro Sauvegarde du mail dans une règle Outlook [OL-2016]


Sujet :

VBA Outlook

  1. #1
    Membre du Club
    Homme Profil pro
    enquiquineur d'unparia
    Inscrit en
    Février 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : enquiquineur d'unparia

    Informations forums :
    Inscription : Février 2014
    Messages : 82
    Points : 48
    Points
    48
    Par défaut Macro Sauvegarde du mail dans une règle Outlook
    Hello,

    Alors voilà, je cherche à la réception d'un mail spécifique à enregistrer le mail exactement comme si je faisais un drag & drop vers mon folder (ex: "C:\Users\MonSavon\Documents\Test"), en plus des PJ. En ce qui concerne les PJ: pas de soucis, sauvegarder le mail (dans une macro à part), pas de soucis, mais les 2 dans la même macro : cela ne marche pas, sans message d'erreur.

    Dans mon code si dessous, je cherche à sauvegarde le mail si celui ci vient de mike, et sauvegarder les PJ en gérant mes folders.
    Si je laisse le code comme ça, cela ne marche pas. Si je met en commentaire la LIGNE BUG, cela marche sans soucis. Il doit y avoir quelque chose que je ne comprend pas!

    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
     
    Sub SaveAttachement(Item As Outlook.MailItem)
            Dim TabPath(2) As String, SavePath As String
            Set attachs = Item.Attachments
     
     
            TabPath(0) = "\\toto\"
            TabPath(1) = "\\tata\"
     
            'Tableau de direction des PJ____________________________________________
            If (Item.Sender = "jordran@live.com") Then
                SavePath = TabPath(0)
            ElseIf (Item.Sender = "mike@live.com") Then
                SavePath = TabPath(1)
                Item.SaveAs TabPath(1) & Item.Subject & ".msg", OlSaveAsType.olMSG 'LIGNE BUG
            End If
            '_______________________________________________________________________
            
            For Each attach In attachs
                file = attach.FileName
                attach.SaveAsFile SavePath & file
            Next
    End Sub
    Quelqu'un aurait-il une idée ?

    Merci d'avance à tous !

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 263
    Points
    34 263
    Par défaut
    Salut,

    le code de depart ne me semble pas a priori foireux, quel est exactement le message d'erreur stp ?

    https://msdn.microsoft.com/fr-fr/lib.../ff868727.aspx
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre du Club
    Homme Profil pro
    enquiquineur d'unparia
    Inscrit en
    Février 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : enquiquineur d'unparia

    Informations forums :
    Inscription : Février 2014
    Messages : 82
    Points : 48
    Points
    48
    Par défaut
    Hello!

    Merci de ta réponse.

    Et bien je n'ai aucune erreur, c'est bien ça qui est curieux.
    Et j'ai mis la ligne SaveAs dans une macro à part exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sub SaveMail(Item As Outlook.MailItem)
     
                Item.SaveAs TabPath(1) & Item.Subject & ".msg", OlSaveAsType.olMSG 'LIGNE BUG
    End Sub
    et ça marche... (avec les params définit dans la sub)

    Je vais essayer d'appeler la macro SaveMail dans la SaveAttachement.

    On va voir.

    Bonne journée

  4. #4
    Membre du Club
    Homme Profil pro
    enquiquineur d'unparia
    Inscrit en
    Février 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : enquiquineur d'unparia

    Informations forums :
    Inscription : Février 2014
    Messages : 82
    Points : 48
    Points
    48
    Par défaut
    Allez comprendre pourquoi, mon nouveau code marche, j'ai planqué le SaveAs du mail dans une seconde macro que j'appelle et ça marche....

    L'informatik cey magik

    Si ça sert à quelqu'un :

    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
     
     
    Option Base 0
     
    Sub SaveAttachement(Item As Outlook.MailItem)
            Dim TabPath(2) As String, SavePath As String
            Set attachs = Item.Attachments
     
     
            TabPath(0) = "\\toto\"
     
            TabPath(1) = "\\tata\"
     
            'Tableau de direction des PJ____________________________________________
            If (Item.Sender = "labretagnecavousgagne@finistere.bzh") Then
                SavePath = TabPath(0)
            ElseIf (Item.Sender = "ilnepleutjamais@finistere.bzh") Then
                SavePath = TabPath(1)
                Call SaveMyMail(Item, TabPath(1))
            End If
            '_______________________________________________________________________
            
            For Each attach In attachs
                file = attach.FileName
                attach.SaveAsFile SavePath & file
            Next
    End Sub
     
     
     
    Sub SaveMyMail(MyMail As Outlook.MailItem, SavePath As String)
        Dim Sujet As String
        Sujet = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(MyMail.Subject, "\", ""), "/", ""), ":", ""), "*", ""), "?", ""), "<", ""), ">", ""), "|", ""), ".", ""), """", ""), vbTab, ""), Chr(7), "")
        MyMail.SaveAs SavePath & Sujet & ".msg", OlSaveAsType.olMSG
    End Sub
    Kenavo !

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/09/2013, 18h20
  2. Réponses: 32
    Dernier message: 02/06/2008, 11h02
  3. Changer l'expéditeur de mail dans une commande linux
    Par TomyMak dans le forum Réseau
    Réponses: 6
    Dernier message: 15/03/2006, 14h05
  4. Créer un mail dans une application
    Par Cedced dans le forum Windows
    Réponses: 1
    Dernier message: 03/10/2005, 11h35

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