j'ai déjà posté ce problème dans le forum VBA outlook, mais visiblement, il n'y a personne en +, mon problème n'a pas trop de rapport avec Outlook (2003) finalement !
voilà ce qui m'amène ici : j'ai un petit souci avec le code ci dessous, visiblement il s'agit d'une boucle infinie mais je ne vois pas bien où est le problème.
Voici les symptomes :
- j'ai remarqué que sur For Next, il parcourt tous les mails de ma boîte, trouve mon mail, fait ce qu'il a à faire (enregistrer les pièces jointes, puis déplacer le mail) , passe au mail suivant, etc...
Mais lorsqu'il a finit de parcourir les X messages de ma boite de réception, au lieu de s'arrêter, il recommence la procédure... et j'arrive à ce message d'erreur après X boucles :
- par contre, si le mail n'est pas présent dans la boite de réception, je n'ai pas d'erreur ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3erreur d'exécution 123456789... Index de la matrice en dehors des limites
Voici le code, merci à vous pour votre aide :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 'procedure d'enregistrement des pieces jointes du mail Enrichissement téléphonique Sub savePJ_enrichsmt_tel() Dim MonApply As Outlook.Application Dim MonMail As Outlook.MailItem Dim MonNSpace As Outlook.NameSpace Dim FldDossier As Outlook.MAPIFolder Dim DestFldDossier As Outlook.MAPIFolder Set MonApply = Outlook.Application Set MonNSpace = MonApply.GetNamespace("MAPI") Set FldDossier = MonNSpace.GetDefaultFolder(olFolderInbox) Set DestFldDossier = FldDossier.Folders("uace000") 'Boucle afin de parcourir l'ensemble des E-mails présents dans le dossier Boîte de réception For i = 1 To FldDossier.Items.Count 'instancie le mail suivant la valeur de la boucle Set MonMail = FldDossier.Items(i) 'Test sur le sujet si égale à Invitation If InStr(1, MonMail.Subject, "FICHTEL_") > 0 Then For Each PJ In MonMail.Attachments PJ.SaveAsFile "T:\Transferts\Enrichismt_telephone\" & PJ.FileName Next MonMail.Move DestFldDossier 'MonMail.Delete End If Next i 'Vide des instances Set MonApply = Nothing Set MonNSpace = Nothing Set FldDossier = Nothing Set MonMail = Nothing Set DestFldDossier = Nothing End Sub
Partager