Soyez le premier à donner votre avis sur cette source.
Snippet vu 18 373 fois - Téléchargée 45 fois
Option Compare Binary Option Explicit Public Sub messagerie() Dim objOutlook As outlook.Application 'représente l'application outlook Dim objItems As outlook.Items 'représente un objet outlook Dim objMailItem As MailItem 'représente un mail Dim PJ As 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 Set objOutlook = New outlook.Application 'objOutlook devient l'application Set objItems = objOutlook.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Items 'objItems représente la boîte de reception 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:\sondage\" & 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 End Sub
2 janv. 2009 à 15:59
26 août 2008 à 16:41
Pour ma part, j'ai un souci ligne 28....
"Erreur type 13" Incompatibilité de type...
Je suis sous Outlook 2007 et je tiens aussi à préciser que ce code à fonctionné avant même après quelques modifs de mon cru.(pas de changement au niveau de cette ligne ou des déclarations)..
Any idea?
29 juin 2006 à 09:37
24 janv. 2005 à 11:55
Quel bonheur que de trouver cette source!
Débutant en vb script j'avais pour besoin de scanner ma boite outlook afin de récupérer les pieces jointes (3 PJ, fichiers textes à insérer dans une base oracle) de mails dont l'objet reste le même.
Ton code m'a rendu un grand service et m'a fait gagner un temps précieux
Ce petit commentaire pour un grand merci.
Bonne continuation!
3 févr. 2004 à 00:44
Tu as certainement oublier d'aller dans le menu Outils>References pour cocher la case Microsoft Office 10.0 Object Library.
Sinon colle le code dans un nouveau module sous vba dans outlook (touches ALT+F11).
Voila sinon ce code m'a fait gagner un temps précieux en recherche. Donc lot of thanks !!!!
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.