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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| Set objOutlook = CreateObject("outlook.Application") 'représente l'application outlook
'Set objItems = CreateObject("outlook.Items") 'représente un objet outlook
'Set objMailItem = CreateObject("MailItem") 'représente un mail
'Set PJ = CreateObject("Attachment") 'représente un fichier joint
'Dim mailIndex As Integer 'représente le numéro d'indexation des mails
'Dim cpt As Integer 'compteur de mails traités
'Dim msg As String 'message donnant le nombre de mail traité
'Dim reponse 'affichage de msg
cpt = 0 'initialisation
objOutlook.Open
'Set objOutlook = New outlook.Application 'objOutlook devient l'application
Set objItems = objOutlook.GetNamespace("MAPI").GetDefaultFolder(6).Items
'objItems représente la boîte de reception
'Set objItems = objOutlook.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Items
For mailIndex = 1 To objItems.Count 'pour index de mail allant de 1 au nb total de mail
Set objMailItem = objItems.Item(mailIndex) 'objMailItem devient le mail indexé par mailIndex
'If objMailItem.Subject Like "Formulaire posté avec Microsoft Internet Explorer." Then
'si le sujet du mail est "Form..." alors
Set PJ = objMailItem.Attachments.Item(1) 'PJ reçoit la 1ere pîèce jointe de ce mail
'et la seule mais objMailItem.Attachemennts est
'l'ensemble de ses pièces jointes
'Il faut donc préciser le numéro de celui qui nous
'interresse
PJ.SaveAsFile "c:\PJMAIL\" & PJ.DisplayName
'On sauve la pièce jointe dans le dossier sondage
'le fichier s'appelle comme la pièce jointe
'Call enregistrement 'appel de la fonction enregistrement non présente
'(faite moi savoir si vous le voulez (c'est du traitement
'de chaine de caratères)
'objMailItem.Delete 'destuction du mail
'qui entraine des changement dans l'indexation
'des mails
Set objItems = objOutlook.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Items
'on recommence l'indexation
mailIndex = 0 'on remet l'index à 0 (cette instruction ne semble pas
'fonctionner ! ????
cpt = cpt + 1 'et on incrémente le nombre de mail traité
'End If
Select Case mailIndex 'ces instructions servent à résoudre le problème
Case objItems.Count: Exit For 'de la réinitialisation de l'index (nécessaire après le delete !)
End Select 'Si l'index est égale au nombre de mail, il faut sortir.
'Si ces lignes ne sont pas écrites, l'index est incrémenté
'et devient donc > à la valeur d'arrêt.
'le programme continue la boucle for
'entrainant des bugs
Next
msg = cpt & " mail(s) traité(s)" 'enregistrement du message
reponse = MsgBox(msg, 0) 'affichage |
Partager