Tri items outlook sur la date [Résolu]

olive67 4 Messages postés mercredi 1 mars 2006Date d'inscription 10 avril 2006 Dernière intervention - 1 avril 2006 à 23:13 - Dernière réponse : rvblog 794 Messages postés vendredi 4 mars 2005Date d'inscription 12 juin 2012 Dernière intervention
- 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
Afficher la suite 

7 réponses

rvblog 794 Messages postés vendredi 4 mars 2005Date d'inscription 12 juin 2012 Dernière intervention - 6 avril 2006 à 23:15
+3
Utile
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>
Cette réponse vous a-t-elle aidé ?  
olive67 4 Messages postés mercredi 1 mars 2006Date d'inscription 10 avril 2006 Dernière intervention - 10 avril 2006 à 11:40
+1
Utile
super, ca fonctionne. J'ai pu enfin terminer ma fonction
merci beaucoup pour ton aide

Oliv
rvblog 794 Messages postés vendredi 4 mars 2005Date d'inscription 12 juin 2012 Dernière intervention - 4 avril 2006 à 13:31
0
Utile
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>
olive67 4 Messages postés mercredi 1 mars 2006Date d'inscription 10 avril 2006 Dernière intervention - 4 avril 2006 à 13:57
0
Utile
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?
rvblog 794 Messages postés vendredi 4 mars 2005Date d'inscription 12 juin 2012 Dernière intervention - 4 avril 2006 à 14:14
0
Utile
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>
olive67 4 Messages postés mercredi 1 mars 2006Date d'inscription 10 avril 2006 Dernière intervention - 6 avril 2006 à 11:33
0
Utile
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
rvblog 794 Messages postés vendredi 4 mars 2005Date d'inscription 12 juin 2012 Dernière intervention - 10 avril 2006 à 12:08
0
Utile
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>

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.