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 :

Sauvegarder les pj d'un mails lorsqu'on l'ouvre et qu'il provient d'un expéditeur défini


Sujet :

VBA Outlook

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 129
    Points : 78
    Points
    78
    Par défaut Sauvegarder les pj d'un mails lorsqu'on l'ouvre et qu'il provient d'un expéditeur défini
    Bonjour

    Je pense que les réponses à mes questions existent dans la FAQ mais visiblement le serveur à un problème je tombe systématiquement que la page 403 Forbidden!

    Je voudrais afin sauvegarder les pj d'un email mais seulement si le mail provient d'une adresse mail spécifique et connue, ouvrir un userform.

    Ce userfom me proposerait alors:

    soit de sauvegarder la pj dans un répertoire donné(on écrase si la pj est deja existante dans le répertoire)

    soit de ne pas sauvegarder cette pj

    et

    de supprimer ou de sauvegarder le mail aprés sauvegarde ou pas de la pj.

    pour le moment j'ai trouvé sur le forum comment déclencher la macro a l'ouverture du mail mais après je coince...



    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
    Public WithEvents AM As MailItem 'Attention cette ligne doit être avant les sub!
     
     
    Private Sub Application_ItemLoad(ByVal Item As Object)
     
    'se déclenche à la selection du mail
     
    ' Vérifis que le formulaire est bien celui d'un MAIL
     
        If Item.Class <> olMail Then Exit Sub
     
        Set AM = Item
     
    End Sub
     
     
     Private Sub AM_Open(Cancel As Boolean)
     
    ' se déclenche à l'ouverture du Mail mais également lors de la création d'un mail..
     
        If AM.SenderName = "TOTO" Then 'en attendant de pouvoir récupérer l'adresse mail...
     
            MsgBox "Ouverture de " & AM.Subject
     
     
     
        End If
     
    End Sub


    Bonne journée à tous et merci.

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    retraite
    Inscrit en
    Février 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : retraite

    Informations forums :
    Inscription : Février 2020
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Une solution (peut-être) pour Outlook 2010 et Excel 2010
    Bonjour,
    Je recupere des donnees venant une installation PV via courriel (qd je ne suis pas sur suite).
    Apres quelques efforts, j'ai fait deux procedures pour lire les courriels et afficher/ranger les attachements (un texte zip) dans un dossier utilisateur sous Win7, l'une dans l'application OutLook (avec une règle outlook et un sub lancé 'a la main' par l'opérateur ); l'autre dans une application complete sous Vba Excel.
    Il semble que les deux modèles-objet aient quelques subtiles différences, qui expliquent une difference de programmation mais les deux solutions sont operationnelles. Je n'ai pas developpé le contexte mais assez facile à comprendre.

    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
    38
    OutLook (juste pour voir) :
     
    Sub test()
     
    Dim myOlApp As New Outlook.Application
     
    DisplayAccountInformation myOlApp
     
    End Sub
     
    Private Sub DisplayAccountInformation(ByVal Application As Outlook.Application)
     
    Dim myFolder As folder
    Dim MsgTxt As String
    Dim myItem As Outlook.MailItem
     
    Set myFolder = Application.ActiveExplorer.Session.folders("Donnees_Courriel")
    For Each myItem In myFolder.Items
        MsgTxt = myItem.SenderName & " to " & myItem.To & vbCrLf & myItem.Subject
        If Not myItem.Attachments.Count = 0 Then
            For y = 1 To myItem.Attachments.Count
                 Set pceJointe = myItem.Attachments(y)
                 'pceJointe.SaveAsFile "C:\" & x & "_" & pceJointe
                 If pceJointe.FileName Like "*xml" Then
                    x = x + 1
                    pceJointe.SaveAsFile "C:\MonDossier\" & x & "_" & pceJointe.FileName
                 Else
                    If pceJointe.FileName Like "*txt" Then
                        MsgTxt = MsgTxt & vbCrLf & " --> " & pceJointe.FileName
                    End If
                 End If
                Set pceJointe = Nothing
            Next y
        End If
        MsgBox MsgTxt
    Next
    Exit Sub
    End sub
    Excel (plus 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    ' ---
    ' Extraction de pieces jointes de courriel repondant a un critere de selection sur l'objet
    ' ---
    '
    Sub SaveAttachments( _
        ByVal strTargetFolder As String, _
        ByVal pDate As String, _
        Optional ByVal blnIncludeSubFolders As Boolean = False)
     
    Dim MsgTxt As String
    ' Dim myFolder As Folder
    Dim olApp As Outlook.Application
    Dim myItem As Outlook.MailItem
    Dim myFolder As Outlook.Folder
    Dim olExplorer As Outlook.Explorer
    Dim xTrouve As Boolean
    xTrouve = False
     
    Set olApp = New Outlook.Application
    Set olExplorer = olApp.Explorers(1)
    Set olsession = olExplorer.Session
    'Set myFolder = Application.ActiveExplorer.Session.Folders("Donnees_Courriel")
    Set myFolder = olExplorer.Session.Folders("Donnees_Courriel")
     
    For Each myItem In myFolder.Items
        MsgTxt = myItem.SenderName & " to " & myItem.To & vbCrLf & myItem.Subject
        If myItem.Subject Like "*" & pDate Then
            If Not myItem.Attachments.Count = 0 Then
                For y = 1 To myItem.Attachments.Count
                     Set pceJointe = myItem.Attachments(y)
                     If pceJointe.Filename Like "*xml" Then
                        x = x + 1
                        pceJointe.SaveAsFile strTargetFolder & x & "_" & pceJointe.Filename
                     Else
                        If pceJointe.Filename Like "*.zip.txt" Then
                            MsgTxt = MsgTxt & vbCrLf & " --> " & pceJointe.Filename
                            pceJointe.SaveAsFile strTargetFolder & pceJointe.Filename
                            xTrouve = True
                        End If
                     End If
                    Set pceJointe = Nothing
                Next y
            End If
        End If
    Next
     
    If Not xTrouve Then
        MsgTxt = MsgTxt & vbCrLf & "Pas d'attachement '.txt' joint"
    End If
    MsgBox MsgTxt, , "lecture des attachements du courriel"
     
    End Sub
    Bonne utilisation
    Cordialement
    JFG

Discussions similaires

  1. Sauvegarder les mails envoyés par CDO
    Par Thierry_94 dans le forum Général VBA
    Réponses: 2
    Dernier message: 06/10/2009, 20h01
  2. Réponses: 20
    Dernier message: 23/03/2006, 17h21
  3. [Mail] récupérer les code erreurs de mail()
    Par Djakisback dans le forum Langage
    Réponses: 2
    Dernier message: 22/03/2006, 18h19
  4. Sauvegarder les données dans un fichier CSV
    Par beb30 dans le forum MFC
    Réponses: 5
    Dernier message: 08/03/2006, 14h06
  5. Comment sauvegarder les messages de Outlook express ?
    Par tarbala dans le forum Outlook Express / Windows Mail
    Réponses: 5
    Dernier message: 06/08/2004, 18h31

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