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 Access Discussion :

Comment extraire le corps d'un mail (outlook) et l'enregistrer dans un fichier texte (ou word) en VBA Access?


Sujet :

VBA Access

  1. #1
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 175
    Points : 223
    Points
    223
    Par défaut Comment extraire le corps d'un mail (outlook) et l'enregistrer dans un fichier texte (ou word) en VBA Access?
    Bonjour à tous,

    Alors tout comme l'indique le nom de la discussion, je cherche à extraire le corps de texte d'un mail (cad seulement le message), l'enregistrer dans un fichier word (ou texte) et cela pour tous les messages de ma boite mail outlook.

    J'ai déjà une base sur laquelle travailler :

    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
     
    Sub ExtractMessage()
     
    Dim OLapp As Outlook.Application
    Dim OLspace As Outlook.Namespace
    Dim OLinbox As Outlook.MAPIFolder
     
    Set OLapp = CreateObject("Outlook.application")
    Set OLspace = OLapp.GetNamespace("MAPI")
    Set OLinbox = OLspace.GetDefaultFolder(olFolderInbox)
     
    MsgBox OLinbox.Items(1).Body
     
    Set OLapp = Nothing
    Set OLspace = Nothing
    Set OLinbox = Nothing
     
    End Sub
    Mais, il faudrait que je boucle sur tous les messages de mon Inbox au lieu d'afficher qu'un seul message et que chaque message soit enregistré dans un fichier texte ou word différent.

    Merci d'avance pour votre aide.

    Cordialement,

    Nitromard
    Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?

  2. #2
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 175
    Points : 223
    Points
    223
    Par défaut
    Bon j'ai trouvé comment faire pour boucler sur les mails de l'inbox, le problème revient donc à enregistrer chaque message dans un fichier word ou texte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For Each Item In OLinbox.Items
        MsgBox Item.Body
    Next Item
    Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?

  3. #3
    Membre habitué
    Homme Profil pro
    Activités informatiques diverses
    Inscrit en
    Février 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Activités informatiques diverses
    Secteur : Service public

    Informations forums :
    Inscription : Février 2007
    Messages : 153
    Points : 188
    Points
    188
    Par défaut
    Bonjour.
    Pourquoi ne pas ouvrir le fichier texte avant le début de la boucle, ajouter le corps de message dans le fichier puis fermer le fichier après la fin de la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      Dim NoFile As Integer
     
      NoFile = FreeFile
      Open CurrentProject.Path & "\" & NomFichier For Append As #NoFile
     
      For Each Item In OLinbox.Items
        Print #NoFile, Item.Body
      Next Item
     
      Close #NoFile
    Cordialement, Dominique

  4. #4
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 175
    Points : 223
    Points
    223
    Par défaut
    C'est-à-dire?
    Je ne comprends pas très bien ^^, j'ai donc ce code :

    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
    Sub ExtractMessage()
     
    Dim OLapp As Outlook.Application
    Dim OLspace As Outlook.Namespace
    Dim OLinbox As Outlook.MAPIFolder
    Dim FileName As String
    Dim Item As Object
    Dim NoFile As Integer
     
    Set OLapp = CreateObject("Outlook.application")
    Set OLspace = OLapp.GetNamespace("MAPI")
    Set OLinbox = OLspace.GetDefaultFolder(olFolderInbox)
     
    NoFile = FreeFile
    Open CurrentProject.Path & "\" & NomFichier For Append As #NoFile
     
    For Each Item In OLinbox.Items
        Print #NoFile, Item.Body
    Next Item
     
    Close #NoFile
     
    Set OLapp = Nothing
    Set OLspace = Nothing
    Set OLinbox = Nothing
     
    End Sub
    Mais il me manque le dossier de destination et le nom du fichier nom?
    Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?

  5. #5
    Membre habitué
    Homme Profil pro
    Activités informatiques diverses
    Inscrit en
    Février 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Activités informatiques diverses
    Secteur : Service public

    Informations forums :
    Inscription : Février 2007
    Messages : 153
    Points : 188
    Points
    188
    Par défaut
    Bonjour.
    Il faut bien sur initialiser la variable NomFichier. Dans ton code, elle s'appelle d'ailleurs FileName
    Par exemple FileName="Messages.txt"
    Dans l'exemple fourni, la ligne 15 permet de gérer ce fichier dans le répertoire courant, celui où a été lancé l'application.
    Cordialement, Dominique.

  6. #6
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 175
    Points : 223
    Points
    223
    Par défaut
    Super, ça fonctionne ^^!

    Merci encore !
    Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 24/08/2023, 14h49
  2. [AC-2007] Récupérer des informations dans le corps d'un mail Outlook
    Par fragglerick dans le forum VBA Access
    Réponses: 9
    Dernier message: 07/03/2013, 23h19
  3. Réponses: 0
    Dernier message: 25/07/2010, 17h22
  4. [OL-2003] comment extraire des informations depuis des mails en HTML
    Par boulhous dans le forum Outlook
    Réponses: 0
    Dernier message: 16/02/2010, 16h47
  5. [VBA] Insérer Tableau Excel dans Corps d'un Mail (Outlook)
    Par savior dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/10/2006, 11h03

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