Tri items outlook sur la date

Résolu
olive67 Messages postés 4 Date d'inscription mercredi 1 mars 2006 Statut Membre Dernière intervention 10 avril 2006 - 1 avril 2006 à 23:13
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 - 10 avril 2006 à 12:08
bonsoir,

En VB6, je veux parcourir une boite de reception parmie plusieurs (outllook 2002, xp sp2) et je voudrais que les items soient triés par date.

Pour parcourir la bonne boite je n'ai pas de pb, mais je n'arrive pas à trier en faisant :
myOlFolder.Items.Sort "ReceivedTime", true (myOlFolder est un objet MAPIFolder)
J'ai essayé avec : myOlFolder.Items.Sort "[ReceivedTime]", pareil ca ne marche pas. J'ai essayé avec d'autres propriétés comme Subject, TO, idem...

Comment faire pour trier les items sur la date de réception?
Merci

7 réponses

rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
6 avril 2006 à 23:15
Salut oliv,

je sais que ce que je vais te dire après va te paraître bizarre, donc je commence par te dire quelque chose de normal :

En écrivant ce que tu écris, j'observe le même phénomène que toi.

Maintenant le bizarre :

'Rajoutes ces 2 déclarations
Dim miTemp As Outlook.MailItem
Dim misTemp As Outlook.Items

'Modifie le tri qui ne marche pas
Set misTemp = myOlFolder.Items
misTemp.Sort "[ReceivedTime]", True 'je pense, pour avoir aussi essayé les autres tris,
'qu'on ne peut pas trier directement sur le
'le folder, je sais que c'est une référence qu'on
'a mais elle ne le sait peut-être pas :)
'et observes
For Each miTemp In misTemp
Debug.Print miTemp.ReceivedTime & " " & miTemp.Size
Next miTemp

ça ne s'invente pas!

PS : si la réponse te va comme un gant, accepte la réponse, ça plaira à ceux qui cherchent (parce que celle là! vraiment!)


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
3
olive67 Messages postés 4 Date d'inscription mercredi 1 mars 2006 Statut Membre Dernière intervention 10 avril 2006 1
10 avril 2006 à 11:40
super, ca fonctionne. J'ai pu enfin terminer ma fonction
merci beaucoup pour ton aide

Oliv
1
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
4 avril 2006 à 13:31
Salut Olive,

quand tu dis "mais je n'arrive pas à trier ", as-tu une erreur? ou simplement pas le résultat souhaité?

Il faut peut-être formater le champ!

à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
0
olive67 Messages postés 4 Date d'inscription mercredi 1 mars 2006 Statut Membre Dernière intervention 10 avril 2006 1
4 avril 2006 à 13:57
Bonjour rvblog et merci de m'avoir répondu

Non je n'ai pas d'erreur sur le tri avec myOlFolder.Items.Sort "ReceivedTime", true
J'ai remarqué que les items sont triés mais je n'arrive pas à forcer en ascending ou descending avec le deuxième paramètre du sort. Le plus curieux c'est que d'une BAL à l'autre le sort est soit ascending soit descending.

En attendant pour palier au pb je fais une comparaison de date entre le premier item et le dernier item pour déterminer l'ordre de ma boucle... mais ce n'est pas génial car ca provoque une erreur lorsque le premier item est un accusé de réception (erreur sur la propriété receivedtime)

Pourrais tu m'en dire plus sur le formatage du champ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
4 avril 2006 à 14:14
Re,

en fait, si tu tries sur des dates, il faut savoir si le Sort trie en fonction du type ou pas.
Que se passe-t-il quand tu tries des numériques (applique-t-il un tri numérique ou chaine de caractères)? s'il applique un tri numérique, il faut t'assurer alors que tes dates sont du bon type (c'est bête, mais je ne sais pas ce qu'il se passe dans le MAPIFolder).

autre point, tu utilises un contrôle spécialisé pour afficher (pour vérifier l'ordre de tri), ou c'est toi qui fait le boulot sur la collection?


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
0
olive67 Messages postés 4 Date d'inscription mercredi 1 mars 2006 Statut Membre Dernière intervention 10 avril 2006 1
6 avril 2006 à 11:33
Re,

non c'est moi qui fait le boulot sur la collection. Je fais une fonction de scan d'une BAL.

voici un extrait de la fonction :

Dim myOlNameSpace As outlook.Namespace
Dim myOlFolder As outlook.MAPIFolder
Dim nbmax, nbmin, nbpas, k As Integer

'connexion à outlook
Set myOlNameSpace = myOlApp.GetNamespace("MAPI")
'connexion boite de réception de la BAL
Set myOlFolder = myOlNameSpace.Folders(nomBoite).Folders(nomDossier)

'tri qui ne marche pas
myOlFolder.Items.Sort "ReceivedTime", True

'comparaison des dates pour parcourir les items en descending
If DateValue(myOlFolder.Items.Item(1).ReceivedTime) < DateValue(myOlFolder.Items.Item(myOlFolder.Items.Count).ReceivedTime) Then
nbmin = myOlFolder.Items.Count
nbmax = 1
nbpas = -1
Else
nbmin = 1
nbmax = myOlFolder.Items.Count
nbpas = 1
End If

'boucle de traitement
For k = nbmin To nbmax Step nbpas
'traitement
Next

En fait que j'applique le tri ou pas le résultat est le même, les items sont triés sur la date en ascending ou descending suivant la BAL. J'ai l'impression que le sort du MAPIFolder n'arrive pas à s'appliquer sur VB6. Mais lorsque je mets une proriété qui n'est pas connu de l'objet mailitem, le sort provoque quand meme une erreur.

@+
oliv
0
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
10 avril 2006 à 12:08
Salut Oliv,

je t'en prie, c'était un plaisir, et en plus, c'est "bénef" pour tout le monde !

à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
0
Rejoignez-nous