![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
Bonjour a tous,
J'aimerai faire un systeme depuis excell de classement de mails. Créer un nouveau dossier dans la boîte de réception Création de règle de classement en fonction du nom du mail J'ai déja tenté de faire du publipostage avec word et avec base de données excel. le problème est que excell ne peut pas ouvrir un fichier word avec un publipostage qui fait appel à un autre fichier excell Merci à vous tous pour vos futurs nombreuse réponse |
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Messages: 3 749
|
bonjour Olivier
cet exemple créée un nouveau dossier dans la boite de reception et transfert les messages contenus dans la boite de réception ,si l'émetteur n'existe pas dans la liste des 'Contacts' Code:
Sub triMessages_dansBoiteReception()
'nécéssite d'activer la référence Microsoft Outlook 10.0 Object Library
Dim olApp As New Outlook.Application
Dim olSpace As Outlook.nameSpace
Dim olFolder As Outlook.MAPIFolder, olInbox As Outlook.MAPIFolder
Dim Adresse As Outlook.addressList
Dim i As Integer, j As Integer
Dim leContact As Boolean
On Error goTo Fin
Set olSpace = olApp.getNamespace('MAPI'Â'Â')
Set olInbox = olSpace.getDefaultFolder(olFolderInbox)
Set olFolder = olInbox.Folders.Add('Nouveau Répertoire ' & Format(Date, 'yyyymmdd'Â'Â'))
Set Adresse = olSpace.addressLists('Contacts'Â'Â')
On Error goTo 0
'################################################################
''*!* normalement le nouveau dossier doit etre créé sans volet de prévisualisation
olApp.activeExplorer.currentView = 'Messages'
'################################################################
For j = olInbox.Items.Count To 1 Step -1
leContact = False
For i = 1 To Adresse.addressEntries.Count
If olInbox.Items.Item(j).senderName = Adresse.addressEntries.Item(i) Then _
leContact = True: Exit For
Next i
If leContact = False Then olInbox.Items.Item(j).Move olFolder
Next j
'msgBox olFolder.Items.Count & ' messages non identifiés ont été tranférés dans ' & _
'le dossier Outlook : Nouveau Répertoire ' & Format(Date, 'yyyymmdd'Â'Â'), , 'Message'
Exit Sub
Fin:
msgBox 'Opération annulée : le nouveau répertoire spécifié existe déja .', , 'Message'
End Sub
bon apres midi MichelXld Message édité par: michelxld, à: 27/04/2005 13:04 Message édité par: michelxld, à: 27/04/2005 13:05 |
|
|
|
|
|
#3 (permalink) |
|
Guest
Messages: n/a
|
Merci michel,
on dirait du VB pour outlook ? Ou faut il le mettre ? Pourrais tu faire un code qui : - quand on reçoit un mail pas encore recu, crée un dossier ( avec l'objet du mail comme nom) et fait une règle de classement automatique en fonction de 'l'objet du mail' ? - Que les mails, qui ont déja un dossier de classement, aillent directement dans le dossier respectif. Ce serait sensass !! hmy: B) ![]() |
|
|
|
#4 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Messages: 3 749
|
bonjour Olivier
dans mon premier message la macro etait lancée depuis Excel . l'exemple ci dessous est à inséer directement dans Outlook Dans ThisOutlookSession : Private Sub Application_NewMail() triMessages_dansBoiteReception_V02 End Sub cela va permettre de lancer automatiquement la procedure dès la reception d'un nouveau mesage dans un module de l'editeur de macros Outlook : Sub triMessages_dansBoiteReception_V02() Dim olSpace As Outlook.NameSpace Dim olFolder As Outlook.MAPIFolder, olInbox As Outlook.MAPIFolder Dim j As Integer Set olSpace = Application.GetNamespace('MAPI') Set olInbox = olSpace.GetDefaultFolder(olFolderInbox) 'boucle sur tous les messages de la boite de réception For j = olInbox.Items.Count To 1 Step -1 On Error Resume Next Set olFolder = olInbox.Folders(olInbox.Items(j).Subject) On Error GoTo 0 If Not olFolder Is Nothing Then 'si le dossier existe (meme nom que le sujet du message):transfert du message olInbox.Items(j).Move olFolder Else 'si le dossier n'existe pas , creation puis transfert Set olFolder = olInbox.Folders.Add(olInbox.Items(j).Subject) Application.ActiveExplorer.CurrentView = 'Messages' olInbox.Items(j).Move olFolder End If Set olFolder = Nothing Next j End Sub la procedure boucle sur tous les messages de la boite de reception : si un dossier portant le nom du sujet existe , le message y est transféré . si le dossier n'existe pas , celui ci est créé , puis le message est transféré bonne soirée MichelXld |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|