Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Outlook > VBA Outlook

Réponse
 
Outils de la discussion
Vieux 07/04/2008, 16h50   #1 (permalink)
Invité de passage
 
Date d'inscription: avril 2008
Messages: 5
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
Vieux 07/04/2008, 20h29   #2 (permalink)
Responsable Outlook
 
Avatar de Dolphy35
 
Date d'inscription: octobre 2004
Localisation: Rennes
Messages: 3 274
Envoyer un message via MSN à Dolphy35 Envoyer un message via Skype™ à Dolphy35
Par défaut

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
__________________
Initiation au VBA d'Outlook
venez défier mabrute
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/04/2008, 10h22   #3 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 446
Par défaut

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 :
        '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
Vieux 08/04/2008, 11h09   #4 (permalink)
Invité de passage
 
Date d'inscription: avril 2008
Messages: 5
Par défaut

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 :
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 :
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

Dernière modification par Heureux-oli ; 08/04/2008 à 12h59 Motif: Balises de code
tordji est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/04/2008, 12h06   #5 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 446
Par défaut

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
Vieux 08/04/2008, 17h46   #6 (permalink)
Invité de passage
 
Date d'inscription: avril 2008
Messages: 5
Par défaut

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
Vieux 08/04/2008, 18h16   #7 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 446
Par défaut

bin il faut mixer tout cela :

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

Dans le script :

Code :
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 :
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
Vieux 08/04/2008, 19h00   #8 (permalink)
Invité de passage
 
Date d'inscription: avril 2008
Messages: 5
Par défaut

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
Vieux 09/04/2008, 09h59   #9 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 446
Par défaut

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
Vieux 09/04/2008, 11h44   #10 (permalink)
Invité de passage
 
Date d'inscription: avril 2008
Messages: 5
Par défaut

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
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Outlook > VBA Outlook

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide