OVH Cloud OVH Cloud

Regle et joker

21 réponses
Avatar
B
Bonjour,

Je recois des messages provenant des different bureaux de notre entreprise.
J'aimerais me cree une regle qui pourrais deplacer les message recu vers un
PST determiner par bureau(ca c'est ok) Mais en plus, j'aimerais que sous
chaque dossier bureau, pouvoir separer les usagers en utilisant leur
%username%. Comme ca j'aurais un dossier par employé deplacer
automatiquement.

Merci,

10 réponses

1 2 3
Avatar
B
Ok c'Est fait. Ensuite?

"Isabelle Prawitz" wrote:

Bonjour !
Alors je te propose une petite manipulation avant toute chose : créer une liste de distribution Outlook qui contiendra les
listes associées aux bureaux, de façon à les trouver facilement et à restreindre le traitement. Tu pourrais l'appeler
Bureaux, par exemple. C'est ce que je prendrai comme base.
Isa

"" a écrit dans le message de
news:
Bonjour Isabelle

Desole pour le delai!

1- Mes liste sont formé par des custom attribute directement sur le serveur
exchange. Quand je vais dans le carnet d'Adresse, sous all group je vois
chaque bureau.

2- Oui ils ont les meme noms que les attibut. (par hasard).

Juste pour etre certain, chaque bureau a 1 pst au nom du bureau (ie:
Montreal) avec un sous-dossier employee.(ie: montreal/employee) J'aimerais
pour avoir un dossier par employe (ie: montreal/employee/%username%)
j'aimerais pouvoir modifier la regle pour que je puisse avoir la meme chose
pour les 2 autres bureaux.

Merci!

p.s. j'avais oublier de cocher la case notify me of replies!


"Isabelle Prawitz" wrote:

Bonjour à nouveau !
Pour te pondre une trame, j'aurais besoin de quelques indications supplémentaires:
1. Comment sont formatées les listes correspondant aux bureaux ? S'il n'y a pas de format spécifique, il faut envisager
de


faire une liste de distrib Outlook contenant ces fameuses listes (le plus simple à gérer à mon avis !)
2. Tes sous-dossiers de bureaux ont-ils exactement le même nom que les listes ?
A+
Isa

"" a écrit dans le message de
news:
Merci à l'avance, Ca me rendrai un bon coup de main!

"Isabelle Prawitz" wrote:

Donc tu as plusieurs listes de distrib Exchange, une par bureau ?
Si c'est le cas en effet, tu peux faire un traitement à l'arrivée de chaque mail avec :
1. Récup de l'alias de l'expéditeur
2. Récup de la liste de distrib, et donc de son bureau
3. Vérif dans le dossier pst LebureauXEmployer, si le dossier UserY existe déjà et :
a. si oui, déplacement du message
b. si non, création du dossier et déplacement du message
Ca me paraît tout à fait jouable ! ;-)
Je jetterai un oeil demain !
A+
Isa

















Avatar
Isabelle Prawitz
Attends, attends !
Je teste ma moulinette !
Isa

"" a écrit dans le message de
news:
Ok c'Est fait. Ensuite?

"Isabelle Prawitz" wrote:

Bonjour !
Alors je te propose une petite manipulation avant toute chose : créer une liste de distribution Outlook qui contiendra
les


listes associées aux bureaux, de façon à les trouver facilement et à restreindre le traitement. Tu pourrais l'appeler
Bureaux, par exemple. C'est ce que je prendrai comme base.
Isa

"" a écrit dans le message de
news:
Bonjour Isabelle

Desole pour le delai!

1- Mes liste sont formé par des custom attribute directement sur le serveur
exchange. Quand je vais dans le carnet d'Adresse, sous all group je vois
chaque bureau.

2- Oui ils ont les meme noms que les attibut. (par hasard).

Juste pour etre certain, chaque bureau a 1 pst au nom du bureau (ie:
Montreal) avec un sous-dossier employee.(ie: montreal/employee) J'aimerais
pour avoir un dossier par employe (ie: montreal/employee/%username%)
j'aimerais pouvoir modifier la regle pour que je puisse avoir la meme chose
pour les 2 autres bureaux.

Merci!

p.s. j'avais oublier de cocher la case notify me of replies!


"Isabelle Prawitz" wrote:

Bonjour à nouveau !
Pour te pondre une trame, j'aurais besoin de quelques indications supplémentaires:
1. Comment sont formatées les listes correspondant aux bureaux ? S'il n'y a pas de format spécifique, il faut
envisager




de
faire une liste de distrib Outlook contenant ces fameuses listes (le plus simple à gérer à mon avis !)
2. Tes sous-dossiers de bureaux ont-ils exactement le même nom que les listes ?
A+
Isa

"" a écrit dans le message de
news:
Merci à l'avance, Ca me rendrai un bon coup de main!

"Isabelle Prawitz" wrote:

Donc tu as plusieurs listes de distrib Exchange, une par bureau ?
Si c'est le cas en effet, tu peux faire un traitement à l'arrivée de chaque mail avec :
1. Récup de l'alias de l'expéditeur
2. Récup de la liste de distrib, et donc de son bureau
3. Vérif dans le dossier pst LebureauXEmployer, si le dossier UserY existe déjà et :
a. si oui, déplacement du message
b. si non, création du dossier et déplacement du message
Ca me paraît tout à fait jouable ! ;-)
Je jetterai un oeil demain !
A+
Isa



















Avatar
B
Pas de probleme je veux juste etre certain d'etre avise quand tu me fera un
reply!

"Isabelle Prawitz" wrote:

Attends, attends !
Je teste ma moulinette !
Isa

"" a écrit dans le message de
news:
Ok c'Est fait. Ensuite?

"Isabelle Prawitz" wrote:

Bonjour !
Alors je te propose une petite manipulation avant toute chose : créer une liste de distribution Outlook qui contiendra
les


listes associées aux bureaux, de façon à les trouver facilement et à restreindre le traitement. Tu pourrais l'appeler
Bureaux, par exemple. C'est ce que je prendrai comme base.
Isa

"" a écrit dans le message de
news:
Bonjour Isabelle

Desole pour le delai!

1- Mes liste sont formé par des custom attribute directement sur le serveur
exchange. Quand je vais dans le carnet d'Adresse, sous all group je vois
chaque bureau.

2- Oui ils ont les meme noms que les attibut. (par hasard).

Juste pour etre certain, chaque bureau a 1 pst au nom du bureau (ie:
Montreal) avec un sous-dossier employee.(ie: montreal/employee) J'aimerais
pour avoir un dossier par employe (ie: montreal/employee/%username%)
j'aimerais pouvoir modifier la regle pour que je puisse avoir la meme chose
pour les 2 autres bureaux.

Merci!

p.s. j'avais oublier de cocher la case notify me of replies!


"Isabelle Prawitz" wrote:

Bonjour à nouveau !
Pour te pondre une trame, j'aurais besoin de quelques indications supplémentaires:
1. Comment sont formatées les listes correspondant aux bureaux ? S'il n'y a pas de format spécifique, il faut
envisager




de
faire une liste de distrib Outlook contenant ces fameuses listes (le plus simple à gérer à mon avis !)
2. Tes sous-dossiers de bureaux ont-ils exactement le même nom que les listes ?
A+
Isa

"" a écrit dans le message de
news:
Merci à l'avance, Ca me rendrai un bon coup de main!

"Isabelle Prawitz" wrote:

Donc tu as plusieurs listes de distrib Exchange, une par bureau ?
Si c'est le cas en effet, tu peux faire un traitement à l'arrivée de chaque mail avec :
1. Récup de l'alias de l'expéditeur
2. Récup de la liste de distrib, et donc de son bureau
3. Vérif dans le dossier pst LebureauXEmployer, si le dossier UserY existe déjà et :
a. si oui, déplacement du message
b. si non, création du dossier et déplacement du message
Ca me paraît tout à fait jouable ! ;-)
Je jetterai un oeil demain !
A+
Isa
























Avatar
Isabelle Prawitz
Bon, ça y est, j'ai fait une moulinette, mais elle a l'inconvénient, avec Outlook 2003, de mettre le message "Un programme
essaie d'accéder..."

La voici, à coller dans le code de session Outlook, puis référence à la bibliothèque "Microsoft CDO 1.21 Library", et enfin
appel de la macro dans Application_NewMail si tu veux qu'elle s'active dès qu'un message arrive (pas obligatoire).

'début macro
Sub VentileMail()
Dim cdoMaSession As MAPI.Session
Dim LAdresse As MAPI.AddressEntry
Dim cdoMess As MAPI.Message
Dim LeMess As MailItem
Dim olaListe As Outlook.AddressEntry
Dim oLAdresse As Outlook.AddressEntry
Dim LeDoss As MAPIFolder
Dim DossUser As MAPIFolder
Dim LItem As Object
Dim LeNouvDoss As MAPIFolder
Dim oLesbureaux As Outlook.AddressEntry

Set cdoMaSession = CreateObject("MAPI.Session")
cdoMaSession.Logon "", "", False, False, 0

Set oLesbureaux = Session.AddressLists("Contacts").AddressEntries("Bureaux")
Set LeDoss = Session.GetDefaultFolder(olFolderInbox)
For Each LItem In LeDoss.Items
If TypeName(LItem) = "MailItem" Then
Set LeMess = LItem
Dim blnDeplace As Boolean
Set cdoMess = cdoMaSession.GetMessage(LeMess.EntryID)
For Each olaListe In oLesbureaux.Members
For Each oLAdresse In olaListe.Members
Set LAdresse = cdoMaSession.GetAddressEntry(oLAdresse.ID)
If LAdresse.IsSameAs(cdoMess.Sender) Then
Set LeNouvDoss = Session.Folders(olaListe.Name).Folders("Employee")
On Error Resume Next
Dim strAlias As String
strAlias = LAdresse.Fields(&H3A00001E).Value
If LeNouvDoss.Folders(strAlias) Is Nothing Then
LeNouvDoss.Folders.Add strAlias
End If
On Error GoTo 0
Set DossUser = LeNouvDoss.Folders(strAlias)
LeMess.Move DossUser
blnDeplace = True
Exit For
End If
Next
If blnDeplace Then Exit For
Next
End If
Next
MsgBox "Fini" 'à enlever, pour test
End Sub
'fin macro

En espérant que ça marche du premier coup... ;-)
A+
Isa

"" a écrit dans le message de
news:
Pas de probleme je veux juste etre certain d'etre avise quand tu me fera un
reply!

"Isabelle Prawitz" wrote:

Attends, attends !
Je teste ma moulinette !
Isa

"" a écrit dans le message de
news:
Ok c'Est fait. Ensuite?

"Isabelle Prawitz" wrote:

Bonjour !
Alors je te propose une petite manipulation avant toute chose : créer une liste de distribution Outlook qui
contiendra




les
listes associées aux bureaux, de façon à les trouver facilement et à restreindre le traitement. Tu pourrais l'appeler
Bureaux, par exemple. C'est ce que je prendrai comme base.
Isa

"" a écrit dans le message de
news:
Bonjour Isabelle

Desole pour le delai!

1- Mes liste sont formé par des custom attribute directement sur le serveur
exchange. Quand je vais dans le carnet d'Adresse, sous all group je vois
chaque bureau.

2- Oui ils ont les meme noms que les attibut. (par hasard).

Juste pour etre certain, chaque bureau a 1 pst au nom du bureau (ie:
Montreal) avec un sous-dossier employee.(ie: montreal/employee) J'aimerais
pour avoir un dossier par employe (ie: montreal/employee/%username%)
j'aimerais pouvoir modifier la regle pour que je puisse avoir la meme chose
pour les 2 autres bureaux.

Merci!

p.s. j'avais oublier de cocher la case notify me of replies!


"Isabelle Prawitz" wrote:

Bonjour à nouveau !
Pour te pondre une trame, j'aurais besoin de quelques indications supplémentaires:
1. Comment sont formatées les listes correspondant aux bureaux ? S'il n'y a pas de format spécifique, il faut
envisager




de
faire une liste de distrib Outlook contenant ces fameuses listes (le plus simple à gérer à mon avis !)
2. Tes sous-dossiers de bureaux ont-ils exactement le même nom que les listes ?
A+
Isa

"" a écrit dans le message de
news:
Merci à l'avance, Ca me rendrai un bon coup de main!

"Isabelle Prawitz" wrote:

Donc tu as plusieurs listes de distrib Exchange, une par bureau ?
Si c'est le cas en effet, tu peux faire un traitement à l'arrivée de chaque mail avec :
1. Récup de l'alias de l'expéditeur
2. Récup de la liste de distrib, et donc de son bureau
3. Vérif dans le dossier pst LebureauXEmployer, si le dossier UserY existe déjà et :
a. si oui, déplacement du message
b. si non, création du dossier et déplacement du message
Ca me paraît tout à fait jouable ! ;-)
Je jetterai un oeil demain !
A+
Isa


























Avatar
B
Bonjour Isabelle,

Je veux bien l'essayer mais tu m'as perdu! tu peux reprendre en language
commun a partir de:" La voici, à coller dans le code de session Outlook, puis
référence à la bibliothèque "Microsoft CDO 1.21 Library", et enfin
appel de la macro dans Application_NewMail si tu veux qu'elle s'active dès qu'un message arrive (pas obligatoire)."


c'est ou ca . . . je suis plutot coté server que coté client. Tu fais cela
du coté client je presume non? Je copie ton code dans un notepad?

Merci des precision. . . .



"Isabelle Prawitz" wrote:

Bon, ça y est, j'ai fait une moulinette, mais elle a l'inconvénient, avec Outlook 2003, de mettre le message "Un programme
essaie d'accéder..."


'début macro

Sub VentileMail()
Dim cdoMaSession As MAPI.Session
Dim LAdresse As MAPI.AddressEntry
Dim cdoMess As MAPI.Message
Dim LeMess As MailItem
Dim olaListe As Outlook.AddressEntry
Dim oLAdresse As Outlook.AddressEntry
Dim LeDoss As MAPIFolder
Dim DossUser As MAPIFolder
Dim LItem As Object
Dim LeNouvDoss As MAPIFolder
Dim oLesbureaux As Outlook.AddressEntry

Set cdoMaSession = CreateObject("MAPI.Session")
cdoMaSession.Logon "", "", False, False, 0

Set oLesbureaux = Session.AddressLists("Contacts").AddressEntries("Bureaux")
Set LeDoss = Session.GetDefaultFolder(olFolderInbox)
For Each LItem In LeDoss.Items
If TypeName(LItem) = "MailItem" Then
Set LeMess = LItem
Dim blnDeplace As Boolean
Set cdoMess = cdoMaSession.GetMessage(LeMess.EntryID)
For Each olaListe In oLesbureaux.Members
For Each oLAdresse In olaListe.Members
Set LAdresse = cdoMaSession.GetAddressEntry(oLAdresse.ID)
If LAdresse.IsSameAs(cdoMess.Sender) Then
Set LeNouvDoss = Session.Folders(olaListe.Name).Folders("Employee")
On Error Resume Next
Dim strAlias As String
strAlias = LAdresse.Fields(&H3A00001E).Value
If LeNouvDoss.Folders(strAlias) Is Nothing Then
LeNouvDoss.Folders.Add strAlias
End If
On Error GoTo 0
Set DossUser = LeNouvDoss.Folders(strAlias)
LeMess.Move DossUser
blnDeplace = True
Exit For
End If
Next
If blnDeplace Then Exit For
Next
End If
Next
MsgBox "Fini" 'à enlever, pour test
End Sub
'fin macro

En espérant que ça marche du premier coup... ;-)
A+
Isa

"" a écrit dans le message de
news:
Pas de probleme je veux juste etre certain d'etre avise quand tu me fera un
reply!

"Isabelle Prawitz" wrote:

Attends, attends !
Je teste ma moulinette !
Isa

"" a écrit dans le message de
news:
Ok c'Est fait. Ensuite?

"Isabelle Prawitz" wrote:

Bonjour !
Alors je te propose une petite manipulation avant toute chose : créer une liste de distribution Outlook qui
contiendra




les
listes associées aux bureaux, de façon à les trouver facilement et à restreindre le traitement. Tu pourrais l'appeler
Bureaux, par exemple. C'est ce que je prendrai comme base.
Isa

"" a écrit dans le message de
news:
Bonjour Isabelle

Desole pour le delai!

1- Mes liste sont formé par des custom attribute directement sur le serveur
exchange. Quand je vais dans le carnet d'Adresse, sous all group je vois
chaque bureau.

2- Oui ils ont les meme noms que les attibut. (par hasard).

Juste pour etre certain, chaque bureau a 1 pst au nom du bureau (ie:
Montreal) avec un sous-dossier employee.(ie: montreal/employee) J'aimerais
pour avoir un dossier par employe (ie: montreal/employee/%username%)
j'aimerais pouvoir modifier la regle pour que je puisse avoir la meme chose
pour les 2 autres bureaux.

Merci!

p.s. j'avais oublier de cocher la case notify me of replies!


"Isabelle Prawitz" wrote:

Bonjour à nouveau !
Pour te pondre une trame, j'aurais besoin de quelques indications supplémentaires:
1. Comment sont formatées les listes correspondant aux bureaux ? S'il n'y a pas de format spécifique, il faut
envisager




de
faire une liste de distrib Outlook contenant ces fameuses listes (le plus simple à gérer à mon avis !)
2. Tes sous-dossiers de bureaux ont-ils exactement le même nom que les listes ?
A+
Isa

"" a écrit dans le message de
news:
Merci à l'avance, Ca me rendrai un bon coup de main!

"Isabelle Prawitz" wrote:

Donc tu as plusieurs listes de distrib Exchange, une par bureau ?
Si c'est le cas en effet, tu peux faire un traitement à l'arrivée de chaque mail avec :
1. Récup de l'alias de l'expéditeur
2. Récup de la liste de distrib, et donc de son bureau
3. Vérif dans le dossier pst LebureauXEmployer, si le dossier UserY existe déjà et :
a. si oui, déplacement du message
b. si non, création du dossier et déplacement du message
Ca me paraît tout à fait jouable ! ;-)
Je jetterai un oeil demain !
A+
Isa































Avatar
JièL Goubert
Bonjoir(c) Isabelle Prawitz

Le 21/02/2005 19:04 vous avez écrit ceci :
Bon, ça y est, j'ai fait une moulinette, mais elle a l'inconvénient, avec Outlook 2003, de mettre le message "Un programme
essaie d'accéder..."


il existe au moins 2 parades à ce message. La première est dans la
programmation, mais la je ne peux pas grand chose, il me semble qu'il faut
utiliser "extend MAPI" et non pas simple MAPI. Regarde sur le site
http://users.skynet.be/accesshome/outlook.htm il y a des exemple (je crois
bien). La seconde c'est sur le poste qui exécute la macro. Voir
http://www.mapilab.com/outlook/security/ qui demande la première fois
l'action et qui la garde en mémoire pour le reste du temps (si j'ai bien
tout compris à ce programme)

--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr/

Avatar
B
Ok j'ai trouve avec l'aide d'un colegue ton emplacement mais mon outlook est
en anglais est ce que ca change quelque chose?

"Isabelle Prawitz" wrote:

Bon, ça y est, j'ai fait une moulinette, mais elle a l'inconvénient, avec Outlook 2003, de mettre le message "Un programme
essaie d'accéder..."

La voici, à coller dans le code de session Outlook, puis référence à la bibliothèque "Microsoft CDO 1.21 Library", et enfin
appel de la macro dans Application_NewMail si tu veux qu'elle s'active dès qu'un message arrive (pas obligatoire).

'début macro
Sub VentileMail()
Dim cdoMaSession As MAPI.Session
Dim LAdresse As MAPI.AddressEntry
Dim cdoMess As MAPI.Message
Dim LeMess As MailItem
Dim olaListe As Outlook.AddressEntry
Dim oLAdresse As Outlook.AddressEntry
Dim LeDoss As MAPIFolder
Dim DossUser As MAPIFolder
Dim LItem As Object
Dim LeNouvDoss As MAPIFolder
Dim oLesbureaux As Outlook.AddressEntry

Set cdoMaSession = CreateObject("MAPI.Session")
cdoMaSession.Logon "", "", False, False, 0

Set oLesbureaux = Session.AddressLists("Contacts").AddressEntries("Bureaux")
Set LeDoss = Session.GetDefaultFolder(olFolderInbox)
For Each LItem In LeDoss.Items
If TypeName(LItem) = "MailItem" Then
Set LeMess = LItem
Dim blnDeplace As Boolean
Set cdoMess = cdoMaSession.GetMessage(LeMess.EntryID)
For Each olaListe In oLesbureaux.Members
For Each oLAdresse In olaListe.Members
Set LAdresse = cdoMaSession.GetAddressEntry(oLAdresse.ID)
If LAdresse.IsSameAs(cdoMess.Sender) Then
Set LeNouvDoss = Session.Folders(olaListe.Name).Folders("Employee")
On Error Resume Next
Dim strAlias As String
strAlias = LAdresse.Fields(&H3A00001E).Value
If LeNouvDoss.Folders(strAlias) Is Nothing Then
LeNouvDoss.Folders.Add strAlias
End If
On Error GoTo 0
Set DossUser = LeNouvDoss.Folders(strAlias)
LeMess.Move DossUser
blnDeplace = True
Exit For
End If
Next
If blnDeplace Then Exit For
Next
End If
Next
MsgBox "Fini" 'à enlever, pour test
End Sub
'fin macro

En espérant que ça marche du premier coup... ;-)
A+
Isa

"" a écrit dans le message de
news:
Pas de probleme je veux juste etre certain d'etre avise quand tu me fera un
reply!

"Isabelle Prawitz" wrote:

Attends, attends !
Je teste ma moulinette !
Isa

"" a écrit dans le message de
news:
Ok c'Est fait. Ensuite?

"Isabelle Prawitz" wrote:

Bonjour !
Alors je te propose une petite manipulation avant toute chose : créer une liste de distribution Outlook qui
contiendra




les
listes associées aux bureaux, de façon à les trouver facilement et à restreindre le traitement. Tu pourrais l'appeler
Bureaux, par exemple. C'est ce que je prendrai comme base.
Isa

"" a écrit dans le message de
news:
Bonjour Isabelle

Desole pour le delai!

1- Mes liste sont formé par des custom attribute directement sur le serveur
exchange. Quand je vais dans le carnet d'Adresse, sous all group je vois
chaque bureau.

2- Oui ils ont les meme noms que les attibut. (par hasard).

Juste pour etre certain, chaque bureau a 1 pst au nom du bureau (ie:
Montreal) avec un sous-dossier employee.(ie: montreal/employee) J'aimerais
pour avoir un dossier par employe (ie: montreal/employee/%username%)
j'aimerais pouvoir modifier la regle pour que je puisse avoir la meme chose
pour les 2 autres bureaux.

Merci!

p.s. j'avais oublier de cocher la case notify me of replies!


"Isabelle Prawitz" wrote:

Bonjour à nouveau !
Pour te pondre une trame, j'aurais besoin de quelques indications supplémentaires:
1. Comment sont formatées les listes correspondant aux bureaux ? S'il n'y a pas de format spécifique, il faut
envisager




de
faire une liste de distrib Outlook contenant ces fameuses listes (le plus simple à gérer à mon avis !)
2. Tes sous-dossiers de bureaux ont-ils exactement le même nom que les listes ?
A+
Isa

"" a écrit dans le message de
news:
Merci à l'avance, Ca me rendrai un bon coup de main!

"Isabelle Prawitz" wrote:

Donc tu as plusieurs listes de distrib Exchange, une par bureau ?
Si c'est le cas en effet, tu peux faire un traitement à l'arrivée de chaque mail avec :
1. Récup de l'alias de l'expéditeur
2. Récup de la liste de distrib, et donc de son bureau
3. Vérif dans le dossier pst LebureauXEmployer, si le dossier UserY existe déjà et :
a. si oui, déplacement du message
b. si non, création du dossier et déplacement du message
Ca me paraît tout à fait jouable ! ;-)
Je jetterai un oeil demain !
A+
Isa































Avatar
Isabelle Prawitz
Ce code est à mettre dans le code d'une session Outlook.
Il faut ouvrir une session Outlook avec un profil basé sur le compte Exchange recevant ces messages.
Ce profil a bien sûr les différents PST de bureaux intégrés.
Ensuite, par Alt+F11, tu accèdes à l'environnement Visual Basic de Outlook.
En haut à gauche il y a une arborescence Projet1.
Tu développes jusqu'à voir ThisOutlookSession.
Double clic sur ThisOutlookSession : ça t'affiche le code de session Outlook.
Tu colles le code dans cette page.
Ensuite, dans le menu Outils/Références... tu cherches "Microsoft CDO 1.21 Library" (ordre alpha.) et tu coches la case.
Tu enregistres par le bouton Enregistrer.
La macro est prête à fonctionner, par l'intermédiaire de Outils/Macro/Macros...ThisOutlookSession.VentileMail
Si tu veux qu'elle se lance à chaque arrivée de mail, tu rajoutes le code suivant au-dessous de celui de VentileMail

'évènement qui se lance à chaque arrivée de mail
Private Sub Application_NewMail()
VentileMail
End Sub

Excuse-moi, je croyais que tu avais déjà écrit du code Outlook ! J'ai dû confondre les noms !
A+
Isa

"" a écrit dans le message de
news:
Bonjour Isabelle,

Je veux bien l'essayer mais tu m'as perdu! tu peux reprendre en language
commun a partir de:" La voici, à coller dans le code de session Outlook, puis
référence à la bibliothèque et enfin
appel de la macro dans Application_NewMail si tu veux qu'elle s'active dès qu'un message arrive (pas obligatoire)."


c'est ou ca . . . je suis plutot coté server que coté client. Tu fais cela
du coté client je presume non? Je copie ton code dans un notepad?

Merci des precision. . . .



"Isabelle Prawitz" wrote:

Bon, ça y est, j'ai fait une moulinette, mais elle a l'inconvénient, avec Outlook 2003, de mettre le message "Un
programme


essaie d'accéder..."


'début macro

Sub VentileMail()
Dim cdoMaSession As MAPI.Session
Dim LAdresse As MAPI.AddressEntry
Dim cdoMess As MAPI.Message
Dim LeMess As MailItem
Dim olaListe As Outlook.AddressEntry
Dim oLAdresse As Outlook.AddressEntry
Dim LeDoss As MAPIFolder
Dim DossUser As MAPIFolder
Dim LItem As Object
Dim LeNouvDoss As MAPIFolder
Dim oLesbureaux As Outlook.AddressEntry

Set cdoMaSession = CreateObject("MAPI.Session")
cdoMaSession.Logon "", "", False, False, 0

Set oLesbureaux = Session.AddressLists("Contacts").AddressEntries("Bureaux")
Set LeDoss = Session.GetDefaultFolder(olFolderInbox)
For Each LItem In LeDoss.Items
If TypeName(LItem) = "MailItem" Then
Set LeMess = LItem
Dim blnDeplace As Boolean
Set cdoMess = cdoMaSession.GetMessage(LeMess.EntryID)
For Each olaListe In oLesbureaux.Members
For Each oLAdresse In olaListe.Members
Set LAdresse = cdoMaSession.GetAddressEntry(oLAdresse.ID)
If LAdresse.IsSameAs(cdoMess.Sender) Then
Set LeNouvDoss = Session.Folders(olaListe.Name).Folders("Employee")
On Error Resume Next
Dim strAlias As String
strAlias = LAdresse.Fields(&H3A00001E).Value
If LeNouvDoss.Folders(strAlias) Is Nothing Then
LeNouvDoss.Folders.Add strAlias
End If
On Error GoTo 0
Set DossUser = LeNouvDoss.Folders(strAlias)
LeMess.Move DossUser
blnDeplace = True
Exit For
End If
Next
If blnDeplace Then Exit For
Next
End If
Next
MsgBox "Fini" 'à enlever, pour test
End Sub
'fin macro

En espérant que ça marche du premier coup... ;-)
A+
Isa

"" a écrit dans le message de
news:
Pas de probleme je veux juste etre certain d'etre avise quand tu me fera un
reply!

"Isabelle Prawitz" wrote:

Attends, attends !
Je teste ma moulinette !
Isa

"" a écrit dans le message de
news:
Ok c'Est fait. Ensuite?

"Isabelle Prawitz" wrote:

Bonjour !
Alors je te propose une petite manipulation avant toute chose : créer une liste de distribution Outlook qui
contiendra




les
listes associées aux bureaux, de façon à les trouver facilement et à restreindre le traitement. Tu pourrais
l'appeler






Bureaux, par exemple. C'est ce que je prendrai comme base.
Isa

"" a écrit dans le message de
news:
Bonjour Isabelle

Desole pour le delai!

1- Mes liste sont formé par des custom attribute directement sur le serveur
exchange. Quand je vais dans le carnet d'Adresse, sous all group je vois
chaque bureau.

2- Oui ils ont les meme noms que les attibut. (par hasard).

Juste pour etre certain, chaque bureau a 1 pst au nom du bureau (ie:
Montreal) avec un sous-dossier employee.(ie: montreal/employee) J'aimerais
pour avoir un dossier par employe (ie: montreal/employee/%username%)
j'aimerais pouvoir modifier la regle pour que je puisse avoir la meme chose
pour les 2 autres bureaux.

Merci!

p.s. j'avais oublier de cocher la case notify me of replies!


"Isabelle Prawitz" wrote:

Bonjour à nouveau !
Pour te pondre une trame, j'aurais besoin de quelques indications supplémentaires:
1. Comment sont formatées les listes correspondant aux bureaux ? S'il n'y a pas de format spécifique, il faut
envisager




de
faire une liste de distrib Outlook contenant ces fameuses listes (le plus simple à gérer à mon avis !)
2. Tes sous-dossiers de bureaux ont-ils exactement le même nom que les listes ?
A+
Isa

"" a écrit dans le message de
news:
Merci à l'avance, Ca me rendrai un bon coup de main!

"Isabelle Prawitz" wrote:

Donc tu as plusieurs listes de distrib Exchange, une par bureau ?
Si c'est le cas en effet, tu peux faire un traitement à l'arrivée de chaque mail avec :
1. Récup de l'alias de l'expéditeur
2. Récup de la liste de distrib, et donc de son bureau
3. Vérif dans le dossier pst LebureauXEmployer, si le dossier UserY existe déjà et :
a. si oui, déplacement du message
b. si non, création du dossier et déplacement du message
Ca me paraît tout à fait jouable ! ;-)
Je jetterai un oeil demain !
A+
Isa

































Avatar
Isabelle Prawitz
A priori non, je n'ai pas utilisé de dossiers "régionaux"...
Pour le message, je cherche toujours, si j'ai la solution je t'en fais part !
Isa

"" a écrit dans le message de
news:
Ok j'ai trouve avec l'aide d'un colegue ton emplacement mais mon outlook est
en anglais est ce que ca change quelque chose?

"Isabelle Prawitz" wrote:

Bon, ça y est, j'ai fait une moulinette, mais elle a l'inconvénient, avec Outlook 2003, de mettre le message "Un
programme


essaie d'accéder..."

La voici, à coller dans le code de session Outlook, puis référence à la bibliothèque "Microsoft CDO 1.21 Library", et
enfin


appel de la macro dans Application_NewMail si tu veux qu'elle s'active dès qu'un message arrive (pas obligatoire).

'début macro
Sub VentileMail()
Dim cdoMaSession As MAPI.Session
Dim LAdresse As MAPI.AddressEntry
Dim cdoMess As MAPI.Message
Dim LeMess As MailItem
Dim olaListe As Outlook.AddressEntry
Dim oLAdresse As Outlook.AddressEntry
Dim LeDoss As MAPIFolder
Dim DossUser As MAPIFolder
Dim LItem As Object
Dim LeNouvDoss As MAPIFolder
Dim oLesbureaux As Outlook.AddressEntry

Set cdoMaSession = CreateObject("MAPI.Session")
cdoMaSession.Logon "", "", False, False, 0

Set oLesbureaux = Session.AddressLists("Contacts").AddressEntries("Bureaux")
Set LeDoss = Session.GetDefaultFolder(olFolderInbox)
For Each LItem In LeDoss.Items
If TypeName(LItem) = "MailItem" Then
Set LeMess = LItem
Dim blnDeplace As Boolean
Set cdoMess = cdoMaSession.GetMessage(LeMess.EntryID)
For Each olaListe In oLesbureaux.Members
For Each oLAdresse In olaListe.Members
Set LAdresse = cdoMaSession.GetAddressEntry(oLAdresse.ID)
If LAdresse.IsSameAs(cdoMess.Sender) Then
Set LeNouvDoss = Session.Folders(olaListe.Name).Folders("Employee")
On Error Resume Next
Dim strAlias As String
strAlias = LAdresse.Fields(&H3A00001E).Value
If LeNouvDoss.Folders(strAlias) Is Nothing Then
LeNouvDoss.Folders.Add strAlias
End If
On Error GoTo 0
Set DossUser = LeNouvDoss.Folders(strAlias)
LeMess.Move DossUser
blnDeplace = True
Exit For
End If
Next
If blnDeplace Then Exit For
Next
End If
Next
MsgBox "Fini" 'à enlever, pour test
End Sub
'fin macro

En espérant que ça marche du premier coup... ;-)
A+
Isa

"" a écrit dans le message de
news:
Pas de probleme je veux juste etre certain d'etre avise quand tu me fera un
reply!

"Isabelle Prawitz" wrote:

Attends, attends !
Je teste ma moulinette !
Isa

"" a écrit dans le message de
news:
Ok c'Est fait. Ensuite?

"Isabelle Prawitz" wrote:

Bonjour !
Alors je te propose une petite manipulation avant toute chose : créer une liste de distribution Outlook qui
contiendra




les
listes associées aux bureaux, de façon à les trouver facilement et à restreindre le traitement. Tu pourrais
l'appeler






Bureaux, par exemple. C'est ce que je prendrai comme base.
Isa

"" a écrit dans le message de
news:
Bonjour Isabelle

Desole pour le delai!

1- Mes liste sont formé par des custom attribute directement sur le serveur
exchange. Quand je vais dans le carnet d'Adresse, sous all group je vois
chaque bureau.

2- Oui ils ont les meme noms que les attibut. (par hasard).

Juste pour etre certain, chaque bureau a 1 pst au nom du bureau (ie:
Montreal) avec un sous-dossier employee.(ie: montreal/employee) J'aimerais
pour avoir un dossier par employe (ie: montreal/employee/%username%)
j'aimerais pouvoir modifier la regle pour que je puisse avoir la meme chose
pour les 2 autres bureaux.

Merci!

p.s. j'avais oublier de cocher la case notify me of replies!


"Isabelle Prawitz" wrote:

Bonjour à nouveau !
Pour te pondre une trame, j'aurais besoin de quelques indications supplémentaires:
1. Comment sont formatées les listes correspondant aux bureaux ? S'il n'y a pas de format spécifique, il faut
envisager




de
faire une liste de distrib Outlook contenant ces fameuses listes (le plus simple à gérer à mon avis !)
2. Tes sous-dossiers de bureaux ont-ils exactement le même nom que les listes ?
A+
Isa

"" a écrit dans le message de
news:
Merci à l'avance, Ca me rendrai un bon coup de main!

"Isabelle Prawitz" wrote:

Donc tu as plusieurs listes de distrib Exchange, une par bureau ?
Si c'est le cas en effet, tu peux faire un traitement à l'arrivée de chaque mail avec :
1. Récup de l'alias de l'expéditeur
2. Récup de la liste de distrib, et donc de son bureau
3. Vérif dans le dossier pst LebureauXEmployer, si le dossier UserY existe déjà et :
a. si oui, déplacement du message
b. si non, création du dossier et déplacement du message
Ca me paraît tout à fait jouable ! ;-)
Je jetterai un oeil demain !
A+
Isa

































Avatar
B
Bonjour Isabelle! ! ! !

Je suis content la, nous avons reussi a tous faire ce que tu as dit et je
n'ai pas de pprbleme avec "Un programme
essaie d'accéder..."


Reste juste a paufiner mes groupes car dans montreal j'ai 4 sous groupe.

un gros merci je te dis A+!




"Isabelle Prawitz" wrote:

Bon, ça y est, j'ai fait une moulinette, mais elle a l'inconvénient, avec Outlook 2003, de mettre le message "Un programme
essaie d'accéder..."

La voici, à coller dans le code de session Outlook, puis référence à la bibliothèque "Microsoft CDO 1.21 Library", et enfin
appel de la macro dans Application_NewMail si tu veux qu'elle s'active dès qu'un message arrive (pas obligatoire).

'début macro
Sub VentileMail()
Dim cdoMaSession As MAPI.Session
Dim LAdresse As MAPI.AddressEntry
Dim cdoMess As MAPI.Message
Dim LeMess As MailItem
Dim olaListe As Outlook.AddressEntry
Dim oLAdresse As Outlook.AddressEntry
Dim LeDoss As MAPIFolder
Dim DossUser As MAPIFolder
Dim LItem As Object
Dim LeNouvDoss As MAPIFolder
Dim oLesbureaux As Outlook.AddressEntry

Set cdoMaSession = CreateObject("MAPI.Session")
cdoMaSession.Logon "", "", False, False, 0

Set oLesbureaux = Session.AddressLists("Contacts").AddressEntries("Bureaux")
Set LeDoss = Session.GetDefaultFolder(olFolderInbox)
For Each LItem In LeDoss.Items
If TypeName(LItem) = "MailItem" Then
Set LeMess = LItem
Dim blnDeplace As Boolean
Set cdoMess = cdoMaSession.GetMessage(LeMess.EntryID)
For Each olaListe In oLesbureaux.Members
For Each oLAdresse In olaListe.Members
Set LAdresse = cdoMaSession.GetAddressEntry(oLAdresse.ID)
If LAdresse.IsSameAs(cdoMess.Sender) Then
Set LeNouvDoss = Session.Folders(olaListe.Name).Folders("Employee")
On Error Resume Next
Dim strAlias As String
strAlias = LAdresse.Fields(&H3A00001E).Value
If LeNouvDoss.Folders(strAlias) Is Nothing Then
LeNouvDoss.Folders.Add strAlias
End If
On Error GoTo 0
Set DossUser = LeNouvDoss.Folders(strAlias)
LeMess.Move DossUser
blnDeplace = True
Exit For
End If
Next
If blnDeplace Then Exit For
Next
End If
Next
MsgBox "Fini" 'à enlever, pour test
End Sub
'fin macro

En espérant que ça marche du premier coup... ;-)
A+
Isa

"" a écrit dans le message de
news:
Pas de probleme je veux juste etre certain d'etre avise quand tu me fera un
reply!

"Isabelle Prawitz" wrote:

Attends, attends !
Je teste ma moulinette !
Isa

"" a écrit dans le message de
news:
Ok c'Est fait. Ensuite?

"Isabelle Prawitz" wrote:

Bonjour !
Alors je te propose une petite manipulation avant toute chose : créer une liste de distribution Outlook qui
contiendra




les
listes associées aux bureaux, de façon à les trouver facilement et à restreindre le traitement. Tu pourrais l'appeler
Bureaux, par exemple. C'est ce que je prendrai comme base.
Isa

"" a écrit dans le message de
news:
Bonjour Isabelle

Desole pour le delai!

1- Mes liste sont formé par des custom attribute directement sur le serveur
exchange. Quand je vais dans le carnet d'Adresse, sous all group je vois
chaque bureau.

2- Oui ils ont les meme noms que les attibut. (par hasard).

Juste pour etre certain, chaque bureau a 1 pst au nom du bureau (ie:
Montreal) avec un sous-dossier employee.(ie: montreal/employee) J'aimerais
pour avoir un dossier par employe (ie: montreal/employee/%username%)
j'aimerais pouvoir modifier la regle pour que je puisse avoir la meme chose
pour les 2 autres bureaux.

Merci!

p.s. j'avais oublier de cocher la case notify me of replies!


"Isabelle Prawitz" wrote:

Bonjour à nouveau !
Pour te pondre une trame, j'aurais besoin de quelques indications supplémentaires:
1. Comment sont formatées les listes correspondant aux bureaux ? S'il n'y a pas de format spécifique, il faut
envisager




de
faire une liste de distrib Outlook contenant ces fameuses listes (le plus simple à gérer à mon avis !)
2. Tes sous-dossiers de bureaux ont-ils exactement le même nom que les listes ?
A+
Isa

"" a écrit dans le message de
news:
Merci à l'avance, Ca me rendrai un bon coup de main!

"Isabelle Prawitz" wrote:

Donc tu as plusieurs listes de distrib Exchange, une par bureau ?
Si c'est le cas en effet, tu peux faire un traitement à l'arrivée de chaque mail avec :
1. Récup de l'alias de l'expéditeur
2. Récup de la liste de distrib, et donc de son bureau
3. Vérif dans le dossier pst LebureauXEmployer, si le dossier UserY existe déjà et :
a. si oui, déplacement du message
b. si non, création du dossier et déplacement du message
Ca me paraît tout à fait jouable ! ;-)
Je jetterai un oeil demain !
A+
Isa































1 2 3