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

Macros et VBA Excel Discussion :

Explorateur - Nom de fichier .msg - Objet du mail [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut Explorateur - Nom de fichier .msg - Objet du mail
    Bonjour, Forum,

    J'ai un répertoire qui contient plusieurs mails enregistrés au format .msg.

    Est-il possible dé récupérer une partie du nom (ça, c'est facile avec une boucle et un split) et mettre cette partie dans l'objet du mail ?

    Si vous avez une idée, je suis preneur.

  2. #2
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    J'approche

    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
    Sub bla_OK()
    Dim objOL As Object
    Dim Msg As Object
    Set objOL = CreateObject("Outlook.Application")
    inPath = "C:\Tests"
    thisFile = Dir(inPath & "\*.msg")
    'Set Msg = objOL.CreateItemFromTemplate(thisFile)
    Set Msg = objOL.Session.OpenSharedItem(inPath & "\" & thisFile)
    ' now use msg to get at the email parts
    MsgBox Msg.Subject
    Msg.Subject = "Coucou"
    Msg.Save
    Set objOL = Nothing
    Set Msg = Nothing
    End Sub

  3. #3
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Voici ce que j'ai fait et c'est vraiment pas très propre mais cela fonctionne.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub appel()
        MYPATH_IS = "I:\Bruxelles-Brussel\Maildossiers\__Tests"
        RecupTypeImage (MYPATH_IS)
    End Sub
    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
    Sub RecupTypeImage(rPath As String)
    Dim oFSO As Scripting.FileSystemObject
    Dim rFld As Scripting.Folder
    Dim cFld As Scripting.Folder
    Dim oFl As File
    Dim objOL As Object
    Dim Msg As Object
    Dim line As Integer
     
    Set oFSO = New Scripting.FileSystemObject
    Set rFld = oFSO.GetFolder(MYPATH_IS)
     
    For Each cFld In rFld.SubFolders
        RecupTypeImage (cFld.Path)
    Next cFld
     
    For Each oFl In rFld.Files
        XX = oFl.Name
        Debug.Print XX
        If Right(oFl.Name, 3) = "msg" Then
            bla_OK (XX)
        Else
            Kill MYPATH_IS & "\" & XX
        End If
    Next oFl
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub bla_OK(FileChoose)
    Dim objOL As Object
    Dim Msg As Object
     
    Set objOL = CreateObject("Outlook.Application")
    inPath = MYPATH_IS
    thisFile = Dir(inPath & "\" & FileChoose) 
    Set Msg = objOL.Session.OpenSharedItem(inPath & "\" & thisFile)
    Msg.Subject = Mid(thisFile, 1, 7)
    Msg.Save
    Set objOL = Nothing
    Set Msg = Nothing
    End Sub

  4. #4
    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
    Bonsoir,
    C'est pas mal, comme cela ce sera mieux

    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
     
     
    Dim objOL
    Dim oFSO As Scripting.FileSystemObject
     
     
    Sub appel()
        MYPATH_IS = "I:\Bruxelles-Brussel\Maildossiers\__Tests"
     
     Set oFSO = New Scripting.FileSystemObject
    Set objOL = CreateObject("Outlook.Application")
     
        RecupTypeImage (MYPATH_IS)
    End Sub
     
     
     
    Sub RecupTypeImage(rPath As String)
     
    Dim rFld As Scripting.Folder
    Dim cFld As Scripting.Folder
    Dim oFl As File
    Dim objOL As Object
    Dim Msg As Object
    Dim line As Integer
     
    Set rFld = oFSO.GetFolder(MYPATH_IS)
     
    For Each cFld In rFld.SubFolders
        RecupTypeImage (cFld.Path)
    Next cFld
     
    For Each oFl In rFld.Files
        XX = oFl.Name
        Debug.Print XX
        If Right(oFl.Name, 3) = "msg" Then
            bla_OK (XX)
        Else
            Kill MYPATH_IS & "\" & XX
        End If
    Next oFl
    End Sub
     
     
    Sub bla_OK(FileChoose)
    Dim Msg As Object
     
    inPath = MYPATH_IS
    thisFile = Dir(inPath & "\" & FileChoose) 
    Set Msg = objOL.Session.OpenSharedItem(inPath & "\" & thisFile)
    Msg.Subject = Mid(thisFile, 1, 7)
    Msg.Save
    Set Msg = Nothing
    End Sub
    tu pourrais envoyer directement à bla_ok l'objet oFl

  5. #5
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Merci, Oliv- , pour cette proposition d'amélioration ! C'est super cool.
    Effectivement, maintenant que le code fonctionne, il faudra que je le diminue et qu'il se résume au minimum pour qu'il soit aussi efficace à la (re)lecture.

  6. #6
    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
    C'est surtout une question de performance et de mémoire

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

Discussions similaires

  1. [OL-2010] Lire Nom du Fichier - Remplacer Objet - Explorateur
    Par QuestVba dans le forum VBA Outlook
    Réponses: 1
    Dernier message: 01/03/2018, 18h11
  2. javax.mail.Part.getFileName() et nom de fichier en langue arabe
    Par elhaj_hassen dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 15/01/2012, 16h48
  3. Comment associer un nom de fichier à un objet Image ?
    Par andrianiaina dans le forum Développement Mobile en Java
    Réponses: 0
    Dernier message: 16/06/2011, 15h25
  4. Capture nom de fichier pour envoi de mail avec PJ
    Par Graineur dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 15/03/2011, 13h45
  5. [VB]Identifier le nom raccourci d'un fichier joint a un mail
    Par developpeurvb dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 07/02/2006, 13h50

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