Voil=E0 je reviens sur ma fonction de r=E9cup=E9ration de pi=E8ces=20
jointes. Cette fois-ci je souhaiterais renommer les pi=E8ces=20
jointes qui ont le m=EAme nom. Voici ce que j'ai utilis=E9:
Function SaveAttachments(strPath As String)
Dim OlApp As New Outlook.Application
Dim OlMAPI As Outlook.NameSpace
Dim OlItems As Outlook.Items
Dim OlItem As Outlook.MailItem
=20
Dim strAttachment As String
Dim NbAttachments As Integer
Dim i As Integer
Dim NbEmails As Integer
=20
Set OlMAPI =3D OlApp.GetNamespace("MAPI")
Set OlItems =3D OlMAPI.PickFolder.Items
=20
For Each OlItem In OlItems
If OlItem.ReceivedTime > Date & " 00:00" Then
NbAttachments =3D OlItem.Attachments.Count
i =3D 1
=20
Do While i <=3D NbAttachments
strAttachment =3D OlItem.Attachments.Item(i).FileName
If i > 1 Then
If OlItem.Attachments.Item(i - 1).FileName =3D=20
OlItem.Attachments.Item(i).FileName Then
OlItem.Attachments.Item(i).SaveAsFile strPath & i=20
& strAttachment
Else
OlItem.Attachments.Item(i).SaveAsFile strPath &=20
strAttachment
End If
End If
=20
i =3D i + 1
Loop
End If
Next OlItem
MsgBox "Copie des CV termin=E9e"
=20
Set OlItem =3D Nothing
Set OlItems =3D Nothing
Set OlMAPI =3D Nothing
Set OlApp =3D Nothing
End Function
Le probl=E8me est que les pi=E8ces jointes identiques ne sont=20
pas renomm=E9e et donc sont =E9cras=E9es au fur et mesure. Il ne=20
reste donc que le derni=E8re. O=F9 est le probl=E8me ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Raymond
Bonsoir.
A mon avis ton test de : If OlItem.Attachments.Item(i - 1).FileName OlItem.Attachments.Item(i).FileName Then n'est pas suffisant pour être sûr de ne pas avoir de doublons. en général quand on sauvegarde les pièces jointes de la boîte de réception, on ne teste pas le doublon en tant que nom de fichier, mais on crée un nouveau nom comme tu le fais avec la date yyyymmdd & "_" & indice & "_" & nom de la pièce
-- @+ Raymond Access MVP. http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/charte.htm pour une meilleure efficacité de tes interventions sur MPFA.
"Florent" a écrit dans le message de news:080901c3915f$be413150$ Bonjour,
Voilà je reviens sur ma fonction de récupération de pièces jointes. Cette fois-ci je souhaiterais renommer les pièces jointes qui ont le même nom. Voici ce que j'ai utilisé:
Function SaveAttachments(strPath As String)
Dim OlApp As New Outlook.Application Dim OlMAPI As Outlook.NameSpace Dim OlItems As Outlook.Items Dim OlItem As Outlook.MailItem
Dim strAttachment As String Dim NbAttachments As Integer Dim i As Integer Dim NbEmails As Integer
Set OlMAPI = OlApp.GetNamespace("MAPI") Set OlItems = OlMAPI.PickFolder.Items
For Each OlItem In OlItems If OlItem.ReceivedTime > Date & " 00:00" Then NbAttachments = OlItem.Attachments.Count i = 1
Do While i <= NbAttachments strAttachment = OlItem.Attachments.Item(i).FileName If i > 1 Then If OlItem.Attachments.Item(i - 1).FileName OlItem.Attachments.Item(i).FileName Then OlItem.Attachments.Item(i).SaveAsFile strPath & i & strAttachment Else OlItem.Attachments.Item(i).SaveAsFile strPath & strAttachment End If End If
i = i + 1 Loop End If Next OlItem
MsgBox "Copie des CV terminée"
Set OlItem = Nothing Set OlItems = Nothing Set OlMAPI = Nothing Set OlApp = Nothing
End Function
Le problème est que les pièces jointes identiques ne sont pas renommée et donc sont écrasées au fur et mesure. Il ne reste donc que le dernière. Où est le problème ?
Bonsoir.
A mon avis ton test de :
If OlItem.Attachments.Item(i - 1).FileName OlItem.Attachments.Item(i).FileName Then
n'est pas suffisant pour être sûr de ne pas avoir de doublons.
en général quand on sauvegarde les pièces jointes de la boîte de réception,
on ne teste pas le doublon en tant que nom de fichier, mais on crée un
nouveau nom comme tu le fais avec la date yyyymmdd & "_" & indice & "_" &
nom de la pièce
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.
"Florent" <a@b.com> a écrit dans le message de
news:080901c3915f$be413150$a401280a@phx.gbl...
Bonjour,
Voilà je reviens sur ma fonction de récupération de pièces
jointes. Cette fois-ci je souhaiterais renommer les pièces
jointes qui ont le même nom. Voici ce que j'ai utilisé:
Function SaveAttachments(strPath As String)
Dim OlApp As New Outlook.Application
Dim OlMAPI As Outlook.NameSpace
Dim OlItems As Outlook.Items
Dim OlItem As Outlook.MailItem
Dim strAttachment As String
Dim NbAttachments As Integer
Dim i As Integer
Dim NbEmails As Integer
Set OlMAPI = OlApp.GetNamespace("MAPI")
Set OlItems = OlMAPI.PickFolder.Items
For Each OlItem In OlItems
If OlItem.ReceivedTime > Date & " 00:00" Then
NbAttachments = OlItem.Attachments.Count
i = 1
Do While i <= NbAttachments
strAttachment = OlItem.Attachments.Item(i).FileName
If i > 1 Then
If OlItem.Attachments.Item(i - 1).FileName OlItem.Attachments.Item(i).FileName Then
OlItem.Attachments.Item(i).SaveAsFile strPath & i
& strAttachment
Else
OlItem.Attachments.Item(i).SaveAsFile strPath &
strAttachment
End If
End If
i = i + 1
Loop
End If
Next OlItem
MsgBox "Copie des CV terminée"
Set OlItem = Nothing
Set OlItems = Nothing
Set OlMAPI = Nothing
Set OlApp = Nothing
End Function
Le problème est que les pièces jointes identiques ne sont
pas renommée et donc sont écrasées au fur et mesure. Il ne
reste donc que le dernière. Où est le problème ?
A mon avis ton test de : If OlItem.Attachments.Item(i - 1).FileName OlItem.Attachments.Item(i).FileName Then n'est pas suffisant pour être sûr de ne pas avoir de doublons. en général quand on sauvegarde les pièces jointes de la boîte de réception, on ne teste pas le doublon en tant que nom de fichier, mais on crée un nouveau nom comme tu le fais avec la date yyyymmdd & "_" & indice & "_" & nom de la pièce
-- @+ Raymond Access MVP. http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/charte.htm pour une meilleure efficacité de tes interventions sur MPFA.
"Florent" a écrit dans le message de news:080901c3915f$be413150$ Bonjour,
Voilà je reviens sur ma fonction de récupération de pièces jointes. Cette fois-ci je souhaiterais renommer les pièces jointes qui ont le même nom. Voici ce que j'ai utilisé:
Function SaveAttachments(strPath As String)
Dim OlApp As New Outlook.Application Dim OlMAPI As Outlook.NameSpace Dim OlItems As Outlook.Items Dim OlItem As Outlook.MailItem
Dim strAttachment As String Dim NbAttachments As Integer Dim i As Integer Dim NbEmails As Integer
Set OlMAPI = OlApp.GetNamespace("MAPI") Set OlItems = OlMAPI.PickFolder.Items
For Each OlItem In OlItems If OlItem.ReceivedTime > Date & " 00:00" Then NbAttachments = OlItem.Attachments.Count i = 1
Do While i <= NbAttachments strAttachment = OlItem.Attachments.Item(i).FileName If i > 1 Then If OlItem.Attachments.Item(i - 1).FileName OlItem.Attachments.Item(i).FileName Then OlItem.Attachments.Item(i).SaveAsFile strPath & i & strAttachment Else OlItem.Attachments.Item(i).SaveAsFile strPath & strAttachment End If End If
i = i + 1 Loop End If Next OlItem
MsgBox "Copie des CV terminée"
Set OlItem = Nothing Set OlItems = Nothing Set OlMAPI = Nothing Set OlApp = Nothing
End Function
Le problème est que les pièces jointes identiques ne sont pas renommée et donc sont écrasées au fur et mesure. Il ne reste donc que le dernière. Où est le problème ?
Florent
Oui effectivement, je pense également que c'est mieux de renommer directement les pièces.
Merci
-----Message d'origine----- Bonsoir.
A mon avis ton test de : If OlItem.Attachments.Item(i - 1).FileName = OlItem.Attachments.Item(i).FileName Then n'est pas suffisant pour être sûr de ne pas avoir de doublons.
en général quand on sauvegarde les pièces jointes de la boîte de réception,
on ne teste pas le doublon en tant que nom de fichier, mais on crée un
nouveau nom comme tu le fais avec la date yyyymmdd & "_" & indice & "_" &
nom de la pièce
-- @+ Raymond Access MVP. http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/charte.htm pour une meilleure efficacité de tes interventions sur MPFA.
"Florent" a écrit dans le message de news:080901c3915f$be413150$ Bonjour,
Voilà je reviens sur ma fonction de récupération de pièces jointes. Cette fois-ci je souhaiterais renommer les pièces jointes qui ont le même nom. Voici ce que j'ai utilisé:
Function SaveAttachments(strPath As String)
Dim OlApp As New Outlook.Application Dim OlMAPI As Outlook.NameSpace Dim OlItems As Outlook.Items Dim OlItem As Outlook.MailItem
Dim strAttachment As String Dim NbAttachments As Integer Dim i As Integer Dim NbEmails As Integer
Set OlMAPI = OlApp.GetNamespace("MAPI") Set OlItems = OlMAPI.PickFolder.Items
For Each OlItem In OlItems If OlItem.ReceivedTime > Date & " 00:00" Then NbAttachments = OlItem.Attachments.Count i = 1
Do While i <= NbAttachments strAttachment = OlItem.Attachments.Item (i).FileName
If i > 1 Then If OlItem.Attachments.Item(i - 1).FileName = OlItem.Attachments.Item(i).FileName Then OlItem.Attachments.Item(i).SaveAsFile strPath & i & strAttachment Else OlItem.Attachments.Item(i).SaveAsFile strPath & strAttachment End If End If
i = i + 1 Loop End If Next OlItem
MsgBox "Copie des CV terminée"
Set OlItem = Nothing Set OlItems = Nothing Set OlMAPI = Nothing Set OlApp = Nothing
End Function
Le problème est que les pièces jointes identiques ne sont pas renommée et donc sont écrasées au fur et mesure. Il ne reste donc que le dernière. Où est le problème ?
.
Oui effectivement, je pense également que c'est mieux de
renommer directement les pièces.
Merci
-----Message d'origine-----
Bonsoir.
A mon avis ton test de :
If OlItem.Attachments.Item(i - 1).FileName =
OlItem.Attachments.Item(i).FileName Then
n'est pas suffisant pour être sûr de ne pas avoir de
doublons.
en général quand on sauvegarde les pièces jointes de la
boîte de réception,
on ne teste pas le doublon en tant que nom de fichier,
mais on crée un
nouveau nom comme tu le fais avec la date yyyymmdd & "_"
& indice & "_" &
nom de la pièce
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.
"Florent" <a@b.com> a écrit dans le message de
news:080901c3915f$be413150$a401280a@phx.gbl...
Bonjour,
Voilà je reviens sur ma fonction de récupération de pièces
jointes. Cette fois-ci je souhaiterais renommer les pièces
jointes qui ont le même nom. Voici ce que j'ai utilisé:
Function SaveAttachments(strPath As String)
Dim OlApp As New Outlook.Application
Dim OlMAPI As Outlook.NameSpace
Dim OlItems As Outlook.Items
Dim OlItem As Outlook.MailItem
Dim strAttachment As String
Dim NbAttachments As Integer
Dim i As Integer
Dim NbEmails As Integer
Set OlMAPI = OlApp.GetNamespace("MAPI")
Set OlItems = OlMAPI.PickFolder.Items
For Each OlItem In OlItems
If OlItem.ReceivedTime > Date & " 00:00" Then
NbAttachments = OlItem.Attachments.Count
i = 1
Do While i <= NbAttachments
strAttachment = OlItem.Attachments.Item
(i).FileName
If i > 1 Then
If OlItem.Attachments.Item(i - 1).FileName =
OlItem.Attachments.Item(i).FileName Then
OlItem.Attachments.Item(i).SaveAsFile strPath & i
& strAttachment
Else
OlItem.Attachments.Item(i).SaveAsFile strPath &
strAttachment
End If
End If
i = i + 1
Loop
End If
Next OlItem
MsgBox "Copie des CV terminée"
Set OlItem = Nothing
Set OlItems = Nothing
Set OlMAPI = Nothing
Set OlApp = Nothing
End Function
Le problème est que les pièces jointes identiques ne sont
pas renommée et donc sont écrasées au fur et mesure. Il ne
reste donc que le dernière. Où est le problème ?
Oui effectivement, je pense également que c'est mieux de renommer directement les pièces.
Merci
-----Message d'origine----- Bonsoir.
A mon avis ton test de : If OlItem.Attachments.Item(i - 1).FileName = OlItem.Attachments.Item(i).FileName Then n'est pas suffisant pour être sûr de ne pas avoir de doublons.
en général quand on sauvegarde les pièces jointes de la boîte de réception,
on ne teste pas le doublon en tant que nom de fichier, mais on crée un
nouveau nom comme tu le fais avec la date yyyymmdd & "_" & indice & "_" &
nom de la pièce
-- @+ Raymond Access MVP. http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/charte.htm pour une meilleure efficacité de tes interventions sur MPFA.
"Florent" a écrit dans le message de news:080901c3915f$be413150$ Bonjour,
Voilà je reviens sur ma fonction de récupération de pièces jointes. Cette fois-ci je souhaiterais renommer les pièces jointes qui ont le même nom. Voici ce que j'ai utilisé:
Function SaveAttachments(strPath As String)
Dim OlApp As New Outlook.Application Dim OlMAPI As Outlook.NameSpace Dim OlItems As Outlook.Items Dim OlItem As Outlook.MailItem
Dim strAttachment As String Dim NbAttachments As Integer Dim i As Integer Dim NbEmails As Integer
Set OlMAPI = OlApp.GetNamespace("MAPI") Set OlItems = OlMAPI.PickFolder.Items
For Each OlItem In OlItems If OlItem.ReceivedTime > Date & " 00:00" Then NbAttachments = OlItem.Attachments.Count i = 1
Do While i <= NbAttachments strAttachment = OlItem.Attachments.Item (i).FileName
If i > 1 Then If OlItem.Attachments.Item(i - 1).FileName = OlItem.Attachments.Item(i).FileName Then OlItem.Attachments.Item(i).SaveAsFile strPath & i & strAttachment Else OlItem.Attachments.Item(i).SaveAsFile strPath & strAttachment End If End If
i = i + 1 Loop End If Next OlItem
MsgBox "Copie des CV terminée"
Set OlItem = Nothing Set OlItems = Nothing Set OlMAPI = Nothing Set OlApp = Nothing
End Function
Le problème est que les pièces jointes identiques ne sont pas renommée et donc sont écrasées au fur et mesure. Il ne reste donc que le dernière. Où est le problème ?