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
    Points : 2
    Points
    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 sénior 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
    Points : 32 866
    Points
    32 866
    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.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 103
    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 103
    Points : 9 908
    Points
    9 908
    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
    Points : 2
    Points
    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