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 :

Choisir le répertoire d'enregistrement d'un mail


Sujet :

VBA Outlook

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Choisir le répertoire d'enregistrement d'un mail
    Bonjour,

    Je voudrais écrire une macro pour enregistrer un mail sur mon ordinateur avec un nom personnalisé.

    J'ai réussi à personnaliser le nom du fichier comme je le souhaitait (JJMMAAAA_HHMM_EXP_OBJ.msg) et à l'enregistrer dans un dossier qui est défini par l'utilisateur avec une boîte de dialogue et qui a une valeur par défaut avec le code suivant :

    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
    53
    54
    55
    56
    57
    58
    59
    Option Explicit
    Public Sub SaveMessageAsMsg()
      Dim oMail As Outlook.MailItem
      Dim objItem As Object
      Dim sPath As String
      Dim dtDate As Date
      Dim sName As String
      Dim sSenderEmailAddress As String
      Dim res As Integer
      Dim xlDialogSaveAs
     
      Dim Message, Title, Default, MyValue
                Message = "Où voulez-vous enregistrer la sélection ?"
                Title = "Sélection du répertoire de sauvegarde "
                Default = "C:\Users\packt\Desktop\CopieMail\"
                sPath = InputBox(Message, Title, Default)
     
       For Each objItem In ActiveExplorer.Selection
            If objItem.MessageClass = "IPM.Note" Then
                Set oMail = objItem
     
                sName = oMail.Subject
                sName = StrConv(sName, vbProperCase)
                ReplaceCharsForFileName sName, ""
     
                dtDate = oMail.ReceivedTime
     
                sSenderEmailAddress = oMail.SenderName
                res = InStr(1, sSenderEmailAddress, ",")
                If res = 0 Then
                    sSenderEmailAddress = Left(sSenderEmailAddress, 10)
                Else
                    sSenderEmailAddress = Left(sSenderEmailAddress, InStr(sSenderEmailAddress, ",") + 2)
                End If
                ReplaceCharsForFileName sSenderEmailAddress, ""
     
                sName = Format(dtDate, "yyyymmdd", vbUseSystemDayOfWeek, vbUseSystem) & "_" & Format(dtDate, "hhnn", _
                    vbUseSystemDayOfWeek, vbUseSystem) & "_" & sSenderEmailAddress & "_" & sName & ".msg"
     
     
                oMail.SaveAs sPath & sName, olMSG
            End If
       Next
    End Sub
     
    Private Sub ReplaceCharsForFileName(sName As String, sChr As String)
      sName = Replace(sName, "'", sChr)
      sName = Replace(sName, "*", sChr)
      sName = Replace(sName, "/", sChr)
      sName = Replace(sName, "\", sChr)
      sName = Replace(sName, ":", sChr)
      sName = Replace(sName, "?", sChr)
      sName = Replace(sName, Chr(34), sChr)
      sName = Replace(sName, "<", sChr)
      sName = Replace(sName, ">", sChr)
      sName = Replace(sName, "|", sChr)
      sName = Replace(sName, " ", sChr)
      sName = Replace(sName, ",", sChr)
    End Sub
    Ce que je voudrais savoir maintenant c'est comment rendre le choix du dossier un peu plus intuitif à la manière de l'option "Enregistrer Sous" en parcourant les dossier.
    J'ai vu qu'il existe plusieur solution mais je débute sur VBA et c'est ma première macro. Je ne sais pas encore comment tout cela fonctionne et comment organiser mes fichiers et à chaque fois que je teste une solution je me retrouve des erreurs que je n'arrive pas à corriger.

    Existe-t-il un moyen simple de faire ce que voudrais ?
    Merci d'avance pour votre aide !

  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

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Oliv- Voir le message
    Le lien ne fonctionne pas pour moi...

Discussions similaires

  1. [AC-2010] Choisir le répertoire pour enregistrer un état en pdf
    Par othmanepf dans le forum IHM
    Réponses: 2
    Dernier message: 29/09/2017, 13h34
  2. Réponses: 10
    Dernier message: 27/06/2014, 10h31
  3. Réponses: 6
    Dernier message: 11/05/2006, 18h33
  4. Réponses: 7
    Dernier message: 15/08/2005, 18h13
  5. [FileDialog] choisir un répertoire
    Par phoebe dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 16/07/2004, 10h02

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