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 :

Enregistrer automatiquement un mail envoyé sur son disque dur


Sujet :

VBA Outlook

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Enregistrer automatiquement un mail envoyé sur son disque dur
    Bonjour à tous et toutes,

    Nous utilisions une macro sous outlook 2003 qui permettait d'enregistrer automatiquement des mails envoyés sur un disque dur (via une boite de dialogue).

    Lors de notre passage à Outllook 2013, la macro ne fonctionne plus, plus précisément elle fonctionne jusqu'au display du mail mais l'appel de la fonction "Enregistrer sous" ne se fait plus.

    Ci-dessous le code utilisé, si quelqu'un a une idée ?!

    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
    Dim WithEvents colSentItems As Items
     
    Private Sub Application_Startup()
    Dim NS As Outlook.NameSpace
    Set NS = Application.GetNamespace("MAPI")
    Set colSentItems = NS.GetDefaultFolder(olFolderSentMail).Items
    Set NS = Nothing
    End Sub
    Private Sub colSentItems_ItemAdd(ByVal Item As Object)
    'By Oliv ' janv 2008 pour Outlook 2003 feat. Sue Mosher 'http://www.outlookcode.com/codedetail.aspx?id=456
        If Item.Class = olMail Then
            Enrg = MsgBox(Item.Subject & vbCr & "Voulez-vous enregistrer ce mail sur le serveur?", vbYesNo)
            If Enrg = vbYes Then
                Item.Display
                Dim objInsp
                Dim colCB
                Dim objCBB
                On Error Resume Next
                Set objInsp = Item.GetInspector
                Set colCB = objInsp.CommandBars
                Set objCBB = colCB.FindControl(, 748) 'enregistrer  sous
            If Not objCBB Is Nothing Then
                objCBB.Execute
            End If
            ElseIf Enrg = vbNo Then
                Item.Close olDiscard
            End If
        End If
    End Sub

  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 essaye avec cela à la place des lignes 20 à 24

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
        objInsp.CommandBars.ExecuteMso ("FileSaveAs")

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci Oliv-,
    cela fonctionne avec ta correction

    je reposte le code en entier avec la modification si jamais un jour quelqu'un en a besoin.

    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
    Dim WithEvents colSentItems As Items
     
    Private Sub Application_Startup()
    Dim NS As Outlook.NameSpace
    Set NS = Application.GetNamespace("MAPI")
    Set colSentItems = NS.GetDefaultFolder(olFolderSentMail).Items
    Set NS = Nothing
    End Sub
    Private Sub colSentItems_ItemAdd(ByVal Item As Object)
    'Attapted By Oliv ' juil 2014 pour Outlook 2013 From an original idea of Oliv janv 2008 pour Outlook 2003 feat. Sue Mosher 'http://www.outlookcode.com/codedetail.aspx?id=456
        If Item.Class = olMail Then
            Enrg = MsgBox(Item.Subject & vbCr & "Voulez-vous enregistrer ce mail sur le serveur?", vbYesNo)
            If Enrg = vbYes Then
                Item.Display
                Dim objInsp
                Dim colCB
                Dim objCBB
                On Error Resume Next
                Set objInsp = Item.GetInspector
                objInsp.CommandBars.ExecuteMso ("FileSaveAs")
            ElseIf Enrg = vbNo Then
                Item.Close olDiscard
            End If
        End If
    End Sub

Discussions similaires

  1. Copier le dernier item listbox sur son disque dur
    Par CLeBeR dans le forum VB.NET
    Réponses: 1
    Dernier message: 31/03/2013, 21h20
  2. Stocker une hashmap et une liste d'hashmap sur son disque dur
    Par vivelapsp dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 19/11/2011, 20h10
  3. installer Backtrack 3 sur son disque dur
    Par cdevl32 dans le forum Autres
    Réponses: 0
    Dernier message: 04/06/2010, 20h48
  4. Faire une copie automatique des mails envoyés sur un autre PC
    Par shubakas dans le forum Outlook Express / Windows Mail
    Réponses: 0
    Dernier message: 22/06/2009, 18h21
  5. Réponses: 4
    Dernier message: 13/07/2006, 10h33

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