Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel


Réponse
 
LinkBack Outils de la discussion
Vieux 27/04/2005, 09h42   #1 (permalink)
Olivier
Guest
 
Messages: n/a
Par défaut Pilotez outlook depuis excell et publipostage word

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
  Réponse avec citation
ANNONCES
Vieux 27/04/2005, 13h02   #2 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 749
Par défaut Re:Pilotez outlook depuis excell et publipostage word

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
MichelXld est déconnecté   Réponse avec citation
Vieux 28/04/2005, 08h53   #3 (permalink)
Olivier
Guest
 
Messages: n/a
Par défaut Re:Pilotez outlook depuis excell et publipostage word

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)
  Réponse avec citation
Vieux 28/04/2005, 18h36   #4 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 749
Par défaut Re:Pilotez outlook depuis excell et publipostage word

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
MichelXld est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +2. Il est actuellement 23h08.


(C) 2006 Excel Downloads