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 :

Sauvegarde Mail sur disque [OL-365]


Sujet :

VBA Outlook

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Currieux
    Inscrit en
    mai 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Currieux

    Informations forums :
    Inscription : mai 2020
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Sauvegarde Mail sur disque
    Bonjour,

    Accompagné d'exemples issus du forum j'ai écrit cette procédure vba dans Outlook 365.
    Pour l'instant celle-ci est lancée par alt & F8 : le mail sélectionné est enregistre dans un dossier spécifique.

    Celle-ci ne fonctionne que si le mail sélectionné à été affiché dans une fenêtre complémentaire de Outlook après un double click sur un mail !

    Par contre elle ne fonctionne pas lorsque le mail sélectionné (simple click) s'affiche dans la même fenêtre Outlook principale.
    En effet dans ce cas :
    le TypeName(myItem) = "Nothing" alors le test du type est égale à Nothing et la procédure ne fonctionne pas.

    En d'autre terme pour quelle raison le typename=nothing dans un cas et pas dans l'autre selon l'affichage du mail sélectionné !!!

    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
     
    Option Explicit
    Public Sub SaveMail()
    '#############################################################################
    'declaration
    Dim myItem As Outlook.Inspector
    Dim objItem As MailItem
    Dim strname As String
    Dim strPrompt As String
    Dim pth As String
    Dim d As String
    '#############################################################################
    'initialisation
    'objet
    Set myItem = Application.ActiveInspector
    'string
    strPrompt = "Are you sure you want to save the item ?"
    pth = "C:\Users\Laurent\OneDrive\SaveItemMail\"
    strname = "Mail du "
    '#############################################################################
    'procedure
     If Not TypeName(myItem) = "Nothing" Then
        Set objItem = myItem.CurrentItem
        d = Format(objItem.ReceivedTime, "yyyymmdd-hhmmss")
        strname = strname & d
        d = Format(Now, "yyyymmdd-hhmmss")
        strname = strname & " save " & d & ".msg"
        If MsgBox(strPrompt, vbYesNo + vbQuestion) = vbYes Then objItem.SaveAs pth & strname
     Else
        MsgBox "There is no current active inspector."
     End If
    End Sub
    Pourriez-vous me dire pour qu'elle raison svp ?
    Avez vous rencontré ce problème ?
    Merci par avance

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Currieux
    Inscrit en
    mai 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Currieux

    Informations forums :
    Inscription : mai 2020
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonsoir,
    N'ayant pas eu de réponse a ma question initiale, j'ai contourné le problème de la façon suivante :

    Je n'utilise plus l'objet Application.ActiveInspector mais Application.ActiveWindow
    et maintenant cela fonctionne.
    Une fois qu'un Mail est sélectionné, je peux l'enregistrer dans un dossier spécifique, avec un nom déterminé et une extention ".msg"
    Ici, la date de réception du mail et la date de sauvegarde.

    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
    Option Explicit
    Public Sub SaveMail()
    '#############################################################################
    'declaration
    Dim myWindowItem As Object
    Dim myMailItem As MailItem
    Dim strname As String
    Dim strPrompt As String
    Dim pth As String
    Dim d As String
    '#############################################################################
    'initialisation
    'objet
    Set myWindowItem = Application.ActiveWindow
    'string
    strPrompt = "Voulez-vous sauvegarder ce mail ?"
    pth = "C:\Users\Laurent\OneDrive\SaveItemMail\"
    strname = "Mail du "
    '#############################################################################
    'procedure
     
        Set myMailItem = myWindowItem.Selection(1)
     If TypeName(myMailItem) = "MailItem" Then
        d = Format(myMailItem.ReceivedTime, "yyyymmdd-hhmmss")
        strname = strname & d
        d = Format(Now, "yyyymmdd-hhmmss")
        strname = strname & " save " & d & ".msg"
        If MsgBox(strPrompt, vbYesNo + vbQuestion) = vbYes Then myMailItem.SaveAs pth & strname
        MsgBox "Mail sauvegardé."
     Else
        MsgBox "Pas de mail selectionné."
     End If
    End Sub
    On peut lancer la procédure, soit avec alt & f8, soit en affectant la procédure a un bouton supplémentaire dans la barre de menu.
    On peut ensuite imaginer une boite de dialogue avec un choix multiple de destination ......

    Cela peut servir à quelqu'un.....

    Bonne soirée

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 28/05/2020, 19h39
  2. Enregistrement mail sur disque dur ou serveur.
    Par et1000lio dans le forum Outlook
    Réponses: 3
    Dernier message: 06/11/2017, 16h12
  3. [GDI] Sauvegarder image sur disque
    Par Blo0d4x3 dans le forum Visual C++
    Réponses: 7
    Dernier message: 26/05/2015, 16h47
  4. Sauvegarder PDF sur disque dur
    Par jotheouf dans le forum ActionScript 3
    Réponses: 3
    Dernier message: 08/10/2010, 19h15
  5. [BufferedImage] Redimensionner / Sauvegarder image sur disque
    Par nicolas.pied dans le forum Multimédia
    Réponses: 1
    Dernier message: 17/04/2007, 02h54

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