gfa a écrit :
Ben en fait si j'ai à peu près compris, ce que tu désires faire c'est de scanner la Inbox pour repérer les mails venant d'un domaine bien précis c'est juste?
Alors si c'est ça, il te faut faire une boucle For avec comme borne max items.count - 1 si l'indice des items commence à 0 (ce qui est sûr à 90%).
Mais bon, si tu fais tout ça pour ensuite déplacer des e-mails dans un répertoire de Outlook, tu ferais mieux d'utiliser l'assistant Gestion des messages du menu Outils d'Outlook 
|
aaah si c'etait que ca... je n'embeterai personne
en fait ce que je veux c'est que le code sauve le fichier attache de certains messages (provenant de gmail ou autre) dans un dossier windows sur un serveur en le "taguant" d'une date, pour ensuite le mettre a la poubelle en faisant comme si on l'avait lu.
Tout marche bien en fait, mais je galere au niveau des criteres de selection du mail: je ne peux pas le faire avec SenderName (trop precis), les keywords [If InStr(Item.Subject, "blablabla" ) > 0 Then] ne sont pas assez exhaustifs, l'ideal dans mon cas est le domaine de l'adresse email.
Voila le code en entier qui marche bien avec les keywords, on sait jamais cela pourra peut etre t'etre utile un jour!
Sub DAS()
On Error GoTo DAS_err
Dim ns As NameSpace
Dim Inbox As MAPIFolder
Dim Mail As MailItem
Dim Item As Object
Dim Atmt As Attachment
Dim FileName As String
Dim i As Integer
Dim DAS As MAPIFolder
Set ns = GetNamespace("MAPI" )
Set Inbox = ns.GetDefaultFolder(olFolderInbox)
Set DAS = Inbox.Folders("DAS" )
i = 0
'-----------------------------------------------------------------------------------
'-----------------------------------------------------------------------------------
For Each Item In DAS.Items
For Each Atmt In Item.Attachments
If InStr(Item.Subject, "Keyword" ) > 0 Then
FileName = "X:\Folder\" & _
Format(Item.CreationTime, "yymmdd_" ) & Atmt.FileName
Atmt.SaveAsFile FileName
i = i + 1
Item.UnRead = False
Item.Delete
End If
Next Atmt
Next Item
'-----------------------------------------------------------------------------------
'-----------------------------------------------------------------------------------
DAS_exit:
Set Atmt = Nothing
Set Item = Nothing
Set ns = Nothing
Exit Sub
'-----------------------------------------------------------------------------------
DAS_err:
MsgBox "An unexpected error has occurred." _
& vbCrLf & "Please note and report the following information." _
& vbCrLf & "Macro Name: DAS" _
& vbCrLf & "Error Number: " & Err.Number _
& vbCrLf & "Error Description: " & Err.Description _
, vbCritical, "Error!"
Resume DAS_exit
End Sub
Tu penses que je devrais mettre quoi alors pour Set Mail?
[Set Mail = Inbox.Items("-1" )] ?
Je ne suis pas tres familier avec les boucles...