Outlook: pieces jointes partiellement sauvegardees [VBA] - VB/VBA/VBS - Programmation
Marsh Posté le 26-05-2005 à 06:19:55
llllllllll a écrit : Mais si je le met plus tard, par exemple apres le "Next Atmt" ca ne marche pas... |
Je ne connais pas ce message d'erreur...
Comment veux-tu qu'on t'aide si tu ne nous dis pas ce qui se passe?
Marsh Posté le 26-05-2005 à 09:33:48
AlainTech a écrit : Je ne connais pas ce message d'erreur... |
En fait il n'y a pas de message d'erreur, quand je met
Item.UnRead = False
Item.Delete
apres Next Atmt. "Ca marche" mais ca ne fait pas ce que je veux: le code efface chaque message du repertoire DAS
Marsh Posté le 26-05-2005 à 10:13:56
Ben oui, c'est tout à fait logique puisque tu l'appliques à tous les messages.
Utilise une booléenne que tu positionnes à faux avant "For Each Atmt In Item.Attachments".
Tu la positionnes à vrai après "If InStr(Item.Subject, "ABCD" ) > 0 Then"
Et enfin, tu la testes après "Next Atmt" et tu delete si vrai.
Voilà.
Marsh Posté le 26-05-2005 à 10:38:15
AlainTech,
Merci pour ta reponse,
Ca devrait donner ca:
For Each Item In DAS.Items
For Each Atmt In Item.Attachments = False
If InStr(Item.Subject, "ABCD" ) > 0 Then = True
FileName = "\\Server\ABCD\" & _
Format(Item.CreationTime, "yymmdd_" ) & Atmt.FileName
Atmt.SaveAsFile FileName
i = i + 1
End If
Next Atmt
IF True then
Item.UnRead = False
Item.Delete
End if
Next Item
? Desole je suis tres debutant en VBA...
Marsh Posté le 26-05-2005 à 15:48:20
Non, ça devrait plutôt donner ça:
Dim bHasAttach As Boolean |
Edit --> Zut, j'avais laissé un = False après For Each. Je l'ai supprimé
Marsh Posté le 26-05-2005 à 16:18:56
Merci. Je comprends mieux maintenant (et en plus ca marche donc c'est formidable!)
Marsh Posté le 25-05-2005 à 17:28:14
Bonjour!
Quand un message arrive dans le repertoire Outlook DAS, je lance la macro pour qu'elle sauve toutes les pieces jointes des e-mails avec "ABCD" ou "EFGH" dans le sujet sur le serveur (avec une date au debut). Ensuite les e-mails sont marques lus et effaces. Le probleme est que seulement UNE piece jointe est enregistree
Apparemment, cela viens de la position du :
Item.UnRead = False
Item.Delete
Mais si je le met plus tard, par exemple apres le "Next Atmt" ca ne marche pas...
Vous auriez pas une idee?
Voila le code:
-------------------------------------------------------
Sub DASFJ()
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
'-----------------------------------------------------------------------------------
'-----------------------------------------------------------------------------------
'-----------------------------------------------------------------------------------
'-----------------------------------------------------------------------------------
'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
'-----------------------------------------------------------------------------------
For Each Item In DAS.Items
For Each Atmt In Item.Attachments
If InStr(Item.Subject, "ABCD" ) > 0 Then
FileName = "\\Server\ABCD\" & _
Format(Item.CreationTime, "yymmdd_" ) & Atmt.FileName
Atmt.SaveAsFile FileName
i = i + 1
Item.UnRead = False
Item.Delete
End If
Next Atmt
Next Item
'-----------------------------------------------------------------------------------
For Each Item In DAS.Items
For Each Atmt In Item.Attachments
If InStr(Item.Subject, "EFGH" ) > 0 Then
FileName = "\\Server\EFGH" & _
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: GetAttachments" _
& vbCrLf & "Error Number: " & Err.Number _
& vbCrLf & "Error Description: " & Err.Description _
, vbCritical, "Error!"
Resume DAS_exit
End Sub