Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Outlook
Outlook Forum d'entraide sur Microsoft Office 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 16/11/2006, 14h50   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 18
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2006
Messages : 18
Points : 10
Points : 10
Par défaut Filtres outlooks en VBA

Bonjour,

J'aimerais faire un filtre qui classe les emails provenant de toto@toto.com dans le dossier INFO avec pour object INFO...

J'ai créé un filtre sous outlook et ca marche grossièrement. Par exemple, un mail avec un objet
INFO Salut c'est moi
va bien dans le dossier INFO

Par contre, un mail avec un objet
Pour information, appelle machin
va aussi dans le dossier INFO

Le site de microsoft precise qu'il n'est pas possible de faire de filtre sur la casse, et meme des filtres plus evolués tels que, si et seulement si l'objet commence par la chaine INFO
De plus quand quelqu'un me repond ou me transfert un mail, mon objet sera
Re: INFO ou Tr: INFO

Est ce que quelqu'un pourrait me donner un exmple de script VB qui aurait des fonctionnalités proches ou alors me guider vers une autre source de documentation.

Merci
mikygee est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 16h45   #2
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 854
Points : 16 854
Envoyer un message via Skype™ à bbil
tiens un exemple de script VBA ... : (avec le dossier INFO sous le dossier boîte de réception ...)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
Sub Tri()
    Dim ns As NameSpace
    Dim Inbox As MAPIFolder
    Dim BoxInfo As MAPIFolder
    Set ns = GetNamespace("MAPI")
    Set Inbox = ns.GetDefaultFolder(olFolderInbox)
    Set BoxInfo = Inbox.Folders("INFO")
    Dim Mi As MailItem
    For Each Mi In Inbox.Items 'DossierConteneur.Items
       If Left(Mi.Subject, 4) = "INFO" Then
       Mi.Move BoxInfo
       End If
    Next
 
End Sub
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2006, 15h44   #3
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 18
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2006
Messages : 18
Points : 10
Points : 10
Merci, ca a marché mais l'execution de la macro me retourne une erreur "Incompatibilite de type" au niveau du Next.

Mon dossier INFO est dans un autre dossier DOS qui est dans la boite de reception, comment puis-je modifier le script pour prendre ca en compte.

Comment puis-je faire en sorte que cette macro soit executée à chaque arrivée de mail et non manuellement ?

merci pour ton aide en tout cas

PS: as tu des docs a me conseiller pour le vb script sous outlook.
mikygee est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2006, 16h54   #4
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 854
Points : 16 854
Envoyer un message via Skype™ à bbil
Citation:
Envoyé par mikygee
Merci, ca a marché mais l'execution de la macro me retourne une erreur "Incompatibilite de type" au niveau du Next......
au niveau du next ...? tu as écrit quoi comme code ..?
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2006, 17h55   #5
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 18
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2006
Messages : 18
Points : 10
Points : 10
Voici le code, j'ai pratiquement fait un copié collé du tiens.
Mon dossier est BoiteAbc
La chaine dans mon sujet est ChaineABC

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Tri()
    Dim ns As NameSpace
    Dim Inbox As MAPIFolder
    Dim BoxAbc As MAPIFolder
    Set ns = GetNamespace("MAPI")
    Set Inbox = ns.GetDefaultFolder(olFolderInbox)
    Set BoxAbc = Inbox.Folders("BoiteABC")
    Dim Mi As MailItem
    For Each Mi In Inbox.Items 'DossierConteneur.Items'
       If Left(Mi.Subject, 9) = "ChaineABC" Then
       Mi.Move BoxAbc
       End If
    Next <== ERREUR montree par le debugger
End Sub
mikygee est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2006, 12h03   #6
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 854
Points : 16 854
Envoyer un message via Skype™ à bbil
bizarre..? et l'erreur intervient dés le premier passage dans la boucle FOR ..?
rajoute la ligne debug.print suivante.... histoire de voir...

Code :
1
2
3
4
  For Each Mi In Inbox.Items 'DossierConteneur.Items'
      Debug.print Mi.Subject 
      If Left(Mi.Subject, 9) = "ChaineABC" Then
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2006, 16h13   #7
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 18
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2006
Messages : 18
Points : 10
Points : 10
J'ai bien rajouté la ligne que tu m'as donné
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
Sub Tri()
    Dim ns As NameSpace
    Dim Inbox As MAPIFolder
    Dim BoxAbc As MAPIFolder
    Set ns = GetNamespace("MAPI")
    Set Inbox = ns.GetDefaultFolder(olFolderInbox)
    Set BoxAbc = Inbox.Folders("BoiteABC")
    Dim Mi As MailItem
    For Each Mi In Inbox.Items 'DossierConteneur.Items'
       Debug.Print Mi.Subject
       If Left(Mi.Subject, 9) = "ChaineABC" Then
       Mi.Move BoxAbc
       End If
    Next
End Sub
Oulook reagit exactement de la meme manière, je n'ai vu nul par ou observer la sortie ecran du debug.
mikygee est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2006, 16h36   #8
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 854
Points : 16 854
Envoyer un message via Skype™ à bbil
Citation:
Envoyé par mikygee
... je n'ai vu nul par ou observer la sortie ecran du debug.
[FAQ][VB..] A quoi sert "debug.print"
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2006, 18h12   #9
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 18
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2006
Messages : 18
Points : 10
Points : 10
Merci pour tes précisions à propos de la fenetre d'execution.
Celle-ci m'a affiché la liste de tous les sujets des mails de ma boite de récéption.

NB: J'ai d'autres sous dossiers dans ma boite de reception autre que BoiteABC, cela pourrait-il etre la cause de l'erreur ?
mikygee est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2006, 18h23   #10
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 854
Points : 16 854
Envoyer un message via Skype™ à bbil
essai en modifiant la ligne :

en mettant le type en commentaire .. au cas ou la collections .items contiendrai autre chose que des "MailItem"
bbil 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 18h26.


 
 
 
 
Partenaires

Hébergement Web