Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1444 connectés 

  FORUM HardWare.fr
  Windows & Software
  Logiciels

  Récupérer les adresses mail dans la boite de réception

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupérer les adresses mail dans la boite de réception

n°2837551
Mona Soyoc
Acrobate ridé
Posté le 26-01-2009 à 14:38:21  profilanswer
 

Bonjour,
 
J'ai un fichier outlook *.pst, qui contient des messages. Aucune gestion des contacts, donc les adresses ne sont présentes que dans les emails. Je souhaite récupérer les adresses, soit dans la gestion des contacts d'Outlook, soit en txt, csv, xls ou que sais-je. Je n'ai pas envie de me taper 1000 mails un par un, pour les ajouter à mes contacts :/
 
Savez-vous si c'est possible ?
 
D'avance merci ;)

mood
Publicité
Posté le 26-01-2009 à 14:38:21  profilanswer
 

n°2837747
SuppotDeSa​Tante
Aka dje69r
Posté le 26-01-2009 à 22:08:20  profilanswer
 

Bonsoir
 
Quelle version d'Outlook ?
Avec Excel, Access une petite routine en vba devrait permettre d'acceder a chaque mail, d'en recuperer l'adresse de l'expediteur, de regarder si on l'a deja, cas echeant l'ecrire dans Excel et/ou Access.
 
Cordialement


---------------
Soyez malin, louez entre voisins !
n°2837752
Mona Soyoc
Acrobate ridé
Posté le 26-01-2009 à 22:46:35  profilanswer
 

Hello,
 
merci de t'intéresser à mon triste sort ;)
 
Outlook 2003. Malheureusement, je n'ai pas le temps de me pencher sur une routine en vba, c'est pourquoi je me disais que, peut-être, quelqu'un avait déjà eu la même problématique que moi, et que, peut-être, il avait fait un bout de code quelque part pour régler ce problème, et que, peut-être, quelqu'un par ici savait ou dénicher ce bout de code :o
 
Ca en fait, des "peut-être", je sais :D
 
J'ai aussi la possibilité de faire glisser un par un les mails dans les "contacts" sous outlook express, puis de récupérer les contacts depuis express dans outlook, mais pareil, c'est fastidieux :/

n°2837753
SuppotDeSa​Tante
Aka dje69r
Posté le 26-01-2009 à 22:51:38  profilanswer
 

C'est pour quand ?
 
Tu me reponds "hier" tu sors ---)> [] :p


Message édité par SuppotDeSaTante le 26-01-2009 à 22:51:58

---------------
Soyez malin, louez entre voisins !
n°2837767
SuppotDeSa​Tante
Aka dje69r
Posté le 26-01-2009 à 23:38:29  profilanswer
 

Bon allez, me suis un peu motivé ;)
 
Avec tous tes 'peut etre' j'ai eu de la peine :p
 
Pis le temps, on l'a si on veut  :kaola:  
 
Treve de plaisanterie ...
 
La macro pour Excel :
 

Code :
  1. Function MonaSoyoc ()
  2. On Error Resume Next
  3. Application.ScreenUpdating = False
  4.     'Créé la référence à l'objet boite de recetion --> dossier boite de reception d'outlook
  5.     Dim myOlApp, myNameSpace, myFolder, myNewFolder
  6.     Set myOlApp = CreateObject("Outlook.Application" )
  7.     Set myNameSpace = myOlApp.GetNamespace("MAPI" )
  8.     Set myNewFolder = myNameSpace.GetDefaultFolder(6) 'olFolderInbox)
  9.    
  10.    
  11.     'Compte le nombre d'objet dans le dossier
  12.     Dim nbmails
  13.     nbmails = myNewFolder.Items.Count
  14.     If nbmails = 0 Then
  15.         Exit Function
  16.     End If
  17.    
  18.     'Pour chaque objet...
  19.     For X = 1 To nbmails
  20.        
  21.         With myNewFolder.Items(X)
  22.                      
  23.             'Récupère l'émetteur (obligé de faire comme si on y repondait pour le recup dans l'expediteur)
  24.             Dim MSG, AdrMailEmetteur, RechercheTiers, DateMail, Obj, Corps, CorpsHTML
  25.             Set MSG = myNewFolder.Items.Item(X).Reply
  26.             AdrMailEmetteur = MSG.Recipients(1).Address
  27.             Set MSG = Nothing
  28.            
  29.             'Récupère la date du mail
  30.             DateMail = .CreationTime
  31.             DateMail = Format(DateMail, "dd/mm/yyyy" )
  32.            
  33.             'Récupère l'objet
  34.             Obj = .Subject
  35.            
  36.             'Récupère le texte
  37.             Corps = .Body
  38.             CorpsHTML = .HTMLBody
  39.  
  40.            
  41.             'Récupère les pièces jointes
  42.             Dim myAttachments
  43.             Dim CptePJ, NomPieceJ, CheminPJ
  44.             Set myAttachments = .Attachments
  45.             CptePJ = myAttachments.Count '- 1
  46.             Dim I As Integer
  47.             For I = 1 To CptePJ
  48.                 If myAttachments.Item(I).Filename <> "header.htm" Then
  49.                     NomPieceJ = myAttachments.Item(I).Filename
  50.                 End If
  51.             Next I
  52.         End With
  53.        
  54.         'a toi de choisir ce que tu veux mettre, j'ai tout mis au cas ou ca serve à d'autres... suffit juste d'enlever le '
  55.         Cells(1, 1) = "Doublons"
  56.         Cells(1, 2) = "Mail"
  57.         Cells(X + 1, 2) = AdrMailEmetteur
  58.         'Cells(X, 3) = Obj
  59.         'Cells(X, 4) = DateMail
  60.         'Cells(X, 5) = Corps
  61.         'Cells(X, 6) = CorpsHTML
  62.         'Cells(X, 7) = NomPieceJ
  63.        
  64.     Next X
  65.    
  66. Application.ScreenUpdating = True
  67.     Set myOlApp = Nothing
  68.     Set myNameSpace = Nothing
  69.     Set myNewFolder = Nothing
  70. End Function


 
Il va te mettre en colonne B d'excel tous tes emetteurs des mails de la boite de reception.
 
Ensuite en colonne A tu colles cette formule : =SI(EQUIV(B:B;B:B;0)=LIGNE(); 1;0)
Il faut que tu ai cette formule sur toutes les cellules de la colonne A, tu tires la formule jusqu'en bas quoi...
 
Ensuite tu vas dans Données, Filtre, Automatique.
Tu pioches "1" dans le filtre de la colonne A nommée "Doublons"
 
Et tu auras tous tes mails sans les doublons  
 
;)
 
[edit] dsl pour la guirlande de lolilol et smiley a la c** mais c'est tard ... [/edit]

Message cité 1 fois
Message édité par SuppotDeSaTante le 26-01-2009 à 23:51:49

---------------
Soyez malin, louez entre voisins !
n°2837777
Mona Soyoc
Acrobate ridé
Posté le 27-01-2009 à 00:04:01  profilanswer
 

SuppotDeSaTante a écrit :

Bon allez, me suis un peu motivé ;)
 
Avec tous tes 'peut etre' j'ai eu de la peine :p
 
Pis le temps, on l'a si on veut  :kaola:  
 
Treve de plaisanterie ...
 
La macro pour Excel :
 

Code :
  1. Function MonaSoyoc ()
  2. On Error Resume Next
  3. Application.ScreenUpdating = False
  4.     'Créé la référence à l'objet boite de recetion --> dossier boite de reception d'outlook
  5.     Dim myOlApp, myNameSpace, myFolder, myNewFolder
  6.     Set myOlApp = CreateObject("Outlook.Application" )
  7.     Set myNameSpace = myOlApp.GetNamespace("MAPI" )
  8.     Set myNewFolder = myNameSpace.GetDefaultFolder(6) 'olFolderInbox)
  9.    
  10.    
  11.     'Compte le nombre d'objet dans le dossier
  12.     Dim nbmails
  13.     nbmails = myNewFolder.Items.Count
  14.     If nbmails = 0 Then
  15.         Exit Function
  16.     End If
  17.    
  18.     'Pour chaque objet...
  19.     For X = 1 To nbmails
  20.        
  21.         With myNewFolder.Items(X)
  22.                      
  23.             'Récupère l'émetteur (obligé de faire comme si on y repondait pour le recup dans l'expediteur)
  24.             Dim MSG, AdrMailEmetteur, RechercheTiers, DateMail, Obj, Corps, CorpsHTML
  25.             Set MSG = myNewFolder.Items.Item(X).Reply
  26.             AdrMailEmetteur = MSG.Recipients(1).Address
  27.             Set MSG = Nothing
  28.            
  29.             'Récupère la date du mail
  30.             DateMail = .CreationTime
  31.             DateMail = Format(DateMail, "dd/mm/yyyy" )
  32.            
  33.             'Récupère l'objet
  34.             Obj = .Subject
  35.            
  36.             'Récupère le texte
  37.             Corps = .Body
  38.             CorpsHTML = .HTMLBody
  39.  
  40.            
  41.             'Récupère les pièces jointes
  42.             Dim myAttachments
  43.             Dim CptePJ, NomPieceJ, CheminPJ
  44.             Set myAttachments = .Attachments
  45.             CptePJ = myAttachments.Count '- 1
  46.             Dim I As Integer
  47.             For I = 1 To CptePJ
  48.                 If myAttachments.Item(I).Filename <> "header.htm" Then
  49.                     NomPieceJ = myAttachments.Item(I).Filename
  50.                 End If
  51.             Next I
  52.         End With
  53.        
  54.         'a toi de choisir ce que tu veux mettre, j'ai tout mis au cas ou ca serve à d'autres... suffit juste d'enlever le '
  55.         Cells(1, 1) = "Doublons"
  56.         Cells(1, 2) = "Mail"
  57.         Cells(X + 1, 2) = AdrMailEmetteur
  58.         'Cells(X, 3) = Obj
  59.         'Cells(X, 4) = DateMail
  60.         'Cells(X, 5) = Corps
  61.         'Cells(X, 6) = CorpsHTML
  62.         'Cells(X, 7) = NomPieceJ
  63.        
  64.     Next X
  65.    
  66. Application.ScreenUpdating = True
  67.     Set myOlApp = Nothing
  68.     Set myNameSpace = Nothing
  69.     Set myNewFolder = Nothing
  70. End Function


 
Il va te mettre en colonne B d'excel tous tes emetteurs des mails de la boite de reception.
 
Ensuite en colonne A tu colles cette formule : =SI(EQUIV(B:B;B:B;0)=LIGNE(); 1;0)
Il faut que tu ai cette formule sur toutes les cellules de la colonne A, tu tires la formule jusqu'en bas quoi...
 
Ensuite tu vas dans Données, Filtre, Automatique.
Tu pioches "1" dans le filtre de la colonne A nommée "Doublons"
 
Et tu auras tous tes mails sans les doublons  
 
;)
 
[edit] dsl pour la guirlande de lolilol et smiley a la c** mais c'est tard ... [/edit]


 
Non mais tu sais que tu es terrible toi ? :D
J'essaye ça demain, et si ça marche, j'reviens ici me prosterner devant toi :o

n°2837778
SuppotDeSa​Tante
Aka dje69r
Posté le 27-01-2009 à 00:07:56  profilanswer
 

J'attends j'attends.... :d
 
Ce coup la, au lit pour ma part.
 
Tiens moi au jus ;)


---------------
Soyez malin, louez entre voisins !
n°2837779
Mona Soyoc
Acrobate ridé
Posté le 27-01-2009 à 00:11:37  profilanswer
 

J'y vais aussi. J'te dis ça demain :D
ciao bye ;)

n°2837808
Mona Soyoc
Acrobate ridé
Posté le 27-01-2009 à 09:43:50  profilanswer
 

                   dje69r
 
[:roi]
 

Spoiler :


Je n'ai qu'une parole :D

n°2837827
Mona Soyoc
Acrobate ridé
Posté le 27-01-2009 à 10:26:56  profilanswer
 

Au fait, j'aurais encore une toute petite question :o
j'ai commencé à bidouiller dans ton code, car en fait j'aimerais récupérer les adresses de la boite de réception, mais aussi des éléments envoyés, et des sous-dossiers de la boite de réception.
 
Tu crois que tu pourrais me donner une astuce pour attribuer les valeurs correctes à MyNewFolder ?
 

Citation :


Set myNewFolder = myNameSpace.GetDefaultFolder(6) 'olFolderInbox)


 
6 c'est la boite de réception, c'est bien ça ?
Il faut mettre quoi pour les autres, et pour obtenir la récursivité ?
 
Sans vouloir abuser [:meganne]

mood
Publicité
Posté le 27-01-2009 à 10:26:56  profilanswer
 

n°2837851
SuppotDeSa​Tante
Aka dje69r
Posté le 27-01-2009 à 12:21:22  profilanswer
 

LOL ! ! ! !
 
Alors pour un sous dossier de la boite de reception ca serait un truc comme ca :
Set UnderFolder = myNewFolder .Folders("Nom de ton dossier" )
 
Pour la boite d'envoi :
Set SendFolder = myNameSpace.GetDefaultFolder(olFolderOutbox)
A verifier avec olFolderSentMail j'ai pas verifier
 
Et par contre pour la boite d'envoi, il faut ta boucle dedans aussi ;)
Sauf que tu n'es pas obligé de simuler une reponse pour connaitre l'expediteur. La tu as juste besoin du destinataire.


Message édité par SuppotDeSaTante le 27-01-2009 à 13:02:33

---------------
Soyez malin, louez entre voisins !
n°2838055
Mona Soyoc
Acrobate ridé
Posté le 28-01-2009 à 08:34:02  profilanswer
 

Bon, ben je vais essayer ça :o
Le problème, c'est qu'en plus de ne pas connaître vba (mais bon, je connais Delphi), je ne connais pas le mode de pilotage d'outlook.
 
En tous cas, une fois au point, je le mettrai de côté, ton truc :D
 
Faut que j'arrive à parcourir TOUS les dossiers, récursivement, d'un .pst.
 
En fait, faudrait qu'on puisse ouvrir un .pst par un "parcourir", et qu'on nous propose la liste de tous les dossiers et sous dossiers qu'il contient. On pourrait alors sélectionner par case à cocher ceux qu'on veut parcourir, et paf, on ramène ça dans la colonne B.
 
YAKAFOKON \o/

n°2838397
SuppotDeSa​Tante
Aka dje69r
Posté le 29-01-2009 à 08:33:02  profilanswer
 

Automatiser l'import d'un pst, en vba, a partir d'Excel, je ne vois pas trop ca possible.
Il y aura forcement des manips manuelles.
Apres, rien ne t'empeche de passer des arguments a une fonction, au lieu de passer par un sub.
 
As tu reussi a recuperer les mails de la boite d'envoi ?


---------------
Soyez malin, louez entre voisins !
n°2838399
Mona Soyoc
Acrobate ridé
Posté le 29-01-2009 à 08:45:10  profilanswer
 

Je m'y mets ce matin, à la boite d'envoi :o
J'étais débordé hier :D
Oui, ça ne me dérange pas d'appeler 8 fois la même fonction avec le nom du sous-dossier en paramètre, par exemple.

n°2840039
Mona Soyoc
Acrobate ridé
Posté le 05-02-2009 à 17:19:17  profilanswer
 

Désolé, la tête dans le guidon en ce moment :o
Donc c'est bon pour les éléments envoyés et pour la boite de réception, j'ai bien mis au chaud ton code, je pense qu'il serait intéressant de pouvoir faire un code unique, avec appel à une fonction qui contiendrait deux paramètres :

 

- le nom du dossier à explorer
- son type (envoi / réception)

 

il suffirait dans le code de provoquer la réponse uniquement dans le cadre de la boite de réception, et ce qui serait encore mieux, c'est de mettre en feuil3 colonne A la liste des noms des dossiers qu'on veut récupérer, et en colonne B leur type (envoi / réception)

 

Bref, y a du potentiel :D

 

Merci encore ;)


Message édité par Mona Soyoc le 05-02-2009 à 17:19:38
n°2840129
SuppotDeSa​Tante
Aka dje69r
Posté le 06-02-2009 à 11:07:05  profilanswer
 

Le nom du dossier etant une chaine, rien n'empeche de la remplacer par une variable contenant une chaine.
 
Pour le code unique je suis pas forcement pour. Il vaut mieux deux fonctions, une pour la boite de reception (et dossiers), une pour la boite d'envoi (et dossier). Puis par le biais d'une autre fonction, en fonction de ce que tu as dans tes cellules, tu appelles telle ou telle fonction, ou les deux.


---------------
Soyez malin, louez entre voisins !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Windows & Software
  Logiciels

  Récupérer les adresses mail dans la boite de réception

 

Sujets relatifs
Extraire plusieurs fichiers joints sur Window MailNotificateur de mail pour Gmail
Synchronisation intempestive de Windows Live MailRécupérer "mes documents" à partir d'un autre PC (dossier protégé) ?
récupérer un CD windows 2000.Récuperer fichier suprimé
Bloquer l'ouverture de certaines adresses avec firefoxRecuperer fichier avec Drive Rescue
Spamassassin - Comment declarer un mail non filtre comme spam ?windows mail
Plus de sujets relatifs à : Récupérer les adresses mail dans la boite de réception


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR