Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Outlook > VBA Outlook
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/12/2010, 15h01   #1
Invité régulier
 
Inscription : juin 2005
Messages : 55
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 55
Points : 7
Points : 7
Par défaut Récupérer piece jointe d'un mail lorsqu'il est reçu

Bonjour,

Je dois réaliser un script VBA qui doit sauvegardé la piece jointe d'un mail lorsqu'il est reçu dans outlook et le sauvegarder dans un répertoire du disque dur. Pour cela, je n'ai pas trouvé de script qui marchait, j'ai essayé de le faire mais rien n'y fait.

Merci d'avance
Shikam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 16h12   #2
Invité régulier
 
Inscription : juin 2005
Messages : 55
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 55
Points : 7
Points : 7
Code :
1
2
3
4
5
6
7
8
9
10
11
Set MonNameSpace = Application.GetNamespace("MAPI")
    Set MonDossier = MonNameSpace.GetDefaultFolder(olFolderInbox)
 
 
   last_messages = MonDossier.Items.Count
  Set myItem = MonDossier.Items(last_messages)
 
 
   Set myAttachement = myItem.Attachments(1)
   ' MsgBox myAttachement.Count
   myAttachement.SaveAsFile "C:\Documents and Settings\Bureau"
Il me dit que je n'ai pas les autorisations nécessaires, je ne comprend pas

merci d'avance
Shikam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 08h53   #3
Membre Expert
 
Avatar de mayekeul
 
Inscription : août 2005
Messages : 1 213
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 1 213
Points : 1 306
Points : 1 306
bonjour,

tu as oublié de mettre le nom du fichier
Code :
1
2
3
4
5
6
7
8
9
10
11
12
Set MonNameSpace = Application.GetNamespace("MAPI")
    Set MonDossier = MonNameSpace.GetDefaultFolder(olFolderInbox)
 
 
   last_messages = MonDossier.Items.Count
  Set myItem = MonDossier.Items(last_messages)
 
 
   Set myAttachement = myItem.Attachments(1)
   ' MsgBox myAttachement.Count
   myAttachement.SaveAsFile "C:\Documents and Settings\Bureau\" & _
     myAttachement.filename
__________________
Alleï Bonjour chez vous!
mayekeul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 10h27   #4
Invité régulier
 
Inscription : juin 2005
Messages : 55
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 55
Points : 7
Points : 7
Bonjour,

j'aimerais également récupéré l'adresse du mail mais avec

Code :
1
2
adresse = myitem.SenderEmailAddress
    MsgBox adresse
Je récupère un truc qui ne correspond pas du tout à une adresse mail

merci d'avance
Shikam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 10h31   #5
Membre Expert
 
Avatar de mayekeul
 
Inscription : août 2005
Messages : 1 213
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 1 213
Points : 1 306
Points : 1 306
et tu récupere quoi???
__________________
Alleï Bonjour chez vous!
mayekeul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 11h29   #6
Invité régulier
 
Inscription : juin 2005
Messages : 55
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 55
Points : 7
Points : 7
Un truc bizarre avec mon numéro de poste et non des serveurs.
Shikam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 11h35   #7
Membre Expert
 
Avatar de mayekeul
 
Inscription : août 2005
Messages : 1 213
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 1 213
Points : 1 306
Points : 1 306
oui, mais logiquement outlook doit faire la conversion de lui même.

tu as besoin de l'adresse pour quelle raison?

juste renvoyer un message à l'adresse ou bien???

sinon, tu a la propriété "Sender Name"
__________________
Alleï Bonjour chez vous!
mayekeul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 11h49   #8
Invité régulier
 
Inscription : juin 2005
Messages : 55
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 55
Points : 7
Points : 7
Oui, je vais utiliser cette propriété !

Une autre question sur le nom du fichier que je veux donné,

je veux donner le nom du fichier de base + la date et heure actuelle et remettre son extension mais je n'y arrive pas
Shikam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 12h01   #9
Membre Expert
 
Avatar de mayekeul
 
Inscription : août 2005
Messages : 1 213
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 1 213
Points : 1 306
Points : 1 306
tu peux faire un tyruc du style

Code :
1
2
3
4
5
6
7
Dim MyAttachement As Outlook.Attachment
Dim bFile As String, Ext As String
 
bFile = Left(MyAttachement.Filename, InStr(MyAttachement.Filename, ".") - 1)
Ext = Replace(MyAttachment.Filename, bFile, "")
bFile = bFile & Format(Now, "dd_mm_yyyy_hh_mm_ss") & Ext
MyAttachement.SaveAsFile bFile
__________________
Alleï Bonjour chez vous!
mayekeul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 12h06   #10
Invité régulier
 
Inscription : juin 2005
Messages : 55
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 55
Points : 7
Points : 7
merci

Une autre question encore !
Pour vérifier que la pièce jointe est d'un type xml par exemplus comment je dois faire dans mon if?

Code :
if myAttachement.Item(i).FileName = *.xml then
Shikam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 12h26   #11
Membre Expert
 
Avatar de mayekeul
 
Inscription : août 2005
Messages : 1 213
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 1 213
Points : 1 306
Points : 1 306
fait plutot

Code :
1
2
 
if right(myattachement.item(i),3)="xml" then...
__________________
Alleï Bonjour chez vous!
mayekeul est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h11.


 
 
 
 
Partenaires

Hébergement Web