cs_juha
Messages postés12Date d'inscriptionjeudi 4 octobre 2007StatutMembreDernière intervention22 octobre 2007
-
4 oct. 2007 à 15:50
cs_juha
Messages postés12Date d'inscriptionjeudi 4 octobre 2007StatutMembreDernière intervention22 octobre 2007
-
11 oct. 2007 à 13:10
Bonjour,
Ce que j'aimerais faire c'est déplacer les messages de un dossier "NON-LU" si il ne sont pas encore lu et dès qu'ils le sont les redéplacer dans un autre dossier "LU".
cs_juha
Messages postés12Date d'inscriptionjeudi 4 octobre 2007StatutMembreDernière intervention22 octobre 2007 8 oct. 2007 à 14:35
Bonjour,
Voici mon code, ce qui ne fonctionne pas, il traite seulement 2 ou 3 e-mail et ensuite il quitte la boucle.
Je ne comprends pas trop d'ou vient le problème.
Merci de votre aide.
Private Sub Application_NewMail()
Dim myOlApp As Outlook.Application
Dim myNameSpace As Outlook.NameSpace
Dim myFolder As Outlook.MAPIFolder
Dim myFolderNnLU As Outlook.MAPIFolder
Dim myFolderLU As Outlook.MAPIFolder
Dim myItem As Outlook.MailItem
Dim myItem2 As Outlook.MailItem
Dim ns As NameSpace
Dim inBox As MAPIFolder
Set myOlApp = CreateObject("Outlook.Application")
Set myNameSpace = myOlApp.GetNamespace("MAPI")
'Sélectionne boîtes de réception OK.
Set ns = GetNamespace("MAPI")
Set inBox = ns.Folders("Boîte aux lettres - Cattin Joël")
Set myFolder = inBox.Folders("Boîte de réception") ' Enter correct subfolder name.
'Répertoire "Non-LU"
Set myFolderNnLU = myFolder.Folders("Non-LU")
'Répertoire "LU"
Set myFolderLU = myFolder.Folders("LU")
'Déplacer les messages du répertoire "Boîtes de réception" vers le répertoire "LU / NON-LU"
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 9 oct. 2007 à 11:25
As-tu essayé en pas-à-pas (F8) ?
Aussi, après le début de boucle (ex: For Each myItem In myFolder.items), tu pourrais mettre un message pour voir combien de "mail" sont trouvés et voir s'il n'y aurait pas un problème là.
Quelque chose comme ...
Msgbox myFolder.items.Count
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 9 oct. 2007 à 11:29
Une autre idée me vient...
Comme tu utilises For Each ... qui comptabilise tous les fichiers et qu'ensuite, tu les déplaces, ça peut peut-être causer un problème. Le même genre de problème que lorsque tu supprimes des lignes d'une liste en commençant par le début...
Il serait peut-être préférable que tu utilises une boucle du genre
For I = MyFolder.Items.Count To 1 step - 1
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 9 oct. 2007 à 23:56
Tu les utilises aux mêmes endroits que tes For Each. En fait, tu les remplaces tout simplement.
Il faudrait par contre vérifier si c'est ....Count ou ....Count - 1
Je n'ai pas testé, mais quelquefois il faut utiliser des boucles de 1 à Count (ou inverse) et d'autres fois de 0 à Count - 1
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 11 oct. 2007 à 11:34
Dans ta boucle originale, tu mettais
For Each myItem In myFolder.items
myItem devient donc un item de la collection "myFolder.items"
Je pense donc, sans tester, que tu dois spécifier ce qu'est myItem dans la nouvelle boucle... quelque chose comme:
For I = myFolder.Items.Count To 1 Step -1
set myItem = myFolder.Items(I)
If myItem.UnRead = True Then
....