Pilotez outlook depuis excell et publipostage word

  • Initiateur de la discussion Olivier
  • Date de début
O

Olivier

Guest
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
 

MichelXld

XLDnaute Barbatruc
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
 
O

Olivier

Guest
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 !! :eek:hmy: B) :eek: :)
 

MichelXld

XLDnaute Barbatruc
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
 

Discussions similaires

Statistiques des forums

Discussions
312 165
Messages
2 085 880
Membres
103 009
dernier inscrit
dede972