Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Outlook > VBA Outlook
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/12/2007, 18h21   #1
Invité régulier
 
Inscription : juin 2007
Messages : 34
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 34
Points : 8
Points : 8
Par défaut Classer dans explorateur par destinataire

Bonsoir,


Serait il possible de balayer une liste de mail dans un dossier bien précis et de les classer par le destinataire

exemple
dans le dossier C:\mail

avoir au debut en vrac

envoi plans rdc.msg "dupont@wanadoo.fr"
envoi plans etage1.msg "matin@wanadoo.fr"
envoi plans etage2.msg "dupont@wandoo.fr"

ensuite çà donnerai

danc C:\mail
un dossier
C:\dupont@wanadoo.fr
envoi plan rdc.msg
envoi plan etage2.msg

c:\matin@wanadoo.fr
envoi plan etage1.msg

Merci
Vbapprentis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2007, 19h46   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
Sub SaveAtt()
Dim myFld As Folder
Dim myNS As NameSpace
Dim myItem As MailItem
Dim oApp As Outlook.Application
 
Set oApp = Outlook.Application
Set myNS = oApp.GetNamespace("MAPI")
Set myFld = myNS.GetDefaultFolder(olFolderInbox)
 
For Each myItem In myFld.Items
 
     Debug.print myItem.SenderName
 
 
Next myItem
 
 
End Sub
Ce code va récupérer le nom de l'expéditeur, à toi de savoir ce que tu veux faire ensuite.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2007, 14h29   #3
Membre chevronné
 
Avatar de Oliv-
 
Inscription : mars 2006
Messages : 643
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2006
Messages : 643
Points : 699
Points : 699
Bonjour,
Voici à code à adapter, à partir des mails dans OUTLOOK
il faut vérifier si le repertoire correspondant au destinataire existe (dir) sinon le créer (md) voir l'aide.

Code :
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
Sub sav_mail_as_msg(Optional objCurrentMessage As Object)
'By Oliv' juillet 2007 pour OUTLOOK 2003
 
If objCurrentMessage Is Nothing Then Set objCurrentMessage = ActiveInspector.CurrentItem
 
'Ici on construit le nom du fichier qui sera créé
NomExport = objCurrentMessage.Subject & objCurrentMessage.CreationTime
 
'Ici on définit le répertoire où l'enregistrer
repertoire = "c:\temp\"
'repertoire = BrowseForFolder("Choisissez la destination", SDossier(5, 0)) & "\"
 
'Ici on supprime les caractères non autorisés dans les noms de fichiers
PathNomExport = repertoire & "Email " & Left(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace( _
NomExport, "\", ""), "/", ""), ":", ""), "*", ""), "?", ""), "<", ""), ">", ""), "|", ""), ".", ""), """", ""), vbTab, ""), Chr(7), ""), 160) & ".msg"
 
'Ici on vérifie que le fichier n'existe pas déjà sinon il serait écrasé
n = 1
MemPath = PathNomExport
While Dir(PathNomExport) <> ""
MsgBox "Le fichier " & vbCr & PathNomExport & vbCr & "existe déjà", vbInformation
PathNomExport = Left(MemPath, Len(MemPath) - 4) & "(" & n & ")" & ".msg"
n = n + 1
 
Wend
    objCurrentMessage.SaveAs PathNomExport, OlSaveAsType.olMSG
 
End Sub
 
Sub LanceSurOuvert()
sav_mail_as_msg
End Sub
 
 
Sub LanceSurSelection()
Dim MonOutlook As Outlook.Application
Dim LeMail As Object
Dim LesMails As Outlook.Selection
Set MonOutlook = Outlook.Application
 
Set LesMails = MonOutlook.ActiveExplorer.Selection
 
    For Each LeMail In LesMails
    sav_mail_as_msg LeMail
    Next LeMail
 
Set LesMails = Nothing
MsgBox "Fin de traitement"
End Sub

Il faut exécuter LanceSurOuvert à partir de l'élément ouvert ou LanceSurSelection à partir d'une sélection d'éléments.

Si les mails sont déjà dans un dossier du disque dur, c'est un peu plus compliqué voir le fil suivant : http://www.developpez.net/forums/sho...d.php?t=449472
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2007, 13h26   #4
Invité régulier
 
Inscription : juin 2007
Messages : 34
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 34
Points : 8
Points : 8
Bonjour,

merci pour vos solutions je vais tester
Vbapprentis est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h36.


 
 
 
 
Partenaires

Hébergement Web