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 07/04/2008, 16h50   #1
Invité de passage
 
Inscription : avril 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 5
Points : 1
Points : 1
Par défaut exporter sur le disque un fichier txt en PJ

Bonjour

je reçois chaque jour un email particulier avec une piece jointe en Txt.
Je souhaite récuperer ce fichier txt chaque jour en automatique sur mon disqu dur puis en creer une base sur access (ça, je sais).

On m'avait fait un macro sur Outlook pour automatiser une tache equivalente mais je l'ai perdu.
Comment faire SVP?
Je suis relativement debutant alors n'hesitez pas à etre explicite..;-))
Par avance, merci
tordji est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 20h29   #2
Rédacteur/Modérateur
 
Avatar de Dolphy35
 
Homme Morgan BILLY
Technicien de Production
Inscription : octobre 2004
Messages : 4 106
Détails du profil
Informations personnelles :
Nom : Homme Morgan BILLY
Âge : 33
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Technicien de Production
Secteur : Industrie

Informations forums :
Inscription : octobre 2004
Messages : 4 106
Points : 8 745
Points : 8 745
Bonjour et bienvenue sur le Forum

Je t'invite à consulter ce post http://www.developpez.net/forums/sho...ht=enregistrer

ainsi que la FAQ Comment sauvegarder les pièces jointes d'un message sans ouvrir ce message ?


Dolphy
__________________
Personnaliser la vue Backstage d'Access 2010
Découvrez avec nous Office 2010
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 10h22   #3
Membre chevronné
 
Avatar de Oliv-
 
Inscription : mars 2006
Messages : 643
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2006
Messages : 643
Points : 699
Points : 699
Bonjour à tous,
A partir de Outlook 2003 on peut utiliser l'évenement newmailex ou un script sur une règle, si c'est toujours le même expéditeur ou même sujet c'est préféréable plutot que de tout mouliner à chaque fois.

Attention cependant lorsque l'on enregistre les PJ sur le disque il faut gérer la possibilité de doublons, dans un mail on peut ajouter 2 fois le même nom de fichier.

ex : c:\clients\toto\budget.xls et c:\clients\titi\budget.xls

Lorsque tu enregistres les PJ vers un disque le deuxième effacera le premier.

Ou alors le répertoire peut contenir déjà un fichier portant ce nom.

Code :
1
2
3
4
5
6
7
8
9
10
11
        'Ici on vérifie que le fichier n'existe pas déjà sinon il serait écrasé
                  'By oliv' 2008 04 08
        n = 1
        MemPath = objAtts(k).FileName
        PathNomExport = MemPath
        While Dir(Repertoire & PathNomExport) <> ""
            MsgBox "Le fichier " & vbCr & PathNomExport & vbCr & "existe déjà", vbInformation
            PathNomExport = "(" & n & ")" & MemPath
        n = n + 1
        Wend
        objAtts(k).SaveAsFile Repertoire & PathNomExport
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 11h09   #4
Invité de passage
 
Inscription : avril 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 5
Points : 1
Points : 1
Bonjour
et merci à vous 2.
Pour les script, je n'y accede pas.
Peut etre un blocage au niveau administrateur.

Dolphy 35, si je prends l'exemple vu sur ton 1er lien (mail de alain godard), cela me semble tout simple. Mais ou dois je ecrire le sujet du mail correspondant à l'action d'enregistrement de la pJ ?
J'ai vu ça :
Code :
1
2
3
4
5
For Each oMsg In oFolder.Items
    'With oMsg
     ' If .Subject = "runFND.csv" Then
       ' oMsg.Attachments.Item(1).SaveAsFile _
                '   "C:\PARTAGE\SUIVI_STOCK\stock1.csv"
L'objet du mail dans l'exemple est "runFND.csv" et il va attacher la PJ sur C:\Partage\stock... Es ce bien cela ?

Puis je faire :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub Application_NewMail()
Dim MaDatabase As NameSpace, Folder As MAPIFolder, Mail As MailItem
 
Set MaDatabase = Application.GetNamespace("MAPI")
Set Folder = MaDatabase.GetDefaultFolder(olFolderInbox)
Set Mail = Folder.Items(Folder.Items.Count)
 
For Each Attachment In Mail.Attachments
 If .Subject = "runFND.csv" Then
       oMsg.Attachments.Item(1).SaveAsFile "C:\PARTAGE\SUIVI_STOCK\stock1.csv"
'
Next
 
End Sub
Merci bcp pour votre aide.
cdt
Tordji
tordji est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 12h06   #5
Membre chevronné
 
Avatar de Oliv-
 
Inscription : mars 2006
Messages : 643
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2006
Messages : 643
Points : 699
Points : 699
Citation:
Envoyé par tordji Voir le message
Pour les script, je n'y accede pas.
C'est à dire ? Quelle est ta version ?
ici un exemple :http://outlook.developpez.com/faq/?p...A#Script_Regle

Citation:
Envoyé par tordji Voir le message

C:\Partage\stock... Es ce bien cela ?
Oui c'est à peu près cela
Citation:
Envoyé par tordji Voir le message
Puis je faire :

Tordji
Non pas ca il manque trop de choses, mais répond déjà à mes questions
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 17h46   #6
Invité de passage
 
Inscription : avril 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 5
Points : 1
Points : 1
Bien
je viens de creer un script tel que decrit dans la FAQ en spécifiant le nom de l'expéditeur, l'objet du mail et je l'ai placé dans this outlooksession.
Ma version outlook 2003.
Pour C:\Partage\stock c'est l'adresse sur laquelle je souhaite enregistrer le fichier.
ET MAINTENANT.....

c'est trop sympa de m'aider.
tordji est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 18h16   #7
Membre chevronné
 
Avatar de Oliv-
 
Inscription : mars 2006
Messages : 643
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2006
Messages : 643
Points : 699
Points : 699
bin il faut mixer tout cela :

Donc dans la regle on veirifie l'expediteur et le sujet ,... ok ?

Dans le script :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub Script_Regle(Mail As MailItem)
Repertoire = "C:\PARTAGE\SUIVI_STOCK\"
on error resume next
For each PJ IN mail.attachments
 
       'Ici on vérifie que le fichier n'existe pas déjà sinon il serait écrasé
                  'By oliv' 2008 04 08
        n = 1
        MemPath = PJ.FileName
        PathNomExport = MemPath
        While Dir(Repertoire & PathNomExport) <> ""
            MsgBox "Le fichier " & vbCr & PathNomExport & vbCr & "existe déjà", vbInformation
            PathNomExport = "(" & n & ")" & MemPath
        n = n + 1
        Wend
        PJ.SaveAsFile Repertoire & PathNomExport
 
next PJ
 
End Sub
J'ai pas testé est ce ok ?

Pour tester il faut s'envoyer un mail répondant à la règle ou alors utiliser un mail déjà reçu et lancer
Code :
1
2
3
4
5
Sub test_script()
Dim Oitem As Outlook.MailItem
Set Oitem = ActiveInspector.CurrentItem
Script_Regle Oitem
End Sub
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 19h00   #8
Invité de passage
 
Inscription : avril 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 5
Points : 1
Points : 1
Ca marche trés bien.
allez une derniere chose. si je veux que le fichier soit ecrasé à chaque fois, j'enleve quoi ?
MErci pour ton aide précieuse.
cdt
Didier
tordji est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2008, 09h59   #9
Membre chevronné
 
Avatar de Oliv-
 
Inscription : mars 2006
Messages : 643
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2006
Messages : 643
Points : 699
Points : 699
Salut,

Citation:
si je veux que le fichier soit ecrasé à chaque fois
La section while...wend
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2008, 11h44   #10
Invité de passage
 
Inscription : avril 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 5
Points : 1
Points : 1
Tout fonctionn.
Merci de ton aide. Ca me rend un immense service.
cdt
Didier
tordji est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h23.


 
 
 
 
Partenaires

Hébergement Web