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

Excel Discussion :

extraire corps de mail dans excel [XL-2010]


Sujet :

Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2015
    Messages : 2
    Par défaut extraire corps de mail dans excel
    bonjour,

    débutant en vba , je cherche à faire une macro qui ira chercher les informations contenus dans des mails, tous situé dans un même dossier.
    Chaque ligne de caractère compris entre ":" et le retour chariot du mail N°1 doit se retrouver dans la cellule A1 puis B1....etc
    chaque ligne du mail N°2 doit se retrouver dans la cellule A2 puis B2...etc

    Voila le code que j'ai fait mais ça ne marche pas tout à fait puisque je me retrouve avec un tableau excel remplis en "escalier"...:

    ----------------------------------------------------------------------------------------------------------------------
    Sub copie()


    Set olApp = CreateObject("Outlook.Application")
    Set olns = olApp.GetNamespace("MAPI")
    Set olxFolder = olns.GetDefaultFolder(6).Folders("web") ' olns.GetDefaultFolder(olFolderInbox).Folders("web")

    On Error Resume Next

    'verif chaque ligne du mail
    For Each i In olxFolder.Items
    'on commence à la ligne 9 du mail
    For x = 9 To UBound(Split(i.body, vbCrLf))
    ligne = ligne + 1
    n = n + 1
    Cells(n, ligne) = Split(i.body, vbCrLf)(x)
    Next x


    Next


    End Sub
    ------------------------------------------------------------------------------------

    voila,

    si quelqu'un peut m'aider

    Merci d'avance

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    En phase de développement, "On Error Resume Next" est à éviter absolument : ce n'est pas en masquant les erreurs qu'on peut les corriger.

    Pour le reste, n'ayant jamais manipulé d'objet Outlook, je ne peux pas t'aider.

  3. #3
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    pour chaque mail, on doit se décaler d'une ligne : il faut donc modifier la ligne quand on change de mail
    pour chaque ligne du mail, on doit se décaler d'une colonne : il faut donc réinitialiser la colonne à chaque mail, et incrémenter la colonne pour chaque ligne du mail

    Regarde si c'est mieux ainsi

    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
    Sub copie()
     
    Set olApp = CreateObject("Outlook.Application")
    Set olns = olApp.GetNamespace("MAPI")
    Set olxFolder = olns.GetDefaultFolder(6).Folders("web")
     
    For Each i In olxFolder.Items
       ligne = ligne + 1
       n = 0
     
       For x = 9 To UBound(Split(i.body, vbCrLf))
            n = n + 1
           Cells(n, ligne) = Split(i.body, vbCrLf)(x)
       Next x
    Next
     
    End Sub

  4. #4
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2015
    Messages : 2
    Par défaut
    bonjour,

    merci beaucoup joe.levrai.

    je m'étais mal exprimé mais du coup votre solution m'a mis sur la bonne voie et le tableau excel se remplit comme il faut:
    chaque info identique de chaque mail se met dans une cellule et ainsi de suite donc dans la colonne 1 j'ai toutes les infos "nom", dans la colonne 2 toutes les infos "identifiant".....
    ---------------------------------------------------------------------------------------------------------------------------------
    Sub copie()


    Set olApp = CreateObject("Outlook.Application")
    Set olns = olApp.GetNamespace("MAPI")
    Set olxFolder = olns.GetDefaultFolder(6).Folders("web") ' olns.GetDefaultFolder(olFolderInbox).Folders("web")

    n = 1

    'verif chaque ligne du mail
    For Each i In olxFolder.Items
    ligne = 0
    n = n + 1
    'on commence à la ligne 9 du mail
    For x = 3 To 23
    ligne = ligne + 1
    Cells(n, ligne) = Split(i.body, vbCrLf)(x)
    Next x


    Next


    End Sub
    -------------------------------------------------------------------------

    Merci beaucoup.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 26/03/2014, 16h07
  2. [OL-2010] Transférer un corps de mail dans un fichier excel
    Par shakapouet dans le forum VBA Outlook
    Réponses: 14
    Dernier message: 22/04/2013, 14h07
  3. [OL-2010] Extraire corps de mail
    Par hawk91 dans le forum Outlook
    Réponses: 1
    Dernier message: 07/06/2012, 17h02
  4. [OL-2007] Extraction de contenu d'un mail dans Excel sur un serveur HP
    Par superstarz dans le forum VBA Outlook
    Réponses: 0
    Dernier message: 08/09/2010, 16h41
  5. Réponses: 1
    Dernier message: 04/04/2008, 22h51

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